VictoriaMetrics/lib/promrelabel
Zakhar Bessarab 26cb1e00bf
lib/promrelabel: fix relabeling if clause (#4816)
* lib/promrelabel: fix relabeling if clause being applied to labels outside of current context

Relabeling is applied to each metric row separately, but in order to lower amount of memory allocations it is reusing labels.

Functions which are working on current metric row labels are supposed to use only current metric labels by using provided offset, but if clause matcher was using the whole labels set instead of local metrics.

This leaded to invalid relabeling results such as one described here: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4806

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* docs/CHANGELOG.md: document the bugfix

Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/1998
Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4806

---------

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
2023-08-12 12:31:48 -07:00
..
testdata lib/promrelabel: add support for keepequal and dropequal relabeling actions 2022-12-21 20:06:09 -08:00
config.go lib/promrelabel: add support for keepequal and dropequal relabeling actions 2022-12-21 20:06:09 -08:00
config_test.go lib/promrelabel: make fmt after d3de110070 2022-12-21 20:25:37 -08:00
debug.go lib/promrelabel: pass query args via query string at /metric-relabel-debug and /target-relabel-debug pages if their length doesnt exceed 1000 2023-01-05 16:45:42 -08:00
debug.qtpl lib/promrelabel: pass query args via query string at /metric-relabel-debug and /target-relabel-debug pages if their length doesnt exceed 1000 2023-01-05 16:45:42 -08:00
debug.qtpl.go lib/promrelabel: pass query args via query string at /metric-relabel-debug and /target-relabel-debug pages if their length doesnt exceed 1000 2023-01-05 16:45:42 -08:00
graphite.go all: typo fix: the the -> the 2022-12-03 21:53:07 -08:00
graphite_test.go lib/promrelabel: support action: graphite relabeling 2022-06-16 20:25:49 +03:00
graphite_timing_test.go lib/promrelabel: support action: graphite relabeling 2022-06-16 20:25:49 +03:00
if_expression.go lib/promrelabel: allow calling Match on nil IfExpression 2022-12-30 16:47:59 -08:00
if_expression_test.go lib/promscrape: implement target-level and metric-level relabel debugging 2022-12-10 02:25:56 -08:00
relabel.go lib/promrelabel: fix relabeling if clause (#4816) 2023-08-12 12:31:48 -07:00
relabel_test.go lib/promrelabel: add support for keepequal and dropequal relabeling actions 2022-12-21 20:06:09 -08:00
relabel_timing_test.go lib/promscrape: implement target-level and metric-level relabel debugging 2022-12-10 02:25:56 -08:00