diff --git a/lib/promscrape/targets_response.qtpl b/lib/promscrape/targets_response.qtpl
index f1fa91f9b5..fabd7b1037 100644
--- a/lib/promscrape/targets_response.qtpl
+++ b/lib/promscrape/targets_response.qtpl
@@ -1,12 +1,12 @@
{% import "github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal"
%}
-{% stripspace %}
+{% collapsespace %}
{% func TargetsResponsePlain (jts []jobTargetsStatuses, showOriginLabels bool) -%}
{% for _, js := range jts %}
-job={%q= js.job %}{% space %} ({%d js.upCount %}/{%d js.targetsTotal %} {% space %} up)
+job={%q= js.job %} ({%d js.upCount %}/{%d js.targetsTotal %} up)
{% newline %}
{% for _, ts := range js.targetsStatus %}
{% code
@@ -14,12 +14,12 @@ job={%q= js.job %}{% space %} ({%d js.upCount %}/{%d js.targetsTotal %} {% space
ol := promLabelsString(ts.originalLabels)
%}
{%s= "\t" %}state={% if ts.up %}up{% else %}down{% endif %},
- {% space %} endpoint={%s= ts.endpoint %},
- {% space %} labels={%s= labels %}
- {% if showOriginLabels %},{% space %} originalLabels={%s= ol %}{% endif %},
- {% space %} last_scrape={%f.3 ts.lastScrapeTime.Seconds() %}s {% space %} ago,
- {% space %} scrape_duration={%f.3 float64(ts.scrapeDuration.Seconds()) %}s,
- {% space %} error={%q= ts.error %}
+ endpoint={%s= ts.endpoint %},
+ labels={%s= labels %}
+ {% if showOriginLabels %}, originalLabels={%s= ol %}{% endif %},
+ last_scrape={%f.3 ts.lastScrapeTime.Seconds() %}s ago,
+ scrape_duration={%f.3 ts.scrapeDuration.Seconds() %}s,
+ error={%q= ts.error %}
{% newline %}
{% endfor %}
{% endfor %}
@@ -29,76 +29,68 @@ job={%q= js.job %}{% space %} ({%d js.upCount %}/{%d js.targetsTotal %} {% space
{% func TargetsResponseHTML(jts []jobTargetsStatuses, redirectPath string, onlyUnhealthy bool) %}
-
-
-
-
-
-
+
+
+
+
+
Scrape targets
+
+
+
Scrape targets
+
+
+
{% for _,js :=range jts %}
-
-
-
-
-
- Endpoint |
- State |
- Labels |
- Last Scrape |
- Scrape Duration |
- Error |
-
-
-
- {% for _, ts := range js.targetsStatus %}
- {% if onlyUnhealthy && ts.up %} {% continue %} {% endif %}
-
-
- {%s= ts.endpoint %}
- |
-
- {% if ts.up %}UP{% else %}DOWN{% endif %}
- |
-
- {%= formatLabel(ts.labels) %}
- |
- {%s ts.lastScrapeTime.String() %} {% space %} ago |
- {%s ts.scrapeDuration.String() %} |
- {%s= ts.error %} |
-
- {% endfor %}
-
-
-
+ {% if onlyUnhealthy && js.upCount == js.targetsTotal %}{% continue %}{% endif %}
+
+
+
+
+
+ Endpoint |
+ State |
+ Labels |
+ Last Scrape |
+ Scrape Duration |
+ Error |
+
+
+
+ {% for _, ts := range js.targetsStatus %}
+ {% if onlyUnhealthy && ts.up %}{% continue %}{% endif %}
+
+ {%s ts.endpoint %}
|
+ {% if ts.up %}UP{% else %}DOWN{% endif %} |
+
+ {%= formatLabel(ts.labels) %}
+ |
+ {%f.3 ts.lastScrapeTime.Seconds() %}s ago |
+ {%f.3 ts.scrapeDuration.Seconds() %}s |
+ {%s ts.error %} |
+
+ {% endfor %}
+
+
+
{% endfor %}
-
+
{% endfunc %}
{% func formatLabel(labels []prompbmarshal.Label) %}
{% for _, label := range labels %}
- {% space %} {%s label.Name %}={%q label.Value %} {% space %}
+ {%s label.Name %}={%q label.Value %} {% space %}
{% endfor %}
{% endfunc %}
-{% endstripspace %}
+
+{% endcollapsespace %}
diff --git a/lib/promscrape/targets_response.qtpl.go b/lib/promscrape/targets_response.qtpl.go
index b0472bddbf..0c9d9699a9 100644
--- a/lib/promscrape/targets_response.qtpl.go
+++ b/lib/promscrape/targets_response.qtpl.go
@@ -25,13 +25,11 @@ func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, jts []jobTargetsStatu
//line lib/promscrape/targets_response.qtpl:8
for _, js := range jts {
//line lib/promscrape/targets_response.qtpl:8
- qw422016.N().S(`job=`)
+ qw422016.N().S(` job=`)
//line lib/promscrape/targets_response.qtpl:9
qw422016.N().Q(js.job)
//line lib/promscrape/targets_response.qtpl:9
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:9
- qw422016.N().S(`(`)
+ qw422016.N().S(` (`)
//line lib/promscrape/targets_response.qtpl:9
qw422016.N().D(js.upCount)
//line lib/promscrape/targets_response.qtpl:9
@@ -39,18 +37,22 @@ func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, jts []jobTargetsStatu
//line lib/promscrape/targets_response.qtpl:9
qw422016.N().D(js.targetsTotal)
//line lib/promscrape/targets_response.qtpl:9
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:9
- qw422016.N().S(`up)`)
+ qw422016.N().S(` up) `)
//line lib/promscrape/targets_response.qtpl:10
qw422016.N().S(`
`)
+//line lib/promscrape/targets_response.qtpl:10
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:11
for _, ts := range js.targetsStatus {
+//line lib/promscrape/targets_response.qtpl:11
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:13
labels := promLabelsString(ts.labels)
ol := promLabelsString(ts.originalLabels)
+//line lib/promscrape/targets_response.qtpl:15
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:16
qw422016.N().S("\t")
//line lib/promscrape/targets_response.qtpl:16
@@ -66,71 +68,55 @@ func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, jts []jobTargetsStatu
//line lib/promscrape/targets_response.qtpl:16
}
//line lib/promscrape/targets_response.qtpl:16
- qw422016.N().S(`,`)
-//line lib/promscrape/targets_response.qtpl:17
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:17
- qw422016.N().S(`endpoint=`)
+ qw422016.N().S(`, endpoint=`)
//line lib/promscrape/targets_response.qtpl:17
qw422016.N().S(ts.endpoint)
//line lib/promscrape/targets_response.qtpl:17
- qw422016.N().S(`,`)
-//line lib/promscrape/targets_response.qtpl:18
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:18
- qw422016.N().S(`labels=`)
+ qw422016.N().S(`, labels=`)
//line lib/promscrape/targets_response.qtpl:18
qw422016.N().S(labels)
+//line lib/promscrape/targets_response.qtpl:18
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:19
if showOriginLabels {
//line lib/promscrape/targets_response.qtpl:19
- qw422016.N().S(`,`)
-//line lib/promscrape/targets_response.qtpl:19
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:19
- qw422016.N().S(`originalLabels=`)
+ qw422016.N().S(`, originalLabels=`)
//line lib/promscrape/targets_response.qtpl:19
qw422016.N().S(ol)
//line lib/promscrape/targets_response.qtpl:19
}
//line lib/promscrape/targets_response.qtpl:19
- qw422016.N().S(`,`)
-//line lib/promscrape/targets_response.qtpl:20
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:20
- qw422016.N().S(`last_scrape=`)
+ qw422016.N().S(`, last_scrape=`)
//line lib/promscrape/targets_response.qtpl:20
qw422016.N().FPrec(ts.lastScrapeTime.Seconds(), 3)
//line lib/promscrape/targets_response.qtpl:20
- qw422016.N().S(`s`)
-//line lib/promscrape/targets_response.qtpl:20
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:20
- qw422016.N().S(`ago,`)
+ qw422016.N().S(`s ago, scrape_duration=`)
//line lib/promscrape/targets_response.qtpl:21
- qw422016.N().S(` `)
+ qw422016.N().FPrec(ts.scrapeDuration.Seconds(), 3)
//line lib/promscrape/targets_response.qtpl:21
- qw422016.N().S(`scrape_duration=`)
-//line lib/promscrape/targets_response.qtpl:21
- qw422016.N().FPrec(float64(ts.scrapeDuration.Seconds()), 3)
-//line lib/promscrape/targets_response.qtpl:21
- qw422016.N().S(`s,`)
-//line lib/promscrape/targets_response.qtpl:22
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:22
- qw422016.N().S(`error=`)
+ qw422016.N().S(`s, error=`)
//line lib/promscrape/targets_response.qtpl:22
qw422016.N().Q(ts.error)
+//line lib/promscrape/targets_response.qtpl:22
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:23
qw422016.N().S(`
`)
+//line lib/promscrape/targets_response.qtpl:23
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:24
}
+//line lib/promscrape/targets_response.qtpl:24
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:25
}
+//line lib/promscrape/targets_response.qtpl:25
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:26
qw422016.N().S(`
`)
+//line lib/promscrape/targets_response.qtpl:26
+ qw422016.N().S(` `)
//line lib/promscrape/targets_response.qtpl:28
}
@@ -163,187 +149,225 @@ func TargetsResponsePlain(jts []jobTargetsStatuses, showOriginLabels bool) strin
//line lib/promscrape/targets_response.qtpl:30
func StreamTargetsResponseHTML(qw422016 *qt422016.Writer, jts []jobTargetsStatuses, redirectPath string, onlyUnhealthy bool) {
//line lib/promscrape/targets_response.qtpl:30
- qw422016.N().S(`
VictoriaMetrics DatabaseTargets
`)
+//line lib/promscrape/targets_response.qtpl:51
for _, js := range jts {
-//line lib/promscrape/targets_response.qtpl:57
- qw422016.N().S(`
Endpoint | State | Labels | Last Scrape | Scrape Duration | Error |
`)
-//line lib/promscrape/targets_response.qtpl:74
- for _, ts := range js.targetsStatus {
-//line lib/promscrape/targets_response.qtpl:75
- if onlyUnhealthy && ts.up {
-//line lib/promscrape/targets_response.qtpl:75
- continue
-//line lib/promscrape/targets_response.qtpl:75
- }
-//line lib/promscrape/targets_response.qtpl:75
- qw422016.N().S(``)
-//line lib/promscrape/targets_response.qtpl:78
- qw422016.N().S(ts.endpoint)
-//line lib/promscrape/targets_response.qtpl:78
- qw422016.N().S(`
| `)
-//line lib/promscrape/targets_response.qtpl:81
- if ts.up {
-//line lib/promscrape/targets_response.qtpl:81
- qw422016.N().S(`UP`)
-//line lib/promscrape/targets_response.qtpl:81
- } else {
-//line lib/promscrape/targets_response.qtpl:81
- qw422016.N().S(`DOWN`)
-//line lib/promscrape/targets_response.qtpl:81
- }
-//line lib/promscrape/targets_response.qtpl:81
- qw422016.N().S(` | `)
-//line lib/promscrape/targets_response.qtpl:84
- streamformatLabel(qw422016, ts.labels)
-//line lib/promscrape/targets_response.qtpl:84
- qw422016.N().S(` | `)
-//line lib/promscrape/targets_response.qtpl:86
- qw422016.E().S(ts.lastScrapeTime.String())
-//line lib/promscrape/targets_response.qtpl:86
- qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:86
- qw422016.N().S(`ago | `)
-//line lib/promscrape/targets_response.qtpl:87
- qw422016.E().S(ts.scrapeDuration.String())
-//line lib/promscrape/targets_response.qtpl:87
- qw422016.N().S(` | `)
-//line lib/promscrape/targets_response.qtpl:88
- qw422016.N().S(ts.error)
-//line lib/promscrape/targets_response.qtpl:88
- qw422016.N().S(` |
`)
-//line lib/promscrape/targets_response.qtpl:90
+//line lib/promscrape/targets_response.qtpl:51
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:52
+ if onlyUnhealthy && js.upCount == js.targetsTotal {
+//line lib/promscrape/targets_response.qtpl:52
+ continue
+//line lib/promscrape/targets_response.qtpl:52
}
-//line lib/promscrape/targets_response.qtpl:90
- qw422016.N().S(`
`)
-//line lib/promscrape/targets_response.qtpl:94
+//line lib/promscrape/targets_response.qtpl:52
+ qw422016.N().S(`
Endpoint | State | Labels | Last Scrape | Scrape Duration | Error |
`)
+//line lib/promscrape/targets_response.qtpl:69
+ for _, ts := range js.targetsStatus {
+//line lib/promscrape/targets_response.qtpl:69
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:70
+ if onlyUnhealthy && ts.up {
+//line lib/promscrape/targets_response.qtpl:70
+ continue
+//line lib/promscrape/targets_response.qtpl:70
+ }
+//line lib/promscrape/targets_response.qtpl:70
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:72
+ qw422016.E().S(ts.endpoint)
+//line lib/promscrape/targets_response.qtpl:72
+ qw422016.N().S(`
| `)
+//line lib/promscrape/targets_response.qtpl:73
+ if ts.up {
+//line lib/promscrape/targets_response.qtpl:73
+ qw422016.N().S(`UP`)
+//line lib/promscrape/targets_response.qtpl:73
+ } else {
+//line lib/promscrape/targets_response.qtpl:73
+ qw422016.N().S(`DOWN`)
+//line lib/promscrape/targets_response.qtpl:73
+ }
+//line lib/promscrape/targets_response.qtpl:73
+ qw422016.N().S(` | `)
+//line lib/promscrape/targets_response.qtpl:75
+ streamformatLabel(qw422016, ts.labels)
+//line lib/promscrape/targets_response.qtpl:75
+ qw422016.N().S(` | `)
+//line lib/promscrape/targets_response.qtpl:77
+ qw422016.N().FPrec(ts.lastScrapeTime.Seconds(), 3)
+//line lib/promscrape/targets_response.qtpl:77
+ qw422016.N().S(`s ago | `)
+//line lib/promscrape/targets_response.qtpl:78
+ qw422016.N().FPrec(ts.scrapeDuration.Seconds(), 3)
+//line lib/promscrape/targets_response.qtpl:78
+ qw422016.N().S(`s | `)
+//line lib/promscrape/targets_response.qtpl:79
+ qw422016.E().S(ts.error)
+//line lib/promscrape/targets_response.qtpl:79
+ qw422016.N().S(` |
`)
+//line lib/promscrape/targets_response.qtpl:81
+ }
+//line lib/promscrape/targets_response.qtpl:81
+ qw422016.N().S(`
`)
+//line lib/promscrape/targets_response.qtpl:85
}
-//line lib/promscrape/targets_response.qtpl:94
- qw422016.N().S(``)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:85
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:88
}
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, jts []jobTargetsStatuses, redirectPath string, onlyUnhealthy bool) {
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
qw422016 := qt422016.AcquireWriter(qq422016)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
StreamTargetsResponseHTML(qw422016, jts, redirectPath, onlyUnhealthy)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
qt422016.ReleaseWriter(qw422016)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
}
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
func TargetsResponseHTML(jts []jobTargetsStatuses, redirectPath string, onlyUnhealthy bool) string {
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
qb422016 := qt422016.AcquireByteBuffer()
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
WriteTargetsResponseHTML(qb422016, jts, redirectPath, onlyUnhealthy)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
qs422016 := string(qb422016.B)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
qt422016.ReleaseByteBuffer(qb422016)
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
return qs422016
-//line lib/promscrape/targets_response.qtpl:97
+//line lib/promscrape/targets_response.qtpl:88
}
-//line lib/promscrape/targets_response.qtpl:99
+//line lib/promscrape/targets_response.qtpl:90
func streamformatLabel(qw422016 *qt422016.Writer, labels []prompbmarshal.Label) {
-//line lib/promscrape/targets_response.qtpl:100
+//line lib/promscrape/targets_response.qtpl:90
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:91
for _, label := range labels {
-//line lib/promscrape/targets_response.qtpl:101
+//line lib/promscrape/targets_response.qtpl:91
qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:101
+//line lib/promscrape/targets_response.qtpl:92
qw422016.E().S(label.Name)
-//line lib/promscrape/targets_response.qtpl:101
+//line lib/promscrape/targets_response.qtpl:92
qw422016.N().S(`=`)
-//line lib/promscrape/targets_response.qtpl:101
+//line lib/promscrape/targets_response.qtpl:92
qw422016.E().Q(label.Value)
-//line lib/promscrape/targets_response.qtpl:101
+//line lib/promscrape/targets_response.qtpl:92
qw422016.N().S(` `)
-//line lib/promscrape/targets_response.qtpl:102
+//line lib/promscrape/targets_response.qtpl:92
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:92
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:93
}
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:93
+ qw422016.N().S(` `)
+//line lib/promscrape/targets_response.qtpl:94
}
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
func writeformatLabel(qq422016 qtio422016.Writer, labels []prompbmarshal.Label) {
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
qw422016 := qt422016.AcquireWriter(qq422016)
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
streamformatLabel(qw422016, labels)
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
qt422016.ReleaseWriter(qw422016)
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
}
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
func formatLabel(labels []prompbmarshal.Label) string {
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
qb422016 := qt422016.AcquireByteBuffer()
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
writeformatLabel(qb422016, labels)
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
qs422016 := string(qb422016.B)
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
qt422016.ReleaseByteBuffer(qb422016)
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
return qs422016
-//line lib/promscrape/targets_response.qtpl:103
+//line lib/promscrape/targets_response.qtpl:94
}