VictoriaMetrics/app/vmalert/datasource
Roman Khavronenko a5c427bac4
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>
(cherry picked from commit 4f0525852f)
2024-05-16 09:35:58 +02:00
..
testdata app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-16 09:35:58 +02:00
datasource_test.go vmalert: support rules backfilling (aka replay) (#1358) 2021-06-09 12:30:54 +03:00
datasource.go vmalert: add evalAlignment for rule group and fix evalutaion timstamp (#5066) 2023-10-10 12:45:37 +02:00
faker.go vmalert-tool: implement unittest (#4789) 2023-10-16 14:12:06 +02:00
init.go vmalert: deprecate cmd-line flag -datasource.lookback (#5877) 2024-03-12 16:17:40 +01:00
vm_graphite_api.go vmalert: deprecate cmd-line flag -datasource.lookback (#5877) 2024-03-12 16:17:40 +01:00
vm_prom_api_test.go app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-16 09:35:58 +02:00
vm_prom_api_timing_test.go app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-16 09:35:58 +02:00
vm_prom_api.go app/vmalert/datasource: reduce number of allocations when parsing instant responses (#6272) 2024-05-16 09:35:58 +02:00
vm_test.go all: fix golangci-lint(revive) warnings after 0c0ed61ce7 2024-04-03 03:00:45 +03:00
vm.go vmalert: deprecate cmd-line flag -datasource.lookback (#5877) 2024-03-12 16:17:40 +01:00