From 0403d098e1f152d450a0b622a6175cf0c56944fd Mon Sep 17 00:00:00 2001 From: Bryan Boreham Date: Thu, 23 Nov 2023 19:02:37 +0000 Subject: [PATCH] scraping: re-use symbolTable for target discovery Call labels.NewBuilderWithSymbolTable. Signed-off-by: Bryan Boreham --- scrape/scrape.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scrape/scrape.go b/scrape/scrape.go index de35b9e408..9b295a349c 100644 --- a/scrape/scrape.go +++ b/scrape/scrape.go @@ -73,6 +73,8 @@ type scrapePool struct { client *http.Client loops map[uint64]loop + symbolTable *labels.SymbolTable + targetMtx sync.Mutex // activeTargets and loops must always be synchronized to have the same // set of hashes. @@ -136,6 +138,7 @@ func newScrapePool(cfg *config.ScrapeConfig, app storage.Appendable, offsetSeed client: client, activeTargets: map[uint64]*Target{}, loops: map[uint64]loop{}, + symbolTable: labels.NewSymbolTable(), // TODO: clean this out from time to time. logger: logger, metrics: metrics, httpOpts: options.HTTPClientOptions, @@ -361,7 +364,7 @@ func (sp *scrapePool) Sync(tgs []*targetgroup.Group) { sp.targetMtx.Lock() var all []*Target var targets []*Target - lb := labels.NewBuilder(labels.EmptyLabels()) + lb := labels.NewBuilderWithSymbolTable(sp.symbolTable) sp.droppedTargets = []*Target{} sp.droppedTargetsCount = 0 for _, tg := range tgs {