VictoriaMetrics/lib
Zakhar Bessarab 9937f2681e
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 08:36:16 -07:00
..
auth app/vmagent: follow-up after fe445f753b 2021-08-05 09:52:32 +03:00
awsapi discover/ec2: bump API version (#3702) 2023-01-27 15:01:50 -08:00
backup adds restore.lock (#1988) 2021-12-22 13:10:15 +02:00
blockcache all: remove explicit "xxhash" name when importing github.com/cespare/xxhash/v2 package 2022-06-21 20:23:32 +03:00
bloomfilter lib/promscrape: add the ability to limit the number of unique series per each scrape target 2021-09-01 16:03:59 +03:00
buildinfo all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
bytesutil all: readability improvements for query traces 2022-06-30 18:20:33 +03:00
cgroup lib/cgroup: reduce the default GOGC value from 50% to 30% 2022-04-06 13:32:07 +03:00
decimal all: fix build issues and tests for Apple M1 2021-10-27 15:06:34 +03:00
encoding lib/encoding: fix test after 8af66ba156 2023-04-06 00:52:44 -07:00
envflag lib/envflag: use flag.Set for setting the flags from env vars 2021-10-20 00:41:08 +03:00
envtemplate all: support %{ENV_VAR} placeholders in yaml configs in all the vm* components 2020-08-13 17:15:25 +03:00
fastnum Makefile: add build and test rules with enabled race detector. These rules have -race suffix 2020-03-05 12:03:38 +02:00
fasttime lib: extract common code for returning fast unix timestamp into lib/fasttime 2020-05-14 23:02:07 +03:00
filestream lib/fs: add vm_filestream_read_duration_seconds_total and vm_filestream_write_duration_seconds_total metrics 2021-12-02 10:30:42 +02:00
flagutil lib/flagutil/bytes.go: properly handle values bigger than 2GiB on 32-bit architectures 2023-01-10 19:36:14 -08:00
fs lib/fs: verify response code when reading configuration over HTTP (#4036) 2023-03-31 22:38:36 -07:00
httpserver lib/httpserver: add handler to serve /robots.txt and deny search indexing (#4143) 2023-05-08 09:53:33 -07:00
influxutils all: consistently return application/json content-type without charset=utf-8 2021-11-09 18:04:44 +02:00
ingestserver lib/httpserver: move the code, which creates tls.Config, into lib/netutil/tls.go 2022-04-16 15:52:36 +03:00
leveledbytebufferpool all: make fmt via the upcoming Go1.19 2022-07-11 19:22:15 +03:00
logger feat: rule limit (#2676) 2022-06-09 08:21:30 +02:00
lrucache all: remove explicit "xxhash" name when importing github.com/cespare/xxhash/v2 package 2022-06-21 20:23:32 +03:00
memory lib/flagutil/bytes.go: properly handle values bigger than 2GiB on 32-bit architectures 2023-01-10 19:36:14 -08:00
mergeset lib/mergeset: follow-up after a0e7432e42 (#3145) 2022-10-06 16:05:46 +03:00
metricsql all: make fmt via the upcoming Go1.19 2022-07-11 19:22:15 +03:00
netutil app/vmstorage: add support for mTLS cipher suites via -cluster.tlsCipherSuites command-line flag 2022-04-16 16:39:21 +03:00
pacelimiter lib/pacelimiter: increase scalability for multi-CPU system 2020-08-06 18:32:59 +03:00
persistentqueue lib/flagutil/bytes.go: properly handle values bigger than 2GiB on 32-bit architectures 2023-01-10 19:36:14 -08:00
procutil all: add go:build lines for Go1.17 2021-07-26 15:48:21 +03:00
promauth lib/promauth: refactor NewConfig in order to improve maintainability 2022-07-04 14:31:12 +03:00
prompb app/vminsert: moved -maxInsertRequestSize command-line flag out of lib/prompb in order to prevent its inclusion in vmselect and vmstorage apps 2020-01-28 23:02:08 +02:00
prompbmarshal all: use %w instead of %s for wrapping errors in fmt.Errorf 2020-06-30 23:05:11 +03:00
promrelabel lib/promrelabel: fix relabeling if clause (#4816) 2023-08-12 08:36:16 -07:00
promscrape lib/promscrape: do not re-use previously loaded scrape targets on failed attempt to load updated scrape targets at file_sd_configs 2023-04-02 21:18:27 -07:00
promutils lib/promscrape: properly implement ScrapeConfig.clone() 2022-05-07 00:05:40 +03:00
protoparser fixed opentsdbListenAddr timestamp conversion (#3810) 2023-02-14 22:53:11 -08:00
proxy lib/promauth: add ability to send additional http headers in requests to scrape targets 2022-06-22 20:39:43 +03:00
querytracer lib/querytracer: make it easier to use by passing trace context message to New and NewChild 2022-06-08 21:06:52 +03:00
snapshot {vmbackup, vmbackup/snapshot}: fixed problem with snapshot backup in another snapshot folder (#2535) 2022-05-04 22:12:03 +03:00
storage fix sort pendingDateMetricsIDs (#4102) 2023-04-10 12:24:39 -07:00
storagepacelimiter lib/storage: remove prioritizing of merging small parts over merging big parts, since it doesn't work as expected 2020-07-30 19:57:27 +03:00
syncwg all: open-sourcing single-node version 2019-05-23 00:18:06 +03:00
tenantmetrics app/vmagent: follow-up after fe445f753b 2021-08-05 09:52:32 +03:00
timerpool lib/timerpool: use timer pool in concurrency limiters 2019-05-28 17:20:10 +03:00
uint64set Revert "lib/uint64set: allow reusing bucket16 structs inside uint64set.Set via uint64set.Release method" 2021-07-06 18:21:35 +03:00
workingsetcache lib/workingsetcache: reuse prev cache after its reset 2022-04-05 20:37:45 +03:00
writeconcurrencylimiter fix: change thrashing typo (#2317) 2022-03-15 07:05:52 +00:00