VictoriaMetrics/app/vmalert/datasource
Roman Khavronenko 4f0525852f
app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272)
Allocations are reduced by implementing custom json parser via fastjson
lib.
The change also re-uses `promInstant` object in attempt to reduce number
of
allocations when parsing big responses, as usually happens with heavy
recording rules.

```
name                                old allocs/op  new allocs/op  delta
ParsePrometheusResponse/Instant-10     9.65k ± 0%     5.60k ± 0%   ~     (p=1.000 n=1+1)

```

Signed-off-by: hagen1778 <roman@victoriametrics.com>

---------

Signed-off-by: hagen1778 <roman@victoriametrics.com>
2024-05-15 15:18:33 +02:00
..
testdata app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-15 15:18:33 +02:00
datasource.go vmalert: add evalAlignment for rule group and fix evalutaion timstamp (#5066) 2023-10-10 12:41:19 +02:00
datasource_test.go vmalert: support rules backfilling (aka replay) (#1358) 2021-06-09 12:20:38 +03:00
faker.go vmalert-tool: implement unittest (#4789) 2023-10-13 13:54:33 +02:00
init.go vmalert: deprecate cmd-line flag -datasource.lookback (#5877) 2024-03-12 16:16:50 +01:00
vm.go vmalert: deprecate cmd-line flag -datasource.lookback (#5877) 2024-03-12 16:16:50 +01:00
vm_graphite_api.go vmalert: deprecate cmd-line flag -datasource.lookback (#5877) 2024-03-12 16:16:50 +01:00
vm_prom_api.go app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-15 15:18:33 +02:00
vm_prom_api_test.go app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-15 15:18:33 +02:00
vm_prom_api_timing_test.go app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-15 15:18:33 +02:00
vm_test.go all: fix golangci-lint(revive) warnings after 0c0ed61ce7 2024-04-02 23:16:29 +03:00