VictoriaMetrics/lib/promscrape
Zakhar Bessarab 669ad1ca55
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:14:15 +02:00
..
discovery lib/promscrape/discovery/kubernetes: fix leaking api watcher (#4861) 2023-09-18 17:14:15 +02:00
discoveryutils Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:15:51 +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-29 10:50:15 +02:00
config.go lib/promscrape: add a comment why honor_timestamps is set to false by default 2023-07-28 21:36:55 -07:00
config_test.go lib/promscrape: use local scrape timestamp for scraped metrics unless honor_timestamps: true is set explicitly 2023-07-28 21:11:46 -07:00
config_timing_test.go lib/promscrape: optimize service discovery speed 2022-11-29 21:26:23 -08: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.go lib/promscrape: disable support for service discovery and metrics scrape via http2 2023-07-06 16:04:31 -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
statconn.go Makefile: update golangci-lint from v1.51.2 to v1.54.2 2023-09-01 11:15:51 +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