diff --git a/web/api/v1/api.go b/web/api/v1/api.go index 1b8798feb8..519433a78d 100644 --- a/web/api/v1/api.go +++ b/web/api/v1/api.go @@ -1105,15 +1105,15 @@ func (api *API) scrapePools(r *http.Request) apiFuncResult { } func (api *API) targets(r *http.Request) apiFuncResult { - sortKeys := func(targets map[string][]*scrape.Target) ([]string, int) { + getSortedPools := func(targets map[string][]*scrape.Target) ([]string, int) { var n int - keys := make([]string, 0, len(targets)) - for k := range targets { - keys = append(keys, k) - n += len(targets[k]) + pools := make([]string, 0, len(targets)) + for p, t := range targets { + pools = append(pools, p) + n += len(t) } - slices.Sort(keys) - return keys, n + slices.Sort(pools) + return pools, n } scrapePool := r.URL.Query().Get("scrapePool") @@ -1125,14 +1125,14 @@ func (api *API) targets(r *http.Request) apiFuncResult { if showActive { targetsActive := api.targetRetriever(r.Context()).TargetsActive() - activeKeys, numTargets := sortKeys(targetsActive) + activePools, numTargets := getSortedPools(targetsActive) res.ActiveTargets = make([]*Target, 0, numTargets) - for _, key := range activeKeys { - if scrapePool != "" && key != scrapePool { + for _, pool := range activePools { + if scrapePool != "" && pool != scrapePool { continue } - for _, target := range targetsActive[key] { + for _, target := range targetsActive[pool] { lastErrStr := "" lastErr := target.LastError() if lastErr != nil { @@ -1144,7 +1144,7 @@ func (api *API) targets(r *http.Request) apiFuncResult { res.ActiveTargets = append(res.ActiveTargets, &Target{ DiscoveredLabels: target.DiscoveredLabels(builder), Labels: target.Labels(builder), - ScrapePool: key, + ScrapePool: pool, ScrapeURL: target.URL().String(), GlobalURL: globalURL.String(), LastError: func() string { @@ -1170,16 +1170,15 @@ func (api *API) targets(r *http.Request) apiFuncResult { } if showDropped { res.DroppedTargetCounts = api.targetRetriever(r.Context()).TargetsDroppedCounts() - } - if showDropped { + targetsDropped := api.targetRetriever(r.Context()).TargetsDropped() - droppedKeys, numTargets := sortKeys(targetsDropped) + droppedPools, numTargets := getSortedPools(targetsDropped) res.DroppedTargets = make([]*DroppedTarget, 0, numTargets) - for _, key := range droppedKeys { - if scrapePool != "" && key != scrapePool { + for _, pool := range droppedPools { + if scrapePool != "" && pool != scrapePool { continue } - for _, target := range targetsDropped[key] { + for _, target := range targetsDropped[pool] { res.DroppedTargets = append(res.DroppedTargets, &DroppedTarget{ DiscoveredLabels: target.DiscoveredLabels(builder), })