Files
metrics/lib/promscrape/targetstatus.qtpl.go
Max KotliarandGitHub c068d641c4 lib/promscrape: show (N/A) instead of hiding target response link when original labels are dropped (#10244)
Related to
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/10237,
https://github.com/VictoriaMetrics/VictoriaMetrics/issues/9901

When `-promscrape.dropOriginalLabels=true` is enabled, original target
labels are unavailable. These labels are required to compute the target
ID used by the /target_response endpoint, so the response link cannot be
generated. See

https://github.com/VictoriaMetrics/VictoriaMetrics/blob/9e1521930dee747a74a9dca594ff634f1485ab75/lib/promscrape/targetstatus.qtpl#L236

Previously, the link silently disappeared from the UI. Now the UI shows
(N/A) Not available, explicitly indicating that required data is
missing.
2026-01-06 12:31:18 +01:00

1152 lines
46 KiB
Go

// Code generated by qtc from "targetstatus.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details.
//line lib/promscrape/targetstatus.qtpl:1
package promscrape
//line lib/promscrape/targetstatus.qtpl:1
import (
"net/url"
"strconv"
"strings"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/htmlcomponents"
"github.com/VictoriaMetrics/VictoriaMetrics/lib/promutil"
)
//line lib/promscrape/targetstatus.qtpl:12
import (
qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate"
)
//line lib/promscrape/targetstatus.qtpl:12
var (
_ = qtio422016.Copy
_ = qt422016.AcquireByteBuffer
)
//line lib/promscrape/targetstatus.qtpl:12
func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:14
if tsr.err != nil {
//line lib/promscrape/targetstatus.qtpl:15
qw422016.N().S(tsr.err.Error())
//line lib/promscrape/targetstatus.qtpl:16
return
//line lib/promscrape/targetstatus.qtpl:17
}
//line lib/promscrape/targetstatus.qtpl:19
for _, jts := range tsr.jobTargetsStatuses {
//line lib/promscrape/targetstatus.qtpl:19
qw422016.N().S(`job=`)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().S(jts.jobName)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().S(`(`)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().D(jts.upCount)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().S(`/`)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().D(jts.targetsTotal)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:20
qw422016.N().S(`up)`)
//line lib/promscrape/targetstatus.qtpl:21
qw422016.N().S(`
`)
//line lib/promscrape/targetstatus.qtpl:22
for _, ts := range jts.targetsStatus {
//line lib/promscrape/targetstatus.qtpl:23
qw422016.N().S("\t")
//line lib/promscrape/targetstatus.qtpl:23
qw422016.N().S(`state=`)
//line lib/promscrape/targetstatus.qtpl:24
if ts.up {
//line lib/promscrape/targetstatus.qtpl:24
qw422016.N().S(`up`)
//line lib/promscrape/targetstatus.qtpl:24
} else {
//line lib/promscrape/targetstatus.qtpl:24
qw422016.N().S(`down`)
//line lib/promscrape/targetstatus.qtpl:24
}
//line lib/promscrape/targetstatus.qtpl:24
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:24
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:24
qw422016.N().S(`endpoint=`)
//line lib/promscrape/targetstatus.qtpl:25
qw422016.N().S(ts.sw.Config.ScrapeURL)
//line lib/promscrape/targetstatus.qtpl:25
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:25
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:25
qw422016.N().S(`labels=`)
//line lib/promscrape/targetstatus.qtpl:26
qw422016.N().S(ts.sw.Config.Labels.String())
//line lib/promscrape/targetstatus.qtpl:26
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:26
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:27
if filter.showOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:27
qw422016.N().S(`originalLabels=`)
//line lib/promscrape/targetstatus.qtpl:27
qw422016.N().S(ts.sw.Config.OriginalLabels.String())
//line lib/promscrape/targetstatus.qtpl:27
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:27
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:27
}
//line lib/promscrape/targetstatus.qtpl:27
qw422016.N().S(`scrapes_total=`)
//line lib/promscrape/targetstatus.qtpl:28
qw422016.N().D(ts.scrapesTotal)
//line lib/promscrape/targetstatus.qtpl:28
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:28
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:28
qw422016.N().S(`scrapes_failed=`)
//line lib/promscrape/targetstatus.qtpl:29
qw422016.N().D(ts.scrapesFailed)
//line lib/promscrape/targetstatus.qtpl:29
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:29
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:29
qw422016.N().S(`last_scrape=`)
//line lib/promscrape/targetstatus.qtpl:30
qw422016.N().S(ts.getDurationFromLastScrape())
//line lib/promscrape/targetstatus.qtpl:30
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:30
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:30
qw422016.N().S(`scrape_duration=`)
//line lib/promscrape/targetstatus.qtpl:31
qw422016.N().D(int(ts.scrapeDuration))
//line lib/promscrape/targetstatus.qtpl:31
qw422016.N().S(`ms,`)
//line lib/promscrape/targetstatus.qtpl:31
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:31
qw422016.N().S(`scrape_response_size=`)
//line lib/promscrape/targetstatus.qtpl:32
qw422016.N().S(ts.getSizeFromLastScrape())
//line lib/promscrape/targetstatus.qtpl:32
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:32
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:32
qw422016.N().S(`samples_scraped=`)
//line lib/promscrape/targetstatus.qtpl:33
qw422016.N().D(ts.samplesScraped)
//line lib/promscrape/targetstatus.qtpl:33
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:33
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:33
qw422016.N().S(`error=`)
//line lib/promscrape/targetstatus.qtpl:34
if ts.err != nil {
//line lib/promscrape/targetstatus.qtpl:34
qw422016.N().S(ts.err.Error())
//line lib/promscrape/targetstatus.qtpl:34
}
//line lib/promscrape/targetstatus.qtpl:35
qw422016.N().S(`
`)
//line lib/promscrape/targetstatus.qtpl:36
}
//line lib/promscrape/targetstatus.qtpl:37
}
//line lib/promscrape/targetstatus.qtpl:39
for _, jobName := range tsr.emptyJobs {
//line lib/promscrape/targetstatus.qtpl:39
qw422016.N().S(`job=`)
//line lib/promscrape/targetstatus.qtpl:40
qw422016.N().S(jobName)
//line lib/promscrape/targetstatus.qtpl:40
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:40
qw422016.N().S(`(0/0 up)`)
//line lib/promscrape/targetstatus.qtpl:41
qw422016.N().S(`
`)
//line lib/promscrape/targetstatus.qtpl:42
}
//line lib/promscrape/targetstatus.qtpl:44
}
//line lib/promscrape/targetstatus.qtpl:44
func WriteTargetsResponsePlain(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:44
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:44
StreamTargetsResponsePlain(qw422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:44
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:44
}
//line lib/promscrape/targetstatus.qtpl:44
func TargetsResponsePlain(tsr *targetsStatusResult, filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:44
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:44
WriteTargetsResponsePlain(qb422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:44
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:44
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:44
return qs422016
//line lib/promscrape/targetstatus.qtpl:44
}
//line lib/promscrape/targetstatus.qtpl:46
func StreamTargetsResponseHTML(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:46
qw422016.N().S(`<!DOCTYPE html><html lang="en"><head>`)
//line lib/promscrape/targetstatus.qtpl:50
htmlcomponents.StreamCommonHeader(qw422016)
//line lib/promscrape/targetstatus.qtpl:50
qw422016.N().S(`<title>Active Targets</title></head><body>`)
//line lib/promscrape/targetstatus.qtpl:54
htmlcomponents.StreamNavbar(qw422016)
//line lib/promscrape/targetstatus.qtpl:54
qw422016.N().S(`<div class="container-fluid">`)
//line lib/promscrape/targetstatus.qtpl:56
if tsr.err != nil {
//line lib/promscrape/targetstatus.qtpl:57
htmlcomponents.StreamErrorNotification(qw422016, tsr.err)
//line lib/promscrape/targetstatus.qtpl:58
}
//line lib/promscrape/targetstatus.qtpl:58
qw422016.N().S(`<div class="row"><main class="col-12"><h1>Active Targets</h1><hr />`)
//line lib/promscrape/targetstatus.qtpl:63
streamfiltersForm(qw422016, filter)
//line lib/promscrape/targetstatus.qtpl:63
qw422016.N().S(`<hr />`)
//line lib/promscrape/targetstatus.qtpl:65
streamtargetsTabs(qw422016, tsr, filter, "scrapeTargets")
//line lib/promscrape/targetstatus.qtpl:65
qw422016.N().S(`</main></div></div></body></html>`)
//line lib/promscrape/targetstatus.qtpl:71
}
//line lib/promscrape/targetstatus.qtpl:71
func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:71
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:71
StreamTargetsResponseHTML(qw422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:71
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:71
}
//line lib/promscrape/targetstatus.qtpl:71
func TargetsResponseHTML(tsr *targetsStatusResult, filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:71
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:71
WriteTargetsResponseHTML(qb422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:71
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:71
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:71
return qs422016
//line lib/promscrape/targetstatus.qtpl:71
}
//line lib/promscrape/targetstatus.qtpl:73
func StreamServiceDiscoveryResponse(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:73
qw422016.N().S(`<!DOCTYPE html><html lang="en"><head>`)
//line lib/promscrape/targetstatus.qtpl:77
htmlcomponents.StreamCommonHeader(qw422016)
//line lib/promscrape/targetstatus.qtpl:77
qw422016.N().S(`<title>Discovered Targets</title></head><body>`)
//line lib/promscrape/targetstatus.qtpl:81
htmlcomponents.StreamNavbar(qw422016)
//line lib/promscrape/targetstatus.qtpl:81
qw422016.N().S(`<div class="container-fluid">`)
//line lib/promscrape/targetstatus.qtpl:83
if tsr.err != nil {
//line lib/promscrape/targetstatus.qtpl:84
htmlcomponents.StreamErrorNotification(qw422016, tsr.err)
//line lib/promscrape/targetstatus.qtpl:85
}
//line lib/promscrape/targetstatus.qtpl:85
qw422016.N().S(`<div class="row"><main class="col-12"><h1>Discovered Targets</h1><hr />`)
//line lib/promscrape/targetstatus.qtpl:90
streamfiltersForm(qw422016, filter)
//line lib/promscrape/targetstatus.qtpl:90
qw422016.N().S(`<hr />`)
//line lib/promscrape/targetstatus.qtpl:92
streamtargetsTabs(qw422016, tsr, filter, "discoveredTargets")
//line lib/promscrape/targetstatus.qtpl:92
qw422016.N().S(`</main></div></div></body></html>`)
//line lib/promscrape/targetstatus.qtpl:98
}
//line lib/promscrape/targetstatus.qtpl:98
func WriteServiceDiscoveryResponse(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:98
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:98
StreamServiceDiscoveryResponse(qw422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:98
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:98
}
//line lib/promscrape/targetstatus.qtpl:98
func ServiceDiscoveryResponse(tsr *targetsStatusResult, filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:98
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:98
WriteServiceDiscoveryResponse(qb422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:98
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:98
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:98
return qs422016
//line lib/promscrape/targetstatus.qtpl:98
}
//line lib/promscrape/targetstatus.qtpl:100
func streamfiltersForm(qw422016 *qt422016.Writer, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:100
qw422016.N().S(`<div class="row g-3 align-items-center mb-3"><div class="col-auto"><button id="all-btn" type="button" class="btn`)
//line lib/promscrape/targetstatus.qtpl:103
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:103
if !filter.showOnlyUnhealthy {
//line lib/promscrape/targetstatus.qtpl:103
qw422016.N().S(`btn-secondary`)
//line lib/promscrape/targetstatus.qtpl:103
} else {
//line lib/promscrape/targetstatus.qtpl:103
qw422016.N().S(`btn-success`)
//line lib/promscrape/targetstatus.qtpl:103
}
//line lib/promscrape/targetstatus.qtpl:103
qw422016.N().S(`"onclick="location.href='?`)
//line lib/promscrape/targetstatus.qtpl:104
streamqueryArgs(qw422016, filter, map[string]string{"show_only_unhealthy": "false"})
//line lib/promscrape/targetstatus.qtpl:104
qw422016.N().S(`'">All</button></div><div class="col-auto"><button id="unhealthy-btn" type="button" class="btn`)
//line lib/promscrape/targetstatus.qtpl:109
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:109
if filter.showOnlyUnhealthy {
//line lib/promscrape/targetstatus.qtpl:109
qw422016.N().S(`btn-secondary`)
//line lib/promscrape/targetstatus.qtpl:109
} else {
//line lib/promscrape/targetstatus.qtpl:109
qw422016.N().S(`btn-danger`)
//line lib/promscrape/targetstatus.qtpl:109
}
//line lib/promscrape/targetstatus.qtpl:109
qw422016.N().S(`"onclick="location.href='?`)
//line lib/promscrape/targetstatus.qtpl:110
streamqueryArgs(qw422016, filter, map[string]string{"show_only_unhealthy": "true"})
//line lib/promscrape/targetstatus.qtpl:110
qw422016.N().S(`'">Unhealthy</button></div><div class="col-auto"><button type="button" class="btn btn-primary" onclick="document.querySelectorAll('.scrape-job').forEach((el) => { el.style.display = 'none'; })">Collapse all</button></div><div class="col-auto"><button type="button" class="btn btn-secondary" onclick="document.querySelectorAll('.scrape-job').forEach((el) => { el.style.display = 'block'; })">Expand all</button></div><div class="col-auto"><button type="button" class="btn btn-success" onclick="document.getElementById('filters').style.display='block'">Filter targets</button></div></div><div id="filters"`)
//line lib/promscrape/targetstatus.qtpl:130
if filter.endpointSearch == "" && filter.labelSearch == "" {
//line lib/promscrape/targetstatus.qtpl:130
qw422016.N().S(`style="display:none"`)
//line lib/promscrape/targetstatus.qtpl:130
}
//line lib/promscrape/targetstatus.qtpl:130
qw422016.N().S(`><form class="form-horizontal"><div class="form-group mb-3"><label for="endpoint_search" class="col-sm-10 control-label">Endpoint filter (<a target="_blank" href="https://github.com/google/re2/wiki/Syntax">Regexp</a> is accepted)</label><div class="col-sm-10"><input type="text" id="endpoint_search" name="endpoint_search"placeholder="For example, 127.0.0.1" class="form-control" value="`)
//line lib/promscrape/targetstatus.qtpl:136
qw422016.E().S(filter.endpointSearch)
//line lib/promscrape/targetstatus.qtpl:136
qw422016.N().S(`"/></div></div><div class="form-group mb-3"><label for="label_search" class="col-sm-10 control-label">Labels filter (<a target="_blank" href="https://prometheus.io/docs/prometheus/latest/querying/basics/#time-series-selectors">Arbitrary time series selectors</a> are accepted)</label><div class="col-sm-10"><input type="text" id="label_search" name="label_search"placeholder="For example, {instance=~'.+:9100'}" class="form-control" value="`)
//line lib/promscrape/targetstatus.qtpl:143
qw422016.E().S(filter.labelSearch)
//line lib/promscrape/targetstatus.qtpl:143
qw422016.N().S(`"/></div></div><input type="hidden" name="show_only_unhealthy" value="`)
//line lib/promscrape/targetstatus.qtpl:146
qw422016.E().V(filter.showOnlyUnhealthy)
//line lib/promscrape/targetstatus.qtpl:146
qw422016.N().S(`"/><input type="hidden" name="show_original_labels" value="`)
//line lib/promscrape/targetstatus.qtpl:147
qw422016.E().V(filter.showOriginalLabels)
//line lib/promscrape/targetstatus.qtpl:147
qw422016.N().S(`"/><button type="submit" class="btn btn-success mb-3">Submit</button><button type="button" class="btn btn-danger mb-3" onclick="location.href='?'">Clear target filters</button></form></div>`)
//line lib/promscrape/targetstatus.qtpl:152
}
//line lib/promscrape/targetstatus.qtpl:152
func writefiltersForm(qq422016 qtio422016.Writer, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:152
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:152
streamfiltersForm(qw422016, filter)
//line lib/promscrape/targetstatus.qtpl:152
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:152
}
//line lib/promscrape/targetstatus.qtpl:152
func filtersForm(filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:152
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:152
writefiltersForm(qb422016, filter)
//line lib/promscrape/targetstatus.qtpl:152
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:152
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:152
return qs422016
//line lib/promscrape/targetstatus.qtpl:152
}
//line lib/promscrape/targetstatus.qtpl:154
func streamtargetsTabs(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter, activeTab string) {
//line lib/promscrape/targetstatus.qtpl:154
qw422016.N().S(`<ul class="nav nav-tabs" id="myTab" role="tablist"><li class="nav-item" role="presentation"><button class="nav-link`)
//line lib/promscrape/targetstatus.qtpl:157
if activeTab == "scrapeTargets" {
//line lib/promscrape/targetstatus.qtpl:157
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:157
qw422016.N().S(`active`)
//line lib/promscrape/targetstatus.qtpl:157
}
//line lib/promscrape/targetstatus.qtpl:157
qw422016.N().S(`" type="button" role="tab"onclick="location.href='targets?`)
//line lib/promscrape/targetstatus.qtpl:158
streamqueryArgs(qw422016, filter, nil)
//line lib/promscrape/targetstatus.qtpl:158
qw422016.N().S(`'">Active targets</button></li><li class="nav-item" role="presentation"><button class="nav-link`)
//line lib/promscrape/targetstatus.qtpl:163
if activeTab == "discoveredTargets" {
//line lib/promscrape/targetstatus.qtpl:163
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:163
qw422016.N().S(`active`)
//line lib/promscrape/targetstatus.qtpl:163
}
//line lib/promscrape/targetstatus.qtpl:163
qw422016.N().S(`" type="button" role="tab"onclick="location.href='service-discovery?`)
//line lib/promscrape/targetstatus.qtpl:164
streamqueryArgs(qw422016, filter, nil)
//line lib/promscrape/targetstatus.qtpl:164
qw422016.N().S(`'">Discovered targets</button></li></ul><div class="tab-content"><div class="tab-pane active" role="tabpanel">`)
//line lib/promscrape/targetstatus.qtpl:171
switch activeTab {
//line lib/promscrape/targetstatus.qtpl:172
case "scrapeTargets":
//line lib/promscrape/targetstatus.qtpl:173
streamscrapeTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:174
case "discoveredTargets":
//line lib/promscrape/targetstatus.qtpl:175
streamdiscoveredTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:176
}
//line lib/promscrape/targetstatus.qtpl:176
qw422016.N().S(`</div></div>`)
//line lib/promscrape/targetstatus.qtpl:179
}
//line lib/promscrape/targetstatus.qtpl:179
func writetargetsTabs(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter, activeTab string) {
//line lib/promscrape/targetstatus.qtpl:179
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:179
streamtargetsTabs(qw422016, tsr, filter, activeTab)
//line lib/promscrape/targetstatus.qtpl:179
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:179
}
//line lib/promscrape/targetstatus.qtpl:179
func targetsTabs(tsr *targetsStatusResult, filter *requestFilter, activeTab string) string {
//line lib/promscrape/targetstatus.qtpl:179
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:179
writetargetsTabs(qb422016, tsr, filter, activeTab)
//line lib/promscrape/targetstatus.qtpl:179
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:179
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:179
return qs422016
//line lib/promscrape/targetstatus.qtpl:179
}
//line lib/promscrape/targetstatus.qtpl:181
func streamscrapeTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:182
if !tsr.hasOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:182
qw422016.N().S(`<div class="alert alert-warning" role="alert">Some debugging information is not available, set <b>-promscrape.dropOriginalLabels=false</b> command-line flag to enable it</div>`)
//line lib/promscrape/targetstatus.qtpl:186
}
//line lib/promscrape/targetstatus.qtpl:186
qw422016.N().S(`<div class="row mt-4"><div class="col-12">`)
//line lib/promscrape/targetstatus.qtpl:189
for i, jts := range tsr.jobTargetsStatuses {
//line lib/promscrape/targetstatus.qtpl:190
streamscrapeJobTargets(qw422016, i, jts, tsr.hasOriginalLabels)
//line lib/promscrape/targetstatus.qtpl:191
}
//line lib/promscrape/targetstatus.qtpl:192
for i, jobName := range tsr.emptyJobs {
//line lib/promscrape/targetstatus.qtpl:194
num := i + len(tsr.jobTargetsStatuses)
jts := &jobTargetsStatuses{
jobName: jobName,
}
//line lib/promscrape/targetstatus.qtpl:199
streamscrapeJobTargets(qw422016, num, jts, tsr.hasOriginalLabels)
//line lib/promscrape/targetstatus.qtpl:200
}
//line lib/promscrape/targetstatus.qtpl:200
qw422016.N().S(`</div></div>`)
//line lib/promscrape/targetstatus.qtpl:203
}
//line lib/promscrape/targetstatus.qtpl:203
func writescrapeTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:203
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:203
streamscrapeTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:203
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:203
}
//line lib/promscrape/targetstatus.qtpl:203
func scrapeTargets(tsr *targetsStatusResult) string {
//line lib/promscrape/targetstatus.qtpl:203
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:203
writescrapeTargets(qb422016, tsr)
//line lib/promscrape/targetstatus.qtpl:203
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:203
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:203
return qs422016
//line lib/promscrape/targetstatus.qtpl:203
}
//line lib/promscrape/targetstatus.qtpl:205
func streamscrapeJobTargets(qw422016 *qt422016.Writer, num int, jts *jobTargetsStatuses, hasOriginalLabels bool) {
//line lib/promscrape/targetstatus.qtpl:205
qw422016.N().S(`<div class="row mb-4"><div class="col-12"><h4><span class="me-2">`)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.E().S(jts.jobName)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().S(`(`)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().D(jts.upCount)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().S(`/`)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().D(jts.targetsTotal)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:209
qw422016.N().S(`up)</span>`)
//line lib/promscrape/targetstatus.qtpl:210
streamshowHideScrapeJobButtons(qw422016, num)
//line lib/promscrape/targetstatus.qtpl:210
qw422016.N().S(`</h4><div id="scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:212
qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:212
qw422016.N().S(`" class="scrape-job table-responsive"><table class="table table-striped table-hover table-bordered table-sm"><thead><tr><th scope="col">Endpoint</th><th scope="col">State</th><th scope="col" title="target labels">Labels</th><th scope="col" title="debug relabeling">Debug relabeling</th><th scope="col" title="total scrapes">Scrapes</th><th scope="col" title="total scrape errors">Errors</th><th scope="col" title="the time of the last scrape">Last Scrape</th><th scope="col" title="the duration of the last scrape">Duration</th><th scope="col" title="the size of the last scrape">Last Scrape Size</th><th scope="col" title="the number of metrics scraped during the last scrape">Samples</th><th scope="col" title="error from the last scrape (if any)">Last error</th></tr></thead><tbody>`)
//line lib/promscrape/targetstatus.qtpl:230
for _, ts := range jts.targetsStatus {
//line lib/promscrape/targetstatus.qtpl:232
endpoint := ts.sw.Config.ScrapeURL
originalLabels := ts.sw.Config.OriginalLabels
// The target is uniquely identified by a pointer to its original labels.
targetID := getLabelsID(originalLabels)
//line lib/promscrape/targetstatus.qtpl:237
qw422016.N().S(`<tr`)
//line lib/promscrape/targetstatus.qtpl:238
if !ts.up {
//line lib/promscrape/targetstatus.qtpl:238
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:238
qw422016.N().S(`class="alert alert-danger" role="alert"`)
//line lib/promscrape/targetstatus.qtpl:238
}
//line lib/promscrape/targetstatus.qtpl:238
qw422016.N().S(`><td class="endpoint"><a href="`)
//line lib/promscrape/targetstatus.qtpl:240
qw422016.E().S(endpoint)
//line lib/promscrape/targetstatus.qtpl:240
qw422016.N().S(`" target="_blank">`)
//line lib/promscrape/targetstatus.qtpl:240
qw422016.E().S(endpoint)
//line lib/promscrape/targetstatus.qtpl:240
qw422016.N().S(`</a>`)
//line lib/promscrape/targetstatus.qtpl:241
if hasOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:242
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:242
qw422016.N().S(`(<a href="target_response?id=`)
//line lib/promscrape/targetstatus.qtpl:243
qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:243
qw422016.N().S(`" target="_blank"title="click to fetch target response on behalf of the scraper">response</a>)`)
//line lib/promscrape/targetstatus.qtpl:245
} else {
//line lib/promscrape/targetstatus.qtpl:246
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:246
qw422016.N().S(`(N/A)`)
//line lib/promscrape/targetstatus.qtpl:247
}
//line lib/promscrape/targetstatus.qtpl:247
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:250
if ts.up {
//line lib/promscrape/targetstatus.qtpl:250
qw422016.N().S(`<span class="badge bg-success">UP</span>`)
//line lib/promscrape/targetstatus.qtpl:252
} else {
//line lib/promscrape/targetstatus.qtpl:252
qw422016.N().S(`<span class="badge bg-danger">DOWN</span>`)
//line lib/promscrape/targetstatus.qtpl:254
}
//line lib/promscrape/targetstatus.qtpl:254
qw422016.N().S(`</td><td class="labels"><div`)
//line lib/promscrape/targetstatus.qtpl:258
if hasOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:259
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:259
qw422016.N().S(`title="click to show original labels"onclick="document.getElementById('original-labels-`)
//line lib/promscrape/targetstatus.qtpl:260
qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:260
qw422016.N().S(`').style.display='block'"`)
//line lib/promscrape/targetstatus.qtpl:261
}
//line lib/promscrape/targetstatus.qtpl:261
qw422016.N().S(`>`)
//line lib/promscrape/targetstatus.qtpl:263
streamformatLabels(qw422016, ts.sw.Config.Labels)
//line lib/promscrape/targetstatus.qtpl:263
qw422016.N().S(`</div>`)
//line lib/promscrape/targetstatus.qtpl:265
if hasOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:265
qw422016.N().S(`<div style="display:none" id="original-labels-`)
//line lib/promscrape/targetstatus.qtpl:266
qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:266
qw422016.N().S(`">`)
//line lib/promscrape/targetstatus.qtpl:267
streamformatLabels(qw422016, originalLabels)
//line lib/promscrape/targetstatus.qtpl:267
qw422016.N().S(`</div>`)
//line lib/promscrape/targetstatus.qtpl:269
}
//line lib/promscrape/targetstatus.qtpl:269
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:272
if hasOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:272
qw422016.N().S(`<a href="target-relabel-debug?id=`)
//line lib/promscrape/targetstatus.qtpl:273
qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:273
qw422016.N().S(`" target="_blank">target</a>`)
//line lib/promscrape/targetstatus.qtpl:273
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:273
qw422016.N().S(`<a href="metric-relabel-debug?id=`)
//line lib/promscrape/targetstatus.qtpl:274
qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:274
qw422016.N().S(`" target="_blank">metrics</a>`)
//line lib/promscrape/targetstatus.qtpl:275
} else {
//line lib/promscrape/targetstatus.qtpl:275
qw422016.N().S(`N/A`)
//line lib/promscrape/targetstatus.qtpl:277
}
//line lib/promscrape/targetstatus.qtpl:277
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:279
qw422016.N().D(ts.scrapesTotal)
//line lib/promscrape/targetstatus.qtpl:279
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:280
qw422016.N().D(ts.scrapesFailed)
//line lib/promscrape/targetstatus.qtpl:280
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:281
qw422016.E().S(ts.getDurationFromLastScrape())
//line lib/promscrape/targetstatus.qtpl:281
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:282
qw422016.N().D(int(ts.scrapeDuration))
//line lib/promscrape/targetstatus.qtpl:282
qw422016.N().S(`ms</td><td>`)
//line lib/promscrape/targetstatus.qtpl:283
qw422016.E().S(ts.getSizeFromLastScrape())
//line lib/promscrape/targetstatus.qtpl:283
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:284
qw422016.N().D(ts.samplesScraped)
//line lib/promscrape/targetstatus.qtpl:284
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:285
if ts.err != nil {
//line lib/promscrape/targetstatus.qtpl:285
qw422016.E().S(ts.err.Error())
//line lib/promscrape/targetstatus.qtpl:285
}
//line lib/promscrape/targetstatus.qtpl:285
qw422016.N().S(`</td></tr>`)
//line lib/promscrape/targetstatus.qtpl:287
}
//line lib/promscrape/targetstatus.qtpl:287
qw422016.N().S(`</tbody></table></div></div></div>`)
//line lib/promscrape/targetstatus.qtpl:293
}
//line lib/promscrape/targetstatus.qtpl:293
func writescrapeJobTargets(qq422016 qtio422016.Writer, num int, jts *jobTargetsStatuses, hasOriginalLabels bool) {
//line lib/promscrape/targetstatus.qtpl:293
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:293
streamscrapeJobTargets(qw422016, num, jts, hasOriginalLabels)
//line lib/promscrape/targetstatus.qtpl:293
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:293
}
//line lib/promscrape/targetstatus.qtpl:293
func scrapeJobTargets(num int, jts *jobTargetsStatuses, hasOriginalLabels bool) string {
//line lib/promscrape/targetstatus.qtpl:293
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:293
writescrapeJobTargets(qb422016, num, jts, hasOriginalLabels)
//line lib/promscrape/targetstatus.qtpl:293
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:293
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:293
return qs422016
//line lib/promscrape/targetstatus.qtpl:293
}
//line lib/promscrape/targetstatus.qtpl:295
func streamdiscoveredTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:296
if !tsr.hasOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:296
qw422016.N().S(`<div class="alert alert-warning" role="alert">Discovered targets are unavailable, set <b>-promscrape.dropOriginalLabels=false</b> command-line flag to enable it</div>`)
//line lib/promscrape/targetstatus.qtpl:300
return
//line lib/promscrape/targetstatus.qtpl:301
}
//line lib/promscrape/targetstatus.qtpl:303
if n := droppedTargetsMap.getTotalTargets(); n > *maxDroppedTargets {
//line lib/promscrape/targetstatus.qtpl:303
qw422016.N().S(`<div class="alert alert-warning" role="alert">Dropped targets' list below is incomplete, because the number of dropped targets exceeds <b>-promscrape.maxDroppedTargets=`)
//line lib/promscrape/targetstatus.qtpl:305
qw422016.N().D(*maxDroppedTargets)
//line lib/promscrape/targetstatus.qtpl:305
qw422016.N().S(`</b>.<br/>If you want to see the full list of dropped targets, then increase <b>-promscrape.maxDroppedTargets</b> command-line flag value to at least`)
//line lib/promscrape/targetstatus.qtpl:306
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:306
qw422016.N().S(`<b>`)
//line lib/promscrape/targetstatus.qtpl:306
qw422016.N().D(n)
//line lib/promscrape/targetstatus.qtpl:306
qw422016.N().S(`</b>.<br/>Note that this may increase memory usage.</div>`)
//line lib/promscrape/targetstatus.qtpl:309
}
//line lib/promscrape/targetstatus.qtpl:311
tljs := tsr.getTargetLabelsByJob()
//line lib/promscrape/targetstatus.qtpl:311
qw422016.N().S(`<div class="row mt-4"><div class="col-12">`)
//line lib/promscrape/targetstatus.qtpl:314
for i, tlj := range tljs {
//line lib/promscrape/targetstatus.qtpl:315
streamdiscoveredJobTargets(qw422016, i, tlj)
//line lib/promscrape/targetstatus.qtpl:316
}
//line lib/promscrape/targetstatus.qtpl:316
qw422016.N().S(`</div></div>`)
//line lib/promscrape/targetstatus.qtpl:319
}
//line lib/promscrape/targetstatus.qtpl:319
func writediscoveredTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:319
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:319
streamdiscoveredTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:319
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:319
}
//line lib/promscrape/targetstatus.qtpl:319
func discoveredTargets(tsr *targetsStatusResult) string {
//line lib/promscrape/targetstatus.qtpl:319
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:319
writediscoveredTargets(qb422016, tsr)
//line lib/promscrape/targetstatus.qtpl:319
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:319
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:319
return qs422016
//line lib/promscrape/targetstatus.qtpl:319
}
//line lib/promscrape/targetstatus.qtpl:321
func streamdiscoveredJobTargets(qw422016 *qt422016.Writer, num int, tlj *targetLabelsByJob) {
//line lib/promscrape/targetstatus.qtpl:321
qw422016.N().S(`<h4><span class="me-2">`)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.E().S(tlj.jobName)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().S(`(`)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().D(tlj.activeTargets)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().S(`/`)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().D(tlj.activeTargets + tlj.droppedTargets)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:323
qw422016.N().S(`active)</span>`)
//line lib/promscrape/targetstatus.qtpl:324
streamshowHideScrapeJobButtons(qw422016, num)
//line lib/promscrape/targetstatus.qtpl:324
qw422016.N().S(`</h4><div id="scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:326
qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:326
qw422016.N().S(`" class="scrape-job table-responsive"><table class="table table-striped table-hover table-bordered table-sm"><thead><tr><th scope="col" style="width: 5%">Status</th><th scope="col" style="width: 60%">Discovered Labels</th><th scope="col" style="width: 30%">Target Labels</th><th scope="col" stile="width: 5%">Debug relabeling</a></tr></thead><tbody>`)
//line lib/promscrape/targetstatus.qtpl:337
for _, t := range tlj.targets {
//line lib/promscrape/targetstatus.qtpl:337
qw422016.N().S(`<tr`)
//line lib/promscrape/targetstatus.qtpl:339
if !t.up {
//line lib/promscrape/targetstatus.qtpl:340
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:340
qw422016.N().S(`role="alert"`)
//line lib/promscrape/targetstatus.qtpl:340
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:341
if t.labels.Len() > 0 {
//line lib/promscrape/targetstatus.qtpl:341
qw422016.N().S(`class="alert alert-danger"`)
//line lib/promscrape/targetstatus.qtpl:343
} else {
//line lib/promscrape/targetstatus.qtpl:343
qw422016.N().S(`class="alert alert-warning"`)
//line lib/promscrape/targetstatus.qtpl:345
}
//line lib/promscrape/targetstatus.qtpl:346
}
//line lib/promscrape/targetstatus.qtpl:346
qw422016.N().S(`><td>`)
//line lib/promscrape/targetstatus.qtpl:349
if t.up {
//line lib/promscrape/targetstatus.qtpl:349
qw422016.N().S(`<span class="badge bg-success">UP</span>`)
//line lib/promscrape/targetstatus.qtpl:351
} else if t.labels.Len() > 0 {
//line lib/promscrape/targetstatus.qtpl:351
qw422016.N().S(`<span class="badge bg-danger">DOWN</span>`)
//line lib/promscrape/targetstatus.qtpl:353
} else {
//line lib/promscrape/targetstatus.qtpl:353
qw422016.N().S(`<span class="badge bg-warning">DROPPED (`)
//line lib/promscrape/targetstatus.qtpl:354
qw422016.E().S(string(t.dropReason))
//line lib/promscrape/targetstatus.qtpl:354
qw422016.N().S(`)</span>`)
//line lib/promscrape/targetstatus.qtpl:355
if len(t.clusterMemberNums) > 0 {
//line lib/promscrape/targetstatus.qtpl:355
qw422016.N().S(`<br/><span title="The target exists at vmagent instances with the given -promscrape.cluster.memberNum values">exists at`)
//line lib/promscrape/targetstatus.qtpl:358
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:359
for i, memberNum := range t.clusterMemberNums {
//line lib/promscrape/targetstatus.qtpl:360
if *clusterMemberURLTemplate == "" {
//line lib/promscrape/targetstatus.qtpl:360
qw422016.N().S(`shard-`)
//line lib/promscrape/targetstatus.qtpl:361
qw422016.N().D(memberNum)
//line lib/promscrape/targetstatus.qtpl:362
} else {
//line lib/promscrape/targetstatus.qtpl:362
qw422016.N().S(`<a href="`)
//line lib/promscrape/targetstatus.qtpl:363
qw422016.E().S(strings.ReplaceAll(*clusterMemberURLTemplate, "%d", strconv.Itoa(memberNum)))
//line lib/promscrape/targetstatus.qtpl:363
qw422016.N().S(`" target="_blank">shard-`)
//line lib/promscrape/targetstatus.qtpl:363
qw422016.N().D(memberNum)
//line lib/promscrape/targetstatus.qtpl:363
qw422016.N().S(`</a>`)
//line lib/promscrape/targetstatus.qtpl:364
}
//line lib/promscrape/targetstatus.qtpl:365
if i+1 < len(t.clusterMemberNums) {
//line lib/promscrape/targetstatus.qtpl:365
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:365
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:365
}
//line lib/promscrape/targetstatus.qtpl:366
}
//line lib/promscrape/targetstatus.qtpl:367
}
//line lib/promscrape/targetstatus.qtpl:368
}
//line lib/promscrape/targetstatus.qtpl:368
qw422016.N().S(`</td><td class="labels">`)
//line lib/promscrape/targetstatus.qtpl:371
streamformatLabels(qw422016, t.originalLabels)
//line lib/promscrape/targetstatus.qtpl:371
qw422016.N().S(`</td><td class="labels">`)
//line lib/promscrape/targetstatus.qtpl:374
streamformatLabels(qw422016, t.labels)
//line lib/promscrape/targetstatus.qtpl:374
qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:377
targetID := getLabelsID(t.originalLabels)
//line lib/promscrape/targetstatus.qtpl:377
qw422016.N().S(`<a href="target-relabel-debug?id=`)
//line lib/promscrape/targetstatus.qtpl:378
qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:378
qw422016.N().S(`" target="_blank">debug</a></td></tr>`)
//line lib/promscrape/targetstatus.qtpl:381
}
//line lib/promscrape/targetstatus.qtpl:381
qw422016.N().S(`</tbody></table></div>`)
//line lib/promscrape/targetstatus.qtpl:385
}
//line lib/promscrape/targetstatus.qtpl:385
func writediscoveredJobTargets(qq422016 qtio422016.Writer, num int, tlj *targetLabelsByJob) {
//line lib/promscrape/targetstatus.qtpl:385
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:385
streamdiscoveredJobTargets(qw422016, num, tlj)
//line lib/promscrape/targetstatus.qtpl:385
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:385
}
//line lib/promscrape/targetstatus.qtpl:385
func discoveredJobTargets(num int, tlj *targetLabelsByJob) string {
//line lib/promscrape/targetstatus.qtpl:385
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:385
writediscoveredJobTargets(qb422016, num, tlj)
//line lib/promscrape/targetstatus.qtpl:385
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:385
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:385
return qs422016
//line lib/promscrape/targetstatus.qtpl:385
}
//line lib/promscrape/targetstatus.qtpl:387
func streamshowHideScrapeJobButtons(qw422016 *qt422016.Writer, num int) {
//line lib/promscrape/targetstatus.qtpl:387
qw422016.N().S(`<button type="button" class="btn btn-primary btn-sm me-1"onclick="document.getElementById('scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:389
qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:389
qw422016.N().S(`').style.display='none'">collapse</button><button type="button" class="btn btn-secondary btn-sm me-1"onclick="document.getElementById('scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:393
qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:393
qw422016.N().S(`').style.display='block'">expand</button>`)
//line lib/promscrape/targetstatus.qtpl:396
}
//line lib/promscrape/targetstatus.qtpl:396
func writeshowHideScrapeJobButtons(qq422016 qtio422016.Writer, num int) {
//line lib/promscrape/targetstatus.qtpl:396
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:396
streamshowHideScrapeJobButtons(qw422016, num)
//line lib/promscrape/targetstatus.qtpl:396
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:396
}
//line lib/promscrape/targetstatus.qtpl:396
func showHideScrapeJobButtons(num int) string {
//line lib/promscrape/targetstatus.qtpl:396
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:396
writeshowHideScrapeJobButtons(qb422016, num)
//line lib/promscrape/targetstatus.qtpl:396
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:396
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:396
return qs422016
//line lib/promscrape/targetstatus.qtpl:396
}
//line lib/promscrape/targetstatus.qtpl:398
func streamqueryArgs(qw422016 *qt422016.Writer, filter *requestFilter, override map[string]string) {
//line lib/promscrape/targetstatus.qtpl:400
showOnlyUnhealthy := "false"
if filter.showOnlyUnhealthy {
showOnlyUnhealthy = "true"
}
m := map[string]string{
"show_only_unhealthy": showOnlyUnhealthy,
"endpoint_search": filter.endpointSearch,
"label_search": filter.labelSearch,
}
for k, v := range override {
m[k] = v
}
qa := make(url.Values, len(m))
for k, v := range m {
qa[k] = []string{v}
}
//line lib/promscrape/targetstatus.qtpl:417
qw422016.E().S(qa.Encode())
//line lib/promscrape/targetstatus.qtpl:418
}
//line lib/promscrape/targetstatus.qtpl:418
func writequeryArgs(qq422016 qtio422016.Writer, filter *requestFilter, override map[string]string) {
//line lib/promscrape/targetstatus.qtpl:418
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:418
streamqueryArgs(qw422016, filter, override)
//line lib/promscrape/targetstatus.qtpl:418
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:418
}
//line lib/promscrape/targetstatus.qtpl:418
func queryArgs(filter *requestFilter, override map[string]string) string {
//line lib/promscrape/targetstatus.qtpl:418
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:418
writequeryArgs(qb422016, filter, override)
//line lib/promscrape/targetstatus.qtpl:418
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:418
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:418
return qs422016
//line lib/promscrape/targetstatus.qtpl:418
}
//line lib/promscrape/targetstatus.qtpl:420
func streamformatLabels(qw422016 *qt422016.Writer, labels *promutil.Labels) {
//line lib/promscrape/targetstatus.qtpl:421
labelsList := labels.GetLabels()
//line lib/promscrape/targetstatus.qtpl:421
qw422016.N().S(`{`)
//line lib/promscrape/targetstatus.qtpl:423
for i, label := range labelsList {
//line lib/promscrape/targetstatus.qtpl:424
qw422016.E().S(label.Name)
//line lib/promscrape/targetstatus.qtpl:424
qw422016.N().S(`=`)
//line lib/promscrape/targetstatus.qtpl:424
qw422016.E().Q(label.Value)
//line lib/promscrape/targetstatus.qtpl:425
if i+1 < len(labelsList) {
//line lib/promscrape/targetstatus.qtpl:425
qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:425
qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:425
}
//line lib/promscrape/targetstatus.qtpl:426
}
//line lib/promscrape/targetstatus.qtpl:426
qw422016.N().S(`}`)
//line lib/promscrape/targetstatus.qtpl:428
}
//line lib/promscrape/targetstatus.qtpl:428
func writeformatLabels(qq422016 qtio422016.Writer, labels *promutil.Labels) {
//line lib/promscrape/targetstatus.qtpl:428
qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:428
streamformatLabels(qw422016, labels)
//line lib/promscrape/targetstatus.qtpl:428
qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:428
}
//line lib/promscrape/targetstatus.qtpl:428
func formatLabels(labels *promutil.Labels) string {
//line lib/promscrape/targetstatus.qtpl:428
qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:428
writeformatLabels(qb422016, labels)
//line lib/promscrape/targetstatus.qtpl:428
qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:428
qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:428
return qs422016
//line lib/promscrape/targetstatus.qtpl:428
}