VictoriaMetrics/lib/promscrape
Zakhar Bessarab 55d25fb844
lib/promscrape/discovery/kubernetes: fix leaking api watcher (#4861)
* lib/promscrape/discovery/kubernetes: fix leaking api watcher

goroutine which was polling k8s API had no execution control. This leaded to leaking goroutines during config reload.

See: https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4850
Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>

* lib/promscrape/discovery/kubernetes: use reference counting for urlWatcher cleanup

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

* lib/promscrape/discovery/kubernetes: remove waitgroup sync for goroutines polling API server

This is unnecessary since context will is cancelled and new requests will not be sent. Also, using waitgroup will increase time required to perform reload which might result in missed scrapes.

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

* lib/promscrape/discovery/kubernetes: clarify comment

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

* Apply suggestions from code review

* lib/promscrape/discovery/kubernetes: address review feedback

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

---------

Signed-off-by: Zakhar Bessarab <z.bessarab@victoriametrics.com>
Co-authored-by: Nikolay <nik@victoriametrics.com>
2023-09-18 17:13:55 +02:00
..
discovery lib/promscrape/discovery/kubernetes: fix leaking api watcher (#4861) 2023-09-18 17:13:55 +02:00
discoveryutils Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 10:25:49 +02:00
testdata lib/promscrape: disable support for service discovery and metrics scrape via http2 2023-07-06 16:04:31 -07:00
client.go lib/promscrape/client: sync timeout for HostClient and http.Client (#4889) 2023-08-27 09:06:00 +02:00
config_test.go lib/promscrape: follow-up after eabcfc9bcd 2023-08-29 11:18:12 +02:00
config_timing_test.go lib/promscrape: optimize service discovery speed 2022-11-29 21:26:23 -08:00
config.go lib/promscrape: follow-up after eabcfc9bcd 2023-08-29 11:18:12 +02:00
relabel_debug.go app/vmselect: small cleanup after 4f3f9950d0 2023-05-09 22:45:02 -07:00
scraper.go all: replace atomic.Value with atomic.Pointer[T] 2023-07-19 17:48:26 -07:00
scrapework_test.go lib/promscrape: fix honor_labels behavior (#3739) 2023-02-01 12:02:04 -08:00
scrapework_timing_test.go lib/promscrape: add exported_ prefix to metric names exported by scrape targets if they clash with automatically generated metrics 2022-11-28 18:37:34 -08:00
scrapework.go lib/promscrape: disable support for service discovery and metrics scrape via http2 2023-07-06 16:04:31 -07:00
statconn.go Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 10:25:49 +02:00
targetstatus.go lib/promscrape: follow-up after 6aa50ca954 2023-07-20 21:54:09 -07:00
targetstatus.qtpl lib/promscrape: follow-up after 6aa50ca954 2023-07-20 21:54:09 -07:00
targetstatus.qtpl.go lib/promscrape: follow-up after 6aa50ca954 2023-07-20 21:54:09 -07:00