mirror of
https://github.com/prometheus/prometheus.git
synced 2025-03-05 20:59:13 -08:00
api: Serialize discovered labels into JSON directly in dropped targets (#13484)
Converted maps into labels.Labels to avoid a lot of copying of data which leads to very high memory consumption while opening the /service-discovery endpoint in the Prometheus UI Signed-off-by: Leegin <114397475+Leegin-darknight@users.noreply.github.com>
This commit is contained in:
parent
e3040bfabc
commit
19efd0a675
|
@ -903,7 +903,7 @@ type ScrapePoolsDiscovery struct {
|
||||||
// DroppedTarget has the information for one target that was dropped during relabelling.
|
// DroppedTarget has the information for one target that was dropped during relabelling.
|
||||||
type DroppedTarget struct {
|
type DroppedTarget struct {
|
||||||
// Labels before any processing.
|
// Labels before any processing.
|
||||||
DiscoveredLabels map[string]string `json:"discoveredLabels"`
|
DiscoveredLabels labels.Labels `json:"discoveredLabels"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// TargetDiscovery has all the active targets.
|
// TargetDiscovery has all the active targets.
|
||||||
|
@ -1063,7 +1063,7 @@ func (api *API) targets(r *http.Request) apiFuncResult {
|
||||||
}
|
}
|
||||||
for _, target := range targetsDropped[key] {
|
for _, target := range targetsDropped[key] {
|
||||||
res.DroppedTargets = append(res.DroppedTargets, &DroppedTarget{
|
res.DroppedTargets = append(res.DroppedTargets, &DroppedTarget{
|
||||||
DiscoveredLabels: target.DiscoveredLabels().Map(),
|
DiscoveredLabels: target.DiscoveredLabels(),
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1439,14 +1439,14 @@ func testEndpoints(t *testing.T, api *API, tr *testTargetRetriever, es storage.E
|
||||||
},
|
},
|
||||||
DroppedTargets: []*DroppedTarget{
|
DroppedTargets: []*DroppedTarget{
|
||||||
{
|
{
|
||||||
DiscoveredLabels: map[string]string{
|
DiscoveredLabels: labels.FromStrings(
|
||||||
"__address__": "http://dropped.example.com:9115",
|
"__address__", "http://dropped.example.com:9115",
|
||||||
"__metrics_path__": "/probe",
|
"__metrics_path__", "/probe",
|
||||||
"__scheme__": "http",
|
"__scheme__", "http",
|
||||||
"job": "blackbox",
|
"job", "blackbox",
|
||||||
"__scrape_interval__": "30s",
|
"__scrape_interval__", "30s",
|
||||||
"__scrape_timeout__": "15s",
|
"__scrape_timeout__", "15s",
|
||||||
},
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
DroppedTargetCounts: map[string]int{"blackbox": 1},
|
DroppedTargetCounts: map[string]int{"blackbox": 1},
|
||||||
|
@ -1488,14 +1488,14 @@ func testEndpoints(t *testing.T, api *API, tr *testTargetRetriever, es storage.E
|
||||||
},
|
},
|
||||||
DroppedTargets: []*DroppedTarget{
|
DroppedTargets: []*DroppedTarget{
|
||||||
{
|
{
|
||||||
DiscoveredLabels: map[string]string{
|
DiscoveredLabels: labels.FromStrings(
|
||||||
"__address__": "http://dropped.example.com:9115",
|
"__address__", "http://dropped.example.com:9115",
|
||||||
"__metrics_path__": "/probe",
|
"__metrics_path__", "/probe",
|
||||||
"__scheme__": "http",
|
"__scheme__", "http",
|
||||||
"job": "blackbox",
|
"job", "blackbox",
|
||||||
"__scrape_interval__": "30s",
|
"__scrape_interval__", "30s",
|
||||||
"__scrape_timeout__": "15s",
|
"__scrape_timeout__", "15s",
|
||||||
},
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
DroppedTargetCounts: map[string]int{"blackbox": 1},
|
DroppedTargetCounts: map[string]int{"blackbox": 1},
|
||||||
|
@ -1547,14 +1547,14 @@ func testEndpoints(t *testing.T, api *API, tr *testTargetRetriever, es storage.E
|
||||||
ActiveTargets: []*Target{},
|
ActiveTargets: []*Target{},
|
||||||
DroppedTargets: []*DroppedTarget{
|
DroppedTargets: []*DroppedTarget{
|
||||||
{
|
{
|
||||||
DiscoveredLabels: map[string]string{
|
DiscoveredLabels: labels.FromStrings(
|
||||||
"__address__": "http://dropped.example.com:9115",
|
"__address__", "http://dropped.example.com:9115",
|
||||||
"__metrics_path__": "/probe",
|
"__metrics_path__", "/probe",
|
||||||
"__scheme__": "http",
|
"__scheme__", "http",
|
||||||
"job": "blackbox",
|
"job", "blackbox",
|
||||||
"__scrape_interval__": "30s",
|
"__scrape_interval__", "30s",
|
||||||
"__scrape_timeout__": "15s",
|
"__scrape_timeout__", "15s",
|
||||||
},
|
),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
DroppedTargetCounts: map[string]int{"blackbox": 1},
|
DroppedTargetCounts: map[string]int{"blackbox": 1},
|
||||||
|
|
Loading…
Reference in a new issue