make targets active parallel (#5740)

Signed-off-by: yeya24 <yb532204897@gmail.com>
pull/5812/head
yeya24 5 years ago committed by Brian Brazil
parent 7d36178731
commit b7bb278e95

@ -213,7 +213,6 @@ func (m *Manager) TargetsAll() map[string][]*Target {
targets := make(map[string][]*Target, len(m.scrapePools)) targets := make(map[string][]*Target, len(m.scrapePools))
for tset, sp := range m.scrapePools { for tset, sp := range m.scrapePools {
targets[tset] = append(sp.ActiveTargets(), sp.DroppedTargets()...) targets[tset] = append(sp.ActiveTargets(), sp.DroppedTargets()...)
} }
return targets return targets
} }
@ -223,10 +222,24 @@ func (m *Manager) TargetsActive() map[string][]*Target {
m.mtxScrape.Lock() m.mtxScrape.Lock()
defer m.mtxScrape.Unlock() defer m.mtxScrape.Unlock()
var (
wg sync.WaitGroup
mtx sync.Mutex
)
targets := make(map[string][]*Target, len(m.scrapePools)) targets := make(map[string][]*Target, len(m.scrapePools))
wg.Add(len(m.scrapePools))
for tset, sp := range m.scrapePools { for tset, sp := range m.scrapePools {
targets[tset] = sp.ActiveTargets() // Running in parallel limits the blocking time of scrapePool to scrape
// interval when there's an update from SD.
go func(tset string, sp *scrapePool) {
mtx.Lock()
targets[tset] = sp.ActiveTargets()
mtx.Unlock()
wg.Done()
}(tset, sp)
} }
wg.Wait()
return targets return targets
} }

@ -66,7 +66,7 @@ var (
targetScrapePools = prometheus.NewCounter( targetScrapePools = prometheus.NewCounter(
prometheus.CounterOpts{ prometheus.CounterOpts{
Name: "prometheus_target_scrape_pools_total", Name: "prometheus_target_scrape_pools_total",
Help: "Total number of scrape pool creation atttempts.", Help: "Total number of scrape pool creation attempts.",
}, },
) )
targetScrapePoolsFailed = prometheus.NewCounter( targetScrapePoolsFailed = prometheus.NewCounter(

Loading…
Cancel
Save