From e8dfecb3f1d735bd47281579e2af9b8eded8686d Mon Sep 17 00:00:00 2001 From: Aliaksandr Valialkin Date: Wed, 6 Dec 2023 22:24:24 +0200 Subject: [PATCH] lib/promscrape: show `never scraped` message for never scraped targets at /targets page --- lib/promscrape/targetstatus.go | 8 +- lib/promscrape/targetstatus.qtpl | 11 +- lib/promscrape/targetstatus.qtpl.go | 1020 +++++++++++++-------------- 3 files changed, 512 insertions(+), 527 deletions(-) diff --git a/lib/promscrape/targetstatus.go b/lib/promscrape/targetstatus.go index a4051bdccd..3433be9ba8 100644 --- a/lib/promscrape/targetstatus.go +++ b/lib/promscrape/targetstatus.go @@ -304,8 +304,12 @@ type targetStatus struct { err error } -func (ts *targetStatus) getDurationFromLastScrape() time.Duration { - return time.Since(time.Unix(ts.scrapeTime/1000, (ts.scrapeTime%1000)*1e6)) +func (ts *targetStatus) getDurationFromLastScrape() string { + if ts.scrapeTime <= 0 { + return "never scraped" + } + d := time.Since(time.Unix(ts.scrapeTime/1000, (ts.scrapeTime%1000)*1e6)) + return fmt.Sprintf("%.3fs ago", d.Seconds()) } type droppedTargets struct { diff --git a/lib/promscrape/targetstatus.qtpl b/lib/promscrape/targetstatus.qtpl index 0c767103a4..c07f8cc760 100644 --- a/lib/promscrape/targetstatus.qtpl +++ b/lib/promscrape/targetstatus.qtpl @@ -1,6 +1,5 @@ {% import ( "net/url" - "time" "github.com/VictoriaMetrics/VictoriaMetrics/lib/htmlcomponents" "github.com/VictoriaMetrics/VictoriaMetrics/lib/promutils" @@ -26,7 +25,7 @@ {% if filter.showOriginalLabels %}originalLabels={%s= ts.sw.Config.OriginalLabels.String() %},{% space %}{% endif %} scrapes_total={%d ts.scrapesTotal %},{% space %} scrapes_failed={%d ts.scrapesFailed %},{% space %} - last_scrape={%d int(ts.getDurationFromLastScrape().Milliseconds()) %}ms ago,{% space %} + last_scrape={%s ts.getDurationFromLastScrape() %},{% space %} scrape_duration={%d int(ts.scrapeDuration) %}ms,{% space %} samples_scraped={%d ts.samplesScraped %},{% space %} error={% if ts.err != nil %}{%s= ts.err.Error() %}{% endif %} @@ -228,7 +227,6 @@ // The target is uniquely identified by a pointer to its original labels. targetID := getLabelsID(originalLabels) - lastScrapeDuration := ts.getDurationFromLastScrape() %} @@ -269,12 +267,7 @@ {% endif %} {%d ts.scrapesTotal %} {%d ts.scrapesFailed %} - - {% if lastScrapeDuration < 365*24*time.Hour %} - {%d int(lastScrapeDuration.Milliseconds()) %}ms ago - {% else %} - none - {% endif %} + {%s ts.getDurationFromLastScrape() %} {%d int(ts.scrapeDuration) %}ms {%d ts.samplesScraped %} {% if ts.err != nil %}{%s ts.err.Error() %}{% endif %} diff --git a/lib/promscrape/targetstatus.qtpl.go b/lib/promscrape/targetstatus.qtpl.go index cf96e116db..e6821965bc 100644 --- a/lib/promscrape/targetstatus.qtpl.go +++ b/lib/promscrape/targetstatus.qtpl.go @@ -7,977 +7,965 @@ package promscrape //line lib/promscrape/targetstatus.qtpl:1 import ( "net/url" - "time" "github.com/VictoriaMetrics/VictoriaMetrics/lib/htmlcomponents" "github.com/VictoriaMetrics/VictoriaMetrics/lib/promutils" ) -//line lib/promscrape/targetstatus.qtpl:11 +//line lib/promscrape/targetstatus.qtpl:10 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) -//line lib/promscrape/targetstatus.qtpl:11 +//line lib/promscrape/targetstatus.qtpl:10 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) -//line lib/promscrape/targetstatus.qtpl:11 +//line lib/promscrape/targetstatus.qtpl:10 func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:13 +//line lib/promscrape/targetstatus.qtpl:12 if tsr.err != nil { -//line lib/promscrape/targetstatus.qtpl:14 +//line lib/promscrape/targetstatus.qtpl:13 qw422016.N().S(tsr.err.Error()) -//line lib/promscrape/targetstatus.qtpl:15 +//line lib/promscrape/targetstatus.qtpl:14 return -//line lib/promscrape/targetstatus.qtpl:16 +//line lib/promscrape/targetstatus.qtpl:15 } -//line lib/promscrape/targetstatus.qtpl:18 +//line lib/promscrape/targetstatus.qtpl:17 for _, jts := range tsr.jobTargetsStatuses { -//line lib/promscrape/targetstatus.qtpl:18 +//line lib/promscrape/targetstatus.qtpl:17 qw422016.N().S(`job=`) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().S(jts.jobName) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().S(`(`) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().D(jts.upCount) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().S(`/`) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().D(jts.targetsTotal) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:19 +//line lib/promscrape/targetstatus.qtpl:18 qw422016.N().S(`up)`) -//line lib/promscrape/targetstatus.qtpl:20 +//line lib/promscrape/targetstatus.qtpl:19 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:21 +//line lib/promscrape/targetstatus.qtpl:20 for _, ts := range jts.targetsStatus { -//line lib/promscrape/targetstatus.qtpl:22 +//line lib/promscrape/targetstatus.qtpl:21 qw422016.N().S("\t") -//line lib/promscrape/targetstatus.qtpl:22 +//line lib/promscrape/targetstatus.qtpl:21 qw422016.N().S(`state=`) -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 if ts.up { -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 qw422016.N().S(`up`) -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 } else { -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 qw422016.N().S(`down`) -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 } -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:23 +//line lib/promscrape/targetstatus.qtpl:22 qw422016.N().S(`endpoint=`) -//line lib/promscrape/targetstatus.qtpl:24 +//line lib/promscrape/targetstatus.qtpl:23 qw422016.N().S(ts.sw.Config.ScrapeURL) -//line lib/promscrape/targetstatus.qtpl:24 +//line lib/promscrape/targetstatus.qtpl:23 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:24 +//line lib/promscrape/targetstatus.qtpl:23 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:24 +//line lib/promscrape/targetstatus.qtpl:23 qw422016.N().S(`labels=`) -//line lib/promscrape/targetstatus.qtpl:25 +//line lib/promscrape/targetstatus.qtpl:24 qw422016.N().S(ts.sw.Config.Labels.String()) -//line lib/promscrape/targetstatus.qtpl:25 +//line lib/promscrape/targetstatus.qtpl:24 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:25 +//line lib/promscrape/targetstatus.qtpl:24 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 if filter.showOriginalLabels { -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 qw422016.N().S(`originalLabels=`) -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 qw422016.N().S(ts.sw.Config.OriginalLabels.String()) -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 } -//line lib/promscrape/targetstatus.qtpl:26 +//line lib/promscrape/targetstatus.qtpl:25 qw422016.N().S(`scrapes_total=`) -//line lib/promscrape/targetstatus.qtpl:27 +//line lib/promscrape/targetstatus.qtpl:26 qw422016.N().D(ts.scrapesTotal) -//line lib/promscrape/targetstatus.qtpl:27 +//line lib/promscrape/targetstatus.qtpl:26 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:27 +//line lib/promscrape/targetstatus.qtpl:26 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:27 +//line lib/promscrape/targetstatus.qtpl:26 qw422016.N().S(`scrapes_failed=`) -//line lib/promscrape/targetstatus.qtpl:28 +//line lib/promscrape/targetstatus.qtpl:27 qw422016.N().D(ts.scrapesFailed) -//line lib/promscrape/targetstatus.qtpl:28 +//line lib/promscrape/targetstatus.qtpl:27 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:28 +//line lib/promscrape/targetstatus.qtpl:27 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:28 +//line lib/promscrape/targetstatus.qtpl:27 qw422016.N().S(`last_scrape=`) -//line lib/promscrape/targetstatus.qtpl:29 - qw422016.N().D(int(ts.getDurationFromLastScrape().Milliseconds())) -//line lib/promscrape/targetstatus.qtpl:29 - qw422016.N().S(`ms ago,`) -//line lib/promscrape/targetstatus.qtpl:29 - qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:29 - qw422016.N().S(`scrape_duration=`) -//line lib/promscrape/targetstatus.qtpl:30 - qw422016.N().D(int(ts.scrapeDuration)) -//line lib/promscrape/targetstatus.qtpl:30 - qw422016.N().S(`ms,`) -//line lib/promscrape/targetstatus.qtpl:30 - qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:30 - qw422016.N().S(`samples_scraped=`) -//line lib/promscrape/targetstatus.qtpl:31 - qw422016.N().D(ts.samplesScraped) -//line lib/promscrape/targetstatus.qtpl:31 +//line lib/promscrape/targetstatus.qtpl:28 + qw422016.E().S(ts.getDurationFromLastScrape()) +//line lib/promscrape/targetstatus.qtpl:28 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:31 +//line lib/promscrape/targetstatus.qtpl:28 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:31 +//line lib/promscrape/targetstatus.qtpl:28 + qw422016.N().S(`scrape_duration=`) +//line lib/promscrape/targetstatus.qtpl:29 + qw422016.N().D(int(ts.scrapeDuration)) +//line lib/promscrape/targetstatus.qtpl:29 + qw422016.N().S(`ms,`) +//line lib/promscrape/targetstatus.qtpl:29 + qw422016.N().S(` `) +//line lib/promscrape/targetstatus.qtpl:29 + qw422016.N().S(`samples_scraped=`) +//line lib/promscrape/targetstatus.qtpl:30 + qw422016.N().D(ts.samplesScraped) +//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(`error=`) -//line lib/promscrape/targetstatus.qtpl:32 +//line lib/promscrape/targetstatus.qtpl:31 if ts.err != nil { -//line lib/promscrape/targetstatus.qtpl:32 +//line lib/promscrape/targetstatus.qtpl:31 qw422016.N().S(ts.err.Error()) -//line lib/promscrape/targetstatus.qtpl:32 +//line lib/promscrape/targetstatus.qtpl:31 } -//line lib/promscrape/targetstatus.qtpl:33 +//line lib/promscrape/targetstatus.qtpl:32 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:34 +//line lib/promscrape/targetstatus.qtpl:33 } -//line lib/promscrape/targetstatus.qtpl:35 +//line lib/promscrape/targetstatus.qtpl:34 } -//line lib/promscrape/targetstatus.qtpl:37 +//line lib/promscrape/targetstatus.qtpl:36 for _, jobName := range tsr.emptyJobs { -//line lib/promscrape/targetstatus.qtpl:37 +//line lib/promscrape/targetstatus.qtpl:36 qw422016.N().S(`job=`) -//line lib/promscrape/targetstatus.qtpl:38 +//line lib/promscrape/targetstatus.qtpl:37 qw422016.N().S(jobName) -//line lib/promscrape/targetstatus.qtpl:38 +//line lib/promscrape/targetstatus.qtpl:37 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:38 +//line lib/promscrape/targetstatus.qtpl:37 qw422016.N().S(`(0/0 up)`) -//line lib/promscrape/targetstatus.qtpl:39 +//line lib/promscrape/targetstatus.qtpl:38 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:40 +//line lib/promscrape/targetstatus.qtpl:39 } -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 } -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 func WriteTargetsResponsePlain(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 StreamTargetsResponsePlain(qw422016, tsr, filter) -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 } -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 func TargetsResponsePlain(tsr *targetsStatusResult, filter *requestFilter) string { -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 WriteTargetsResponsePlain(qb422016, tsr, filter) -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 return qs422016 -//line lib/promscrape/targetstatus.qtpl:42 +//line lib/promscrape/targetstatus.qtpl:41 } -//line lib/promscrape/targetstatus.qtpl:44 +//line lib/promscrape/targetstatus.qtpl:43 func StreamTargetsResponseHTML(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:44 +//line lib/promscrape/targetstatus.qtpl:43 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:48 +//line lib/promscrape/targetstatus.qtpl:47 htmlcomponents.StreamCommonHeader(qw422016) -//line lib/promscrape/targetstatus.qtpl:48 +//line lib/promscrape/targetstatus.qtpl:47 qw422016.N().S(`Active Targets`) -//line lib/promscrape/targetstatus.qtpl:52 +//line lib/promscrape/targetstatus.qtpl:51 htmlcomponents.StreamNavbar(qw422016) -//line lib/promscrape/targetstatus.qtpl:52 +//line lib/promscrape/targetstatus.qtpl:51 qw422016.N().S(`
`) +//line lib/promscrape/targetstatus.qtpl:53 + if tsr.err != nil { //line lib/promscrape/targetstatus.qtpl:54 - if tsr.err != nil { + htmlcomponents.StreamErrorNotification(qw422016, tsr.err) //line lib/promscrape/targetstatus.qtpl:55 - htmlcomponents.StreamErrorNotification(qw422016, tsr.err) -//line lib/promscrape/targetstatus.qtpl:56 } -//line lib/promscrape/targetstatus.qtpl:56 +//line lib/promscrape/targetstatus.qtpl:55 qw422016.N().S(`

Active Targets


`) -//line lib/promscrape/targetstatus.qtpl:61 +//line lib/promscrape/targetstatus.qtpl:60 streamfiltersForm(qw422016, filter) -//line lib/promscrape/targetstatus.qtpl:61 +//line lib/promscrape/targetstatus.qtpl:60 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:63 +//line lib/promscrape/targetstatus.qtpl:62 streamtargetsTabs(qw422016, tsr, filter, "scrapeTargets") -//line lib/promscrape/targetstatus.qtpl:63 +//line lib/promscrape/targetstatus.qtpl:62 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 } -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 StreamTargetsResponseHTML(qw422016, tsr, filter) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 } -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 func TargetsResponseHTML(tsr *targetsStatusResult, filter *requestFilter) string { -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 WriteTargetsResponseHTML(qb422016, tsr, filter) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 return qs422016 -//line lib/promscrape/targetstatus.qtpl:69 +//line lib/promscrape/targetstatus.qtpl:68 } -//line lib/promscrape/targetstatus.qtpl:71 +//line lib/promscrape/targetstatus.qtpl:70 func StreamServiceDiscoveryResponse(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:71 +//line lib/promscrape/targetstatus.qtpl:70 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:75 +//line lib/promscrape/targetstatus.qtpl:74 htmlcomponents.StreamCommonHeader(qw422016) -//line lib/promscrape/targetstatus.qtpl:75 +//line lib/promscrape/targetstatus.qtpl:74 qw422016.N().S(`Discovered Targets`) -//line lib/promscrape/targetstatus.qtpl:79 +//line lib/promscrape/targetstatus.qtpl:78 htmlcomponents.StreamNavbar(qw422016) -//line lib/promscrape/targetstatus.qtpl:79 +//line lib/promscrape/targetstatus.qtpl:78 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:81 +//line lib/promscrape/targetstatus.qtpl:80 if tsr.err != nil { -//line lib/promscrape/targetstatus.qtpl:82 +//line lib/promscrape/targetstatus.qtpl:81 htmlcomponents.StreamErrorNotification(qw422016, tsr.err) -//line lib/promscrape/targetstatus.qtpl:83 +//line lib/promscrape/targetstatus.qtpl:82 } -//line lib/promscrape/targetstatus.qtpl:83 +//line lib/promscrape/targetstatus.qtpl:82 qw422016.N().S(`

Discovered Targets


`) -//line lib/promscrape/targetstatus.qtpl:88 +//line lib/promscrape/targetstatus.qtpl:87 streamfiltersForm(qw422016, filter) -//line lib/promscrape/targetstatus.qtpl:88 +//line lib/promscrape/targetstatus.qtpl:87 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:90 +//line lib/promscrape/targetstatus.qtpl:89 streamtargetsTabs(qw422016, tsr, filter, "discoveredTargets") -//line lib/promscrape/targetstatus.qtpl:90 +//line lib/promscrape/targetstatus.qtpl:89 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 } -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 func WriteServiceDiscoveryResponse(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 StreamServiceDiscoveryResponse(qw422016, tsr, filter) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 } -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 func ServiceDiscoveryResponse(tsr *targetsStatusResult, filter *requestFilter) string { -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 WriteServiceDiscoveryResponse(qb422016, tsr, filter) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 return qs422016 -//line lib/promscrape/targetstatus.qtpl:96 +//line lib/promscrape/targetstatus.qtpl:95 } -//line lib/promscrape/targetstatus.qtpl:98 +//line lib/promscrape/targetstatus.qtpl:97 func streamfiltersForm(qw422016 *qt422016.Writer, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:98 +//line lib/promscrape/targetstatus.qtpl:97 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 } -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 func writefiltersForm(qq422016 qtio422016.Writer, filter *requestFilter) { -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 streamfiltersForm(qw422016, filter) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 } -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 func filtersForm(filter *requestFilter) string { -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 writefiltersForm(qb422016, filter) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 return qs422016 -//line lib/promscrape/targetstatus.qtpl:150 +//line lib/promscrape/targetstatus.qtpl:149 } -//line lib/promscrape/targetstatus.qtpl:152 +//line lib/promscrape/targetstatus.qtpl:151 func streamtargetsTabs(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter, activeTab string) { -//line lib/promscrape/targetstatus.qtpl:152 +//line lib/promscrape/targetstatus.qtpl:151 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:169 +//line lib/promscrape/targetstatus.qtpl:168 switch activeTab { -//line lib/promscrape/targetstatus.qtpl:170 +//line lib/promscrape/targetstatus.qtpl:169 case "scrapeTargets": -//line lib/promscrape/targetstatus.qtpl:171 +//line lib/promscrape/targetstatus.qtpl:170 streamscrapeTargets(qw422016, tsr) -//line lib/promscrape/targetstatus.qtpl:172 +//line lib/promscrape/targetstatus.qtpl:171 case "discoveredTargets": -//line lib/promscrape/targetstatus.qtpl:173 +//line lib/promscrape/targetstatus.qtpl:172 streamdiscoveredTargets(qw422016, tsr) -//line lib/promscrape/targetstatus.qtpl:174 +//line lib/promscrape/targetstatus.qtpl:173 } -//line lib/promscrape/targetstatus.qtpl:174 +//line lib/promscrape/targetstatus.qtpl:173 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 } -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 func writetargetsTabs(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter, activeTab string) { -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 streamtargetsTabs(qw422016, tsr, filter, activeTab) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 } -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 func targetsTabs(tsr *targetsStatusResult, filter *requestFilter, activeTab string) string { -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 writetargetsTabs(qb422016, tsr, filter, activeTab) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 return qs422016 -//line lib/promscrape/targetstatus.qtpl:177 +//line lib/promscrape/targetstatus.qtpl:176 } -//line lib/promscrape/targetstatus.qtpl:179 +//line lib/promscrape/targetstatus.qtpl:178 func streamscrapeTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) { -//line lib/promscrape/targetstatus.qtpl:179 +//line lib/promscrape/targetstatus.qtpl:178 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:182 +//line lib/promscrape/targetstatus.qtpl:181 for i, jts := range tsr.jobTargetsStatuses { -//line lib/promscrape/targetstatus.qtpl:183 +//line lib/promscrape/targetstatus.qtpl:182 streamscrapeJobTargets(qw422016, i, jts, tsr.hasOriginalLabels) -//line lib/promscrape/targetstatus.qtpl:184 +//line lib/promscrape/targetstatus.qtpl:183 } -//line lib/promscrape/targetstatus.qtpl:185 +//line lib/promscrape/targetstatus.qtpl:184 for i, jobName := range tsr.emptyJobs { -//line lib/promscrape/targetstatus.qtpl:187 +//line lib/promscrape/targetstatus.qtpl:186 num := i + len(tsr.jobTargetsStatuses) jts := &jobTargetsStatuses{ jobName: jobName, } -//line lib/promscrape/targetstatus.qtpl:192 +//line lib/promscrape/targetstatus.qtpl:191 streamscrapeJobTargets(qw422016, num, jts, tsr.hasOriginalLabels) -//line lib/promscrape/targetstatus.qtpl:193 +//line lib/promscrape/targetstatus.qtpl:192 } -//line lib/promscrape/targetstatus.qtpl:193 +//line lib/promscrape/targetstatus.qtpl:192 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 } -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 func writescrapeTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) { -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 streamscrapeTargets(qw422016, tsr) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 } -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 func scrapeTargets(tsr *targetsStatusResult) string { -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 writescrapeTargets(qb422016, tsr) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 return qs422016 -//line lib/promscrape/targetstatus.qtpl:196 +//line lib/promscrape/targetstatus.qtpl:195 } -//line lib/promscrape/targetstatus.qtpl:198 +//line lib/promscrape/targetstatus.qtpl:197 func streamscrapeJobTargets(qw422016 *qt422016.Writer, num int, jts *jobTargetsStatuses, hasOriginalLabels bool) { -//line lib/promscrape/targetstatus.qtpl:198 +//line lib/promscrape/targetstatus.qtpl:197 qw422016.N().S(`

`) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.E().S(jts.jobName) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().S(`(`) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().D(jts.upCount) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().S(`/`) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().D(jts.targetsTotal) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:202 +//line lib/promscrape/targetstatus.qtpl:201 qw422016.N().S(`up)`) -//line lib/promscrape/targetstatus.qtpl:203 +//line lib/promscrape/targetstatus.qtpl:202 streamshowHideScrapeJobButtons(qw422016, num) -//line lib/promscrape/targetstatus.qtpl:203 +//line lib/promscrape/targetstatus.qtpl:202 qw422016.N().S(`

`) -//line lib/promscrape/targetstatus.qtpl:212 +//line lib/promscrape/targetstatus.qtpl:211 if hasOriginalLabels { -//line lib/promscrape/targetstatus.qtpl:212 +//line lib/promscrape/targetstatus.qtpl:211 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:214 +//line lib/promscrape/targetstatus.qtpl:213 } -//line lib/promscrape/targetstatus.qtpl:214 +//line lib/promscrape/targetstatus.qtpl:213 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:224 +//line lib/promscrape/targetstatus.qtpl:223 for _, ts := range jts.targetsStatus { -//line lib/promscrape/targetstatus.qtpl:226 +//line lib/promscrape/targetstatus.qtpl:225 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) - lastScrapeDuration := ts.getDurationFromLastScrape() -//line lib/promscrape/targetstatus.qtpl:232 +//line lib/promscrape/targetstatus.qtpl:230 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:264 +//line lib/promscrape/targetstatus.qtpl:262 if hasOriginalLabels { -//line lib/promscrape/targetstatus.qtpl:264 +//line lib/promscrape/targetstatus.qtpl:262 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:269 +//line lib/promscrape/targetstatus.qtpl:267 } -//line lib/promscrape/targetstatus.qtpl:269 +//line lib/promscrape/targetstatus.qtpl:267 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:282 +//line lib/promscrape/targetstatus.qtpl:275 } -//line lib/promscrape/targetstatus.qtpl:282 +//line lib/promscrape/targetstatus.qtpl:275 qw422016.N().S(`
EndpointStateLabelsDebug relabelingScrapesErrorsLast ScrapeDurationSamplesLast error
`) -//line lib/promscrape/targetstatus.qtpl:235 +//line lib/promscrape/targetstatus.qtpl:233 qw422016.E().S(endpoint) -//line lib/promscrape/targetstatus.qtpl:235 +//line lib/promscrape/targetstatus.qtpl:233 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:236 +//line lib/promscrape/targetstatus.qtpl:234 if hasOriginalLabels { -//line lib/promscrape/targetstatus.qtpl:237 +//line lib/promscrape/targetstatus.qtpl:235 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:237 +//line lib/promscrape/targetstatus.qtpl:235 qw422016.N().S(`(response)`) -//line lib/promscrape/targetstatus.qtpl:240 +//line lib/promscrape/targetstatus.qtpl:238 } -//line lib/promscrape/targetstatus.qtpl:240 +//line lib/promscrape/targetstatus.qtpl:238 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:243 +//line lib/promscrape/targetstatus.qtpl:241 if ts.up { -//line lib/promscrape/targetstatus.qtpl:243 +//line lib/promscrape/targetstatus.qtpl:241 qw422016.N().S(`UP`) -//line lib/promscrape/targetstatus.qtpl:245 +//line lib/promscrape/targetstatus.qtpl:243 } else { -//line lib/promscrape/targetstatus.qtpl:245 +//line lib/promscrape/targetstatus.qtpl:243 qw422016.N().S(`DOWN`) -//line lib/promscrape/targetstatus.qtpl:247 +//line lib/promscrape/targetstatus.qtpl:245 } -//line lib/promscrape/targetstatus.qtpl:247 +//line lib/promscrape/targetstatus.qtpl:245 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:256 +//line lib/promscrape/targetstatus.qtpl:254 streamformatLabels(qw422016, ts.sw.Config.Labels) -//line lib/promscrape/targetstatus.qtpl:256 +//line lib/promscrape/targetstatus.qtpl:254 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:258 +//line lib/promscrape/targetstatus.qtpl:256 if hasOriginalLabels { -//line lib/promscrape/targetstatus.qtpl:258 +//line lib/promscrape/targetstatus.qtpl:256 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:262 +//line lib/promscrape/targetstatus.qtpl:260 } -//line lib/promscrape/targetstatus.qtpl:262 +//line lib/promscrape/targetstatus.qtpl:260 qw422016.N().S(`target`) -//line lib/promscrape/targetstatus.qtpl:266 +//line lib/promscrape/targetstatus.qtpl:264 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:266 +//line lib/promscrape/targetstatus.qtpl:264 qw422016.N().S(`metrics`) -//line lib/promscrape/targetstatus.qtpl:270 +//line lib/promscrape/targetstatus.qtpl:268 qw422016.N().D(ts.scrapesTotal) -//line lib/promscrape/targetstatus.qtpl:270 +//line lib/promscrape/targetstatus.qtpl:268 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:271 +//line lib/promscrape/targetstatus.qtpl:269 qw422016.N().D(ts.scrapesFailed) +//line lib/promscrape/targetstatus.qtpl:269 + qw422016.N().S(``) +//line lib/promscrape/targetstatus.qtpl:270 + qw422016.E().S(ts.getDurationFromLastScrape()) +//line lib/promscrape/targetstatus.qtpl:270 + qw422016.N().S(``) //line lib/promscrape/targetstatus.qtpl:271 + qw422016.N().D(int(ts.scrapeDuration)) +//line lib/promscrape/targetstatus.qtpl:271 + qw422016.N().S(`ms`) +//line lib/promscrape/targetstatus.qtpl:272 + qw422016.N().D(ts.samplesScraped) +//line lib/promscrape/targetstatus.qtpl:272 qw422016.N().S(``) //line lib/promscrape/targetstatus.qtpl:273 - if lastScrapeDuration < 365*24*time.Hour { -//line lib/promscrape/targetstatus.qtpl:274 - qw422016.N().D(int(lastScrapeDuration.Milliseconds())) -//line lib/promscrape/targetstatus.qtpl:274 - qw422016.N().S(`ms ago`) -//line lib/promscrape/targetstatus.qtpl:275 - } else { -//line lib/promscrape/targetstatus.qtpl:275 - qw422016.N().S(`none`) -//line lib/promscrape/targetstatus.qtpl:277 - } -//line lib/promscrape/targetstatus.qtpl:277 - qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:278 - qw422016.N().D(int(ts.scrapeDuration)) -//line lib/promscrape/targetstatus.qtpl:278 - qw422016.N().S(`ms`) -//line lib/promscrape/targetstatus.qtpl:279 - qw422016.N().D(ts.samplesScraped) -//line lib/promscrape/targetstatus.qtpl:279 - qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:280 if ts.err != nil { -//line lib/promscrape/targetstatus.qtpl:280 +//line lib/promscrape/targetstatus.qtpl:273 qw422016.E().S(ts.err.Error()) -//line lib/promscrape/targetstatus.qtpl:280 +//line lib/promscrape/targetstatus.qtpl:273 } -//line lib/promscrape/targetstatus.qtpl:280 +//line lib/promscrape/targetstatus.qtpl:273 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 } -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 func writescrapeJobTargets(qq422016 qtio422016.Writer, num int, jts *jobTargetsStatuses, hasOriginalLabels bool) { -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 streamscrapeJobTargets(qw422016, num, jts, hasOriginalLabels) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 } -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 func scrapeJobTargets(num int, jts *jobTargetsStatuses, hasOriginalLabels bool) string { -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 writescrapeJobTargets(qb422016, num, jts, hasOriginalLabels) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 return qs422016 -//line lib/promscrape/targetstatus.qtpl:288 +//line lib/promscrape/targetstatus.qtpl:281 } -//line lib/promscrape/targetstatus.qtpl:290 +//line lib/promscrape/targetstatus.qtpl:283 func streamdiscoveredTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) { -//line lib/promscrape/targetstatus.qtpl:291 +//line lib/promscrape/targetstatus.qtpl:284 if !tsr.hasOriginalLabels { -//line lib/promscrape/targetstatus.qtpl:291 +//line lib/promscrape/targetstatus.qtpl:284 qw422016.N().S(`Discovered targets are unavailable when -promscrape.dropOriginalLabels command-line flag is set`) -//line lib/promscrape/targetstatus.qtpl:293 +//line lib/promscrape/targetstatus.qtpl:286 return -//line lib/promscrape/targetstatus.qtpl:294 +//line lib/promscrape/targetstatus.qtpl:287 } -//line lib/promscrape/targetstatus.qtpl:296 +//line lib/promscrape/targetstatus.qtpl:289 tljs := tsr.getTargetLabelsByJob() -//line lib/promscrape/targetstatus.qtpl:296 +//line lib/promscrape/targetstatus.qtpl:289 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:299 +//line lib/promscrape/targetstatus.qtpl:292 for i, tlj := range tljs { -//line lib/promscrape/targetstatus.qtpl:300 +//line lib/promscrape/targetstatus.qtpl:293 streamdiscoveredJobTargets(qw422016, i, tlj) -//line lib/promscrape/targetstatus.qtpl:301 +//line lib/promscrape/targetstatus.qtpl:294 } -//line lib/promscrape/targetstatus.qtpl:301 +//line lib/promscrape/targetstatus.qtpl:294 qw422016.N().S(`
`) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 } -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 func writediscoveredTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) { -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 streamdiscoveredTargets(qw422016, tsr) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 } -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 func discoveredTargets(tsr *targetsStatusResult) string { -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 writediscoveredTargets(qb422016, tsr) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 return qs422016 -//line lib/promscrape/targetstatus.qtpl:304 +//line lib/promscrape/targetstatus.qtpl:297 } -//line lib/promscrape/targetstatus.qtpl:306 +//line lib/promscrape/targetstatus.qtpl:299 func streamdiscoveredJobTargets(qw422016 *qt422016.Writer, num int, tlj *targetLabelsByJob) { -//line lib/promscrape/targetstatus.qtpl:306 +//line lib/promscrape/targetstatus.qtpl:299 qw422016.N().S(`

`) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.E().S(tlj.jobName) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().S(`(`) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().D(tlj.activeTargets) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().S(`/`) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().D(tlj.activeTargets + tlj.droppedTargets) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:308 +//line lib/promscrape/targetstatus.qtpl:301 qw422016.N().S(`active)`) -//line lib/promscrape/targetstatus.qtpl:309 +//line lib/promscrape/targetstatus.qtpl:302 streamshowHideScrapeJobButtons(qw422016, num) -//line lib/promscrape/targetstatus.qtpl:309 +//line lib/promscrape/targetstatus.qtpl:302 qw422016.N().S(`

`) -//line lib/promscrape/targetstatus.qtpl:322 +//line lib/promscrape/targetstatus.qtpl:315 for _, t := range tlj.targets { -//line lib/promscrape/targetstatus.qtpl:322 +//line lib/promscrape/targetstatus.qtpl:315 qw422016.N().S(` 0 { -//line lib/promscrape/targetstatus.qtpl:326 +//line lib/promscrape/targetstatus.qtpl:319 qw422016.N().S(`class="alert alert-danger"`) -//line lib/promscrape/targetstatus.qtpl:328 +//line lib/promscrape/targetstatus.qtpl:321 } else { -//line lib/promscrape/targetstatus.qtpl:328 +//line lib/promscrape/targetstatus.qtpl:321 qw422016.N().S(`class="alert alert-warning"`) -//line lib/promscrape/targetstatus.qtpl:330 +//line lib/promscrape/targetstatus.qtpl:323 } -//line lib/promscrape/targetstatus.qtpl:331 +//line lib/promscrape/targetstatus.qtpl:324 } -//line lib/promscrape/targetstatus.qtpl:331 +//line lib/promscrape/targetstatus.qtpl:324 qw422016.N().S(`>`) -//line lib/promscrape/targetstatus.qtpl:353 +//line lib/promscrape/targetstatus.qtpl:346 } -//line lib/promscrape/targetstatus.qtpl:353 +//line lib/promscrape/targetstatus.qtpl:346 qw422016.N().S(`
StatusDiscovered LabelsTarget LabelsDebug relabeling
`) -//line lib/promscrape/targetstatus.qtpl:334 +//line lib/promscrape/targetstatus.qtpl:327 if t.up { -//line lib/promscrape/targetstatus.qtpl:334 +//line lib/promscrape/targetstatus.qtpl:327 qw422016.N().S(`UP`) -//line lib/promscrape/targetstatus.qtpl:336 +//line lib/promscrape/targetstatus.qtpl:329 } else if t.labels.Len() > 0 { -//line lib/promscrape/targetstatus.qtpl:336 +//line lib/promscrape/targetstatus.qtpl:329 qw422016.N().S(`DOWN`) -//line lib/promscrape/targetstatus.qtpl:338 +//line lib/promscrape/targetstatus.qtpl:331 } else { -//line lib/promscrape/targetstatus.qtpl:338 +//line lib/promscrape/targetstatus.qtpl:331 qw422016.N().S(`DROPPED (`) -//line lib/promscrape/targetstatus.qtpl:339 +//line lib/promscrape/targetstatus.qtpl:332 qw422016.E().S(string(t.dropReason)) -//line lib/promscrape/targetstatus.qtpl:339 +//line lib/promscrape/targetstatus.qtpl:332 qw422016.N().S(`)`) -//line lib/promscrape/targetstatus.qtpl:340 +//line lib/promscrape/targetstatus.qtpl:333 } -//line lib/promscrape/targetstatus.qtpl:340 +//line lib/promscrape/targetstatus.qtpl:333 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:343 +//line lib/promscrape/targetstatus.qtpl:336 streamformatLabels(qw422016, t.originalLabels) -//line lib/promscrape/targetstatus.qtpl:343 +//line lib/promscrape/targetstatus.qtpl:336 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:346 +//line lib/promscrape/targetstatus.qtpl:339 streamformatLabels(qw422016, t.labels) -//line lib/promscrape/targetstatus.qtpl:346 +//line lib/promscrape/targetstatus.qtpl:339 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:349 +//line lib/promscrape/targetstatus.qtpl:342 targetID := getLabelsID(t.originalLabels) -//line lib/promscrape/targetstatus.qtpl:349 +//line lib/promscrape/targetstatus.qtpl:342 qw422016.N().S(`debug
`) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 } -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 func writediscoveredJobTargets(qq422016 qtio422016.Writer, num int, tlj *targetLabelsByJob) { -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 streamdiscoveredJobTargets(qw422016, num, tlj) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 } -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 func discoveredJobTargets(num int, tlj *targetLabelsByJob) string { -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 writediscoveredJobTargets(qb422016, num, tlj) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 return qs422016 -//line lib/promscrape/targetstatus.qtpl:357 +//line lib/promscrape/targetstatus.qtpl:350 } -//line lib/promscrape/targetstatus.qtpl:359 +//line lib/promscrape/targetstatus.qtpl:352 func streamshowHideScrapeJobButtons(qw422016 *qt422016.Writer, num int) { -//line lib/promscrape/targetstatus.qtpl:359 +//line lib/promscrape/targetstatus.qtpl:352 qw422016.N().S(``) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 } -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 func writeshowHideScrapeJobButtons(qq422016 qtio422016.Writer, num int) { -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 streamshowHideScrapeJobButtons(qw422016, num) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 } -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 func showHideScrapeJobButtons(num int) string { -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 writeshowHideScrapeJobButtons(qb422016, num) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 return qs422016 -//line lib/promscrape/targetstatus.qtpl:368 +//line lib/promscrape/targetstatus.qtpl:361 } -//line lib/promscrape/targetstatus.qtpl:370 +//line lib/promscrape/targetstatus.qtpl:363 func streamqueryArgs(qw422016 *qt422016.Writer, filter *requestFilter, override map[string]string) { -//line lib/promscrape/targetstatus.qtpl:372 +//line lib/promscrape/targetstatus.qtpl:365 showOnlyUnhealthy := "false" if filter.showOnlyUnhealthy { showOnlyUnhealthy = "true" @@ -995,89 +983,89 @@ func streamqueryArgs(qw422016 *qt422016.Writer, filter *requestFilter, override qa[k] = []string{v} } -//line lib/promscrape/targetstatus.qtpl:389 +//line lib/promscrape/targetstatus.qtpl:382 qw422016.E().S(qa.Encode()) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 } -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 func writequeryArgs(qq422016 qtio422016.Writer, filter *requestFilter, override map[string]string) { -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 streamqueryArgs(qw422016, filter, override) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 } -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 func queryArgs(filter *requestFilter, override map[string]string) string { -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 writequeryArgs(qb422016, filter, override) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 return qs422016 -//line lib/promscrape/targetstatus.qtpl:390 +//line lib/promscrape/targetstatus.qtpl:383 } -//line lib/promscrape/targetstatus.qtpl:392 +//line lib/promscrape/targetstatus.qtpl:385 func streamformatLabels(qw422016 *qt422016.Writer, labels *promutils.Labels) { -//line lib/promscrape/targetstatus.qtpl:393 +//line lib/promscrape/targetstatus.qtpl:386 labelsList := labels.GetLabels() -//line lib/promscrape/targetstatus.qtpl:393 +//line lib/promscrape/targetstatus.qtpl:386 qw422016.N().S(`{`) -//line lib/promscrape/targetstatus.qtpl:395 +//line lib/promscrape/targetstatus.qtpl:388 for i, label := range labelsList { -//line lib/promscrape/targetstatus.qtpl:396 +//line lib/promscrape/targetstatus.qtpl:389 qw422016.E().S(label.Name) -//line lib/promscrape/targetstatus.qtpl:396 +//line lib/promscrape/targetstatus.qtpl:389 qw422016.N().S(`=`) -//line lib/promscrape/targetstatus.qtpl:396 +//line lib/promscrape/targetstatus.qtpl:389 qw422016.E().Q(label.Value) -//line lib/promscrape/targetstatus.qtpl:397 +//line lib/promscrape/targetstatus.qtpl:390 if i+1 < len(labelsList) { -//line lib/promscrape/targetstatus.qtpl:397 +//line lib/promscrape/targetstatus.qtpl:390 qw422016.N().S(`,`) -//line lib/promscrape/targetstatus.qtpl:397 +//line lib/promscrape/targetstatus.qtpl:390 qw422016.N().S(` `) -//line lib/promscrape/targetstatus.qtpl:397 +//line lib/promscrape/targetstatus.qtpl:390 } -//line lib/promscrape/targetstatus.qtpl:398 +//line lib/promscrape/targetstatus.qtpl:391 } -//line lib/promscrape/targetstatus.qtpl:398 +//line lib/promscrape/targetstatus.qtpl:391 qw422016.N().S(`}`) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 } -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 func writeformatLabels(qq422016 qtio422016.Writer, labels *promutils.Labels) { -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 qw422016 := qt422016.AcquireWriter(qq422016) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 streamformatLabels(qw422016, labels) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 qt422016.ReleaseWriter(qw422016) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 } -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 func formatLabels(labels *promutils.Labels) string { -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 qb422016 := qt422016.AcquireByteBuffer() -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 writeformatLabels(qb422016, labels) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 qs422016 := string(qb422016.B) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 qt422016.ReleaseByteBuffer(qb422016) -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 return qs422016 -//line lib/promscrape/targetstatus.qtpl:400 +//line lib/promscrape/targetstatus.qtpl:393 }