Merge pull request #17306 from AliNazariii/targets-rlock

Optimize scrape target by using RLock in read methods
This commit is contained in:
Ayoub Mrini 2025-10-08 15:31:21 +02:00 committed by GitHub
commit 9e4d23ddaf
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -190,9 +190,9 @@ func (t *Target) LabelsRange(f func(l labels.Label)) {
// DiscoveredLabels returns a copy of the target's labels before any processing.
func (t *Target) DiscoveredLabels(lb *labels.Builder) labels.Labels {
t.mtx.Lock()
t.mtx.RLock()
cfg, tLabels, tgLabels := t.scrapeConfig, t.tLabels, t.tgLabels
t.mtx.Unlock()
t.mtx.RUnlock()
PopulateDiscoveredLabels(lb, cfg, tLabels, tgLabels)
return lb.Labels()
}
@ -208,9 +208,9 @@ func (t *Target) SetScrapeConfig(scrapeConfig *config.ScrapeConfig, tLabels, tgL
// URL returns a copy of the target's URL.
func (t *Target) URL() *url.URL {
t.mtx.Lock()
t.mtx.RLock()
configParams := t.scrapeConfig.Params
t.mtx.Unlock()
t.mtx.RUnlock()
params := url.Values{}
for k, v := range configParams {