mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-01 14:47:38 +00:00
6d237da3f3
- Clarify that the -promscrape.maxScrapeSize value is used for limiting the maximum scrape size if max_scrape_size option isn't set at https://docs.victoriametrics.com/sd_configs/#scrape_configs - Fix query example for scrape_response_size_bytes metric at https://docs.victoriametrics.com/vmagent/#automatically-generated-metrics - Mention about max_scrape_size option at the -help description for -promscrape.maxScrapeSize command-line flag - Treat zero value for max_scrape_size option as 'no scrape size limit' - Change float64 to int type for scrapeResponseSize struct fields and function args, since response size cannot be fractional - Optimize isAutoMetric() function a bit - Sort auto metrics in alphabetical order in isAutoMetric() and in scrapeWork.addAutoMetrics() functions for better maintainability in the future Updates https://github.com/VictoriaMetrics/VictoriaMetrics/pull/6434 Updates https://github.com/VictoriaMetrics/VictoriaMetrics/issues/6429
1143 lines
45 KiB
Go
1143 lines
45 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/promutils"
|
|
)
|
|
|
|
//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:181
|
|
qw422016.N().S(`<div class="row mt-4"><div class="col-12">`)
|
|
//line lib/promscrape/targetstatus.qtpl:184
|
|
for i, jts := range tsr.jobTargetsStatuses {
|
|
//line lib/promscrape/targetstatus.qtpl:185
|
|
streamscrapeJobTargets(qw422016, i, jts, tsr.hasOriginalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:186
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:187
|
|
for i, jobName := range tsr.emptyJobs {
|
|
//line lib/promscrape/targetstatus.qtpl:189
|
|
num := i + len(tsr.jobTargetsStatuses)
|
|
jts := &jobTargetsStatuses{
|
|
jobName: jobName,
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:194
|
|
streamscrapeJobTargets(qw422016, num, jts, tsr.hasOriginalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:195
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:195
|
|
qw422016.N().S(`</div></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
func writescrapeTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) {
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
streamscrapeTargets(qw422016, tsr)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
func scrapeTargets(tsr *targetsStatusResult) string {
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
writescrapeTargets(qb422016, tsr)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:198
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:200
|
|
func streamscrapeJobTargets(qw422016 *qt422016.Writer, num int, jts *jobTargetsStatuses, hasOriginalLabels bool) {
|
|
//line lib/promscrape/targetstatus.qtpl:200
|
|
qw422016.N().S(`<div class="row mb-4"><div class="col-12"><h4><span class="me-2">`)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.E().S(jts.jobName)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().S(`(`)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().D(jts.upCount)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().S(`/`)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().D(jts.targetsTotal)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().S(`up)</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:205
|
|
streamshowHideScrapeJobButtons(qw422016, num)
|
|
//line lib/promscrape/targetstatus.qtpl:205
|
|
qw422016.N().S(`</h4><div id="scrape-job-`)
|
|
//line lib/promscrape/targetstatus.qtpl:207
|
|
qw422016.N().D(num)
|
|
//line lib/promscrape/targetstatus.qtpl:207
|
|
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>`)
|
|
//line lib/promscrape/targetstatus.qtpl:214
|
|
if hasOriginalLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:214
|
|
qw422016.N().S(`<th scope="col" title="debug relabeling">Debug relabeling</th>`)
|
|
//line lib/promscrape/targetstatus.qtpl:216
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:216
|
|
qw422016.N().S(`<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:227
|
|
for _, ts := range jts.targetsStatus {
|
|
//line lib/promscrape/targetstatus.qtpl:229
|
|
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:234
|
|
qw422016.N().S(`<tr`)
|
|
//line lib/promscrape/targetstatus.qtpl:235
|
|
if !ts.up {
|
|
//line lib/promscrape/targetstatus.qtpl:235
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:235
|
|
qw422016.N().S(`class="alert alert-danger" role="alert"`)
|
|
//line lib/promscrape/targetstatus.qtpl:235
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:235
|
|
qw422016.N().S(`><td class="endpoint"><a href="`)
|
|
//line lib/promscrape/targetstatus.qtpl:237
|
|
qw422016.E().S(endpoint)
|
|
//line lib/promscrape/targetstatus.qtpl:237
|
|
qw422016.N().S(`" target="_blank">`)
|
|
//line lib/promscrape/targetstatus.qtpl:237
|
|
qw422016.E().S(endpoint)
|
|
//line lib/promscrape/targetstatus.qtpl:237
|
|
qw422016.N().S(`</a>`)
|
|
//line lib/promscrape/targetstatus.qtpl:238
|
|
if hasOriginalLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:239
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:239
|
|
qw422016.N().S(`(<a href="target_response?id=`)
|
|
//line lib/promscrape/targetstatus.qtpl:240
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:240
|
|
qw422016.N().S(`" target="_blank"title="click to fetch target response on behalf of the scraper">response</a>)`)
|
|
//line lib/promscrape/targetstatus.qtpl:242
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:242
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:245
|
|
if ts.up {
|
|
//line lib/promscrape/targetstatus.qtpl:245
|
|
qw422016.N().S(`<span class="badge bg-success">UP</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:247
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:247
|
|
qw422016.N().S(`<span class="badge bg-danger">DOWN</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:249
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:249
|
|
qw422016.N().S(`</td><td class="labels"><div`)
|
|
//line lib/promscrape/targetstatus.qtpl:253
|
|
if hasOriginalLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:254
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:254
|
|
qw422016.N().S(`title="click to show original labels"onclick="document.getElementById('original-labels-`)
|
|
//line lib/promscrape/targetstatus.qtpl:255
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:255
|
|
qw422016.N().S(`').style.display='block'"`)
|
|
//line lib/promscrape/targetstatus.qtpl:256
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:256
|
|
qw422016.N().S(`>`)
|
|
//line lib/promscrape/targetstatus.qtpl:258
|
|
streamformatLabels(qw422016, ts.sw.Config.Labels)
|
|
//line lib/promscrape/targetstatus.qtpl:258
|
|
qw422016.N().S(`</div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
if hasOriginalLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
qw422016.N().S(`<div style="display:none" id="original-labels-`)
|
|
//line lib/promscrape/targetstatus.qtpl:261
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:261
|
|
qw422016.N().S(`">`)
|
|
//line lib/promscrape/targetstatus.qtpl:262
|
|
streamformatLabels(qw422016, originalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:262
|
|
qw422016.N().S(`</div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:264
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:264
|
|
qw422016.N().S(`</td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:266
|
|
if hasOriginalLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:266
|
|
qw422016.N().S(`<td><a href="target-relabel-debug?id=`)
|
|
//line lib/promscrape/targetstatus.qtpl:268
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:268
|
|
qw422016.N().S(`" target="_blank">target</a>`)
|
|
//line lib/promscrape/targetstatus.qtpl:268
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:268
|
|
qw422016.N().S(`<a href="metric-relabel-debug?id=`)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qw422016.N().S(`" target="_blank">metrics</a></td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:271
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:271
|
|
qw422016.N().S(`<td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:272
|
|
qw422016.N().D(ts.scrapesTotal)
|
|
//line lib/promscrape/targetstatus.qtpl:272
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:273
|
|
qw422016.N().D(ts.scrapesFailed)
|
|
//line lib/promscrape/targetstatus.qtpl:273
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:274
|
|
qw422016.E().S(ts.getDurationFromLastScrape())
|
|
//line lib/promscrape/targetstatus.qtpl:274
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:275
|
|
qw422016.N().D(int(ts.scrapeDuration))
|
|
//line lib/promscrape/targetstatus.qtpl:275
|
|
qw422016.N().S(`ms</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:276
|
|
qw422016.E().S(ts.getSizeFromLastScrape())
|
|
//line lib/promscrape/targetstatus.qtpl:276
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:277
|
|
qw422016.N().D(ts.samplesScraped)
|
|
//line lib/promscrape/targetstatus.qtpl:277
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:278
|
|
if ts.err != nil {
|
|
//line lib/promscrape/targetstatus.qtpl:278
|
|
qw422016.E().S(ts.err.Error())
|
|
//line lib/promscrape/targetstatus.qtpl:278
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:278
|
|
qw422016.N().S(`</td></tr>`)
|
|
//line lib/promscrape/targetstatus.qtpl:280
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:280
|
|
qw422016.N().S(`</tbody></table></div></div></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
func writescrapeJobTargets(qq422016 qtio422016.Writer, num int, jts *jobTargetsStatuses, hasOriginalLabels bool) {
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
streamscrapeJobTargets(qw422016, num, jts, hasOriginalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
func scrapeJobTargets(num int, jts *jobTargetsStatuses, hasOriginalLabels bool) string {
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
writescrapeJobTargets(qb422016, num, jts, hasOriginalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:286
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:288
|
|
func streamdiscoveredTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) {
|
|
//line lib/promscrape/targetstatus.qtpl:289
|
|
if !tsr.hasOriginalLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:289
|
|
qw422016.N().S(`<div class="alert alert-warning" role="alert">Discovered targets are unavailable when <b>-promscrape.dropOriginalLabels</b> command-line flag is set</div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:293
|
|
return
|
|
//line lib/promscrape/targetstatus.qtpl:294
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:296
|
|
if n := droppedTargetsMap.getTotalTargets(); n > *maxDroppedTargets {
|
|
//line lib/promscrape/targetstatus.qtpl:296
|
|
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:298
|
|
qw422016.N().D(*maxDroppedTargets)
|
|
//line lib/promscrape/targetstatus.qtpl:298
|
|
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:299
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:299
|
|
qw422016.N().S(`<b>`)
|
|
//line lib/promscrape/targetstatus.qtpl:299
|
|
qw422016.N().D(n)
|
|
//line lib/promscrape/targetstatus.qtpl:299
|
|
qw422016.N().S(`</b>.<br/>Note that this may increase memory usage.</div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:302
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:304
|
|
tljs := tsr.getTargetLabelsByJob()
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:304
|
|
qw422016.N().S(`<div class="row mt-4"><div class="col-12">`)
|
|
//line lib/promscrape/targetstatus.qtpl:307
|
|
for i, tlj := range tljs {
|
|
//line lib/promscrape/targetstatus.qtpl:308
|
|
streamdiscoveredJobTargets(qw422016, i, tlj)
|
|
//line lib/promscrape/targetstatus.qtpl:309
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:309
|
|
qw422016.N().S(`</div></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
func writediscoveredTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) {
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
streamdiscoveredTargets(qw422016, tsr)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
func discoveredTargets(tsr *targetsStatusResult) string {
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
writediscoveredTargets(qb422016, tsr)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:312
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:314
|
|
func streamdiscoveredJobTargets(qw422016 *qt422016.Writer, num int, tlj *targetLabelsByJob) {
|
|
//line lib/promscrape/targetstatus.qtpl:314
|
|
qw422016.N().S(`<h4><span class="me-2">`)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.E().S(tlj.jobName)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().S(`(`)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().D(tlj.activeTargets)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().S(`/`)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().D(tlj.activeTargets + tlj.droppedTargets)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:316
|
|
qw422016.N().S(`active)</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:317
|
|
streamshowHideScrapeJobButtons(qw422016, num)
|
|
//line lib/promscrape/targetstatus.qtpl:317
|
|
qw422016.N().S(`</h4><div id="scrape-job-`)
|
|
//line lib/promscrape/targetstatus.qtpl:319
|
|
qw422016.N().D(num)
|
|
//line lib/promscrape/targetstatus.qtpl:319
|
|
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:330
|
|
for _, t := range tlj.targets {
|
|
//line lib/promscrape/targetstatus.qtpl:330
|
|
qw422016.N().S(`<tr`)
|
|
//line lib/promscrape/targetstatus.qtpl:332
|
|
if !t.up {
|
|
//line lib/promscrape/targetstatus.qtpl:333
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:333
|
|
qw422016.N().S(`role="alert"`)
|
|
//line lib/promscrape/targetstatus.qtpl:333
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:334
|
|
if t.labels.Len() > 0 {
|
|
//line lib/promscrape/targetstatus.qtpl:334
|
|
qw422016.N().S(`class="alert alert-danger"`)
|
|
//line lib/promscrape/targetstatus.qtpl:336
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:336
|
|
qw422016.N().S(`class="alert alert-warning"`)
|
|
//line lib/promscrape/targetstatus.qtpl:338
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:339
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:339
|
|
qw422016.N().S(`><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:342
|
|
if t.up {
|
|
//line lib/promscrape/targetstatus.qtpl:342
|
|
qw422016.N().S(`<span class="badge bg-success">UP</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:344
|
|
} else if t.labels.Len() > 0 {
|
|
//line lib/promscrape/targetstatus.qtpl:344
|
|
qw422016.N().S(`<span class="badge bg-danger">DOWN</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:346
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:346
|
|
qw422016.N().S(`<span class="badge bg-warning">DROPPED (`)
|
|
//line lib/promscrape/targetstatus.qtpl:347
|
|
qw422016.E().S(string(t.dropReason))
|
|
//line lib/promscrape/targetstatus.qtpl:347
|
|
qw422016.N().S(`)</span>`)
|
|
//line lib/promscrape/targetstatus.qtpl:348
|
|
if len(t.clusterMemberNums) > 0 {
|
|
//line lib/promscrape/targetstatus.qtpl:348
|
|
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:351
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:352
|
|
for i, memberNum := range t.clusterMemberNums {
|
|
//line lib/promscrape/targetstatus.qtpl:353
|
|
if *clusterMemberURLTemplate == "" {
|
|
//line lib/promscrape/targetstatus.qtpl:353
|
|
qw422016.N().S(`shard-`)
|
|
//line lib/promscrape/targetstatus.qtpl:354
|
|
qw422016.N().D(memberNum)
|
|
//line lib/promscrape/targetstatus.qtpl:355
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:355
|
|
qw422016.N().S(`<a href="`)
|
|
//line lib/promscrape/targetstatus.qtpl:356
|
|
qw422016.E().S(strings.ReplaceAll(*clusterMemberURLTemplate, "%d", strconv.Itoa(memberNum)))
|
|
//line lib/promscrape/targetstatus.qtpl:356
|
|
qw422016.N().S(`" target="_blank">shard-`)
|
|
//line lib/promscrape/targetstatus.qtpl:356
|
|
qw422016.N().D(memberNum)
|
|
//line lib/promscrape/targetstatus.qtpl:356
|
|
qw422016.N().S(`</a>`)
|
|
//line lib/promscrape/targetstatus.qtpl:357
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:358
|
|
if i+1 < len(t.clusterMemberNums) {
|
|
//line lib/promscrape/targetstatus.qtpl:358
|
|
qw422016.N().S(`,`)
|
|
//line lib/promscrape/targetstatus.qtpl:358
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:358
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:359
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:360
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:361
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:361
|
|
qw422016.N().S(`</td><td class="labels">`)
|
|
//line lib/promscrape/targetstatus.qtpl:364
|
|
streamformatLabels(qw422016, t.originalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:364
|
|
qw422016.N().S(`</td><td class="labels">`)
|
|
//line lib/promscrape/targetstatus.qtpl:367
|
|
streamformatLabels(qw422016, t.labels)
|
|
//line lib/promscrape/targetstatus.qtpl:367
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:370
|
|
targetID := getLabelsID(t.originalLabels)
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:370
|
|
qw422016.N().S(`<a href="target-relabel-debug?id=`)
|
|
//line lib/promscrape/targetstatus.qtpl:371
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:371
|
|
qw422016.N().S(`" target="_blank">debug</a></td></tr>`)
|
|
//line lib/promscrape/targetstatus.qtpl:374
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:374
|
|
qw422016.N().S(`</tbody></table></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
func writediscoveredJobTargets(qq422016 qtio422016.Writer, num int, tlj *targetLabelsByJob) {
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
streamdiscoveredJobTargets(qw422016, num, tlj)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
func discoveredJobTargets(num int, tlj *targetLabelsByJob) string {
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
writediscoveredJobTargets(qb422016, num, tlj)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:378
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:380
|
|
func streamshowHideScrapeJobButtons(qw422016 *qt422016.Writer, num int) {
|
|
//line lib/promscrape/targetstatus.qtpl:380
|
|
qw422016.N().S(`<button type="button" class="btn btn-primary btn-sm me-1"onclick="document.getElementById('scrape-job-`)
|
|
//line lib/promscrape/targetstatus.qtpl:382
|
|
qw422016.N().D(num)
|
|
//line lib/promscrape/targetstatus.qtpl:382
|
|
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:386
|
|
qw422016.N().D(num)
|
|
//line lib/promscrape/targetstatus.qtpl:386
|
|
qw422016.N().S(`').style.display='block'">expand</button>`)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
func writeshowHideScrapeJobButtons(qq422016 qtio422016.Writer, num int) {
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
streamshowHideScrapeJobButtons(qw422016, num)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
func showHideScrapeJobButtons(num int) string {
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
writeshowHideScrapeJobButtons(qb422016, num)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:389
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:391
|
|
func streamqueryArgs(qw422016 *qt422016.Writer, filter *requestFilter, override map[string]string) {
|
|
//line lib/promscrape/targetstatus.qtpl:393
|
|
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:410
|
|
qw422016.E().S(qa.Encode())
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
func writequeryArgs(qq422016 qtio422016.Writer, filter *requestFilter, override map[string]string) {
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
streamqueryArgs(qw422016, filter, override)
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
func queryArgs(filter *requestFilter, override map[string]string) string {
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
writequeryArgs(qb422016, filter, override)
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:411
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:413
|
|
func streamformatLabels(qw422016 *qt422016.Writer, labels *promutils.Labels) {
|
|
//line lib/promscrape/targetstatus.qtpl:414
|
|
labelsList := labels.GetLabels()
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:414
|
|
qw422016.N().S(`{`)
|
|
//line lib/promscrape/targetstatus.qtpl:416
|
|
for i, label := range labelsList {
|
|
//line lib/promscrape/targetstatus.qtpl:417
|
|
qw422016.E().S(label.Name)
|
|
//line lib/promscrape/targetstatus.qtpl:417
|
|
qw422016.N().S(`=`)
|
|
//line lib/promscrape/targetstatus.qtpl:417
|
|
qw422016.E().Q(label.Value)
|
|
//line lib/promscrape/targetstatus.qtpl:418
|
|
if i+1 < len(labelsList) {
|
|
//line lib/promscrape/targetstatus.qtpl:418
|
|
qw422016.N().S(`,`)
|
|
//line lib/promscrape/targetstatus.qtpl:418
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:418
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:419
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:419
|
|
qw422016.N().S(`}`)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
func writeformatLabels(qq422016 qtio422016.Writer, labels *promutils.Labels) {
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
streamformatLabels(qw422016, labels)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
func formatLabels(labels *promutils.Labels) string {
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
writeformatLabels(qb422016, labels)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:421
|
|
}
|