mirror of
https://github.com/VictoriaMetrics/VictoriaMetrics.git
synced 2024-12-15 08:23:34 +01:00
17552dba8b
* lib/promscrape: Enable filters for endpoint and labels * lib/promscrape: cleanup * lib/promscrape: update template * lib/promscrape: move logic filter logic to backend * lib/promscrape: updated placeholder * lib/promscrape: updated placeholder * lib/promscrape: use two different fields for filters, updated form, added error on parsing queries * lib/promscrape: rename functions * lib/promscrape: removed unused values * wip * wip * wip Co-authored-by: Aliaksandr Valialkin <valyala@victoriametrics.com>
634 lines
26 KiB
Go
634 lines
26 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 (
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/prompbmarshal"
|
|
"github.com/VictoriaMetrics/VictoriaMetrics/lib/promrelabel"
|
|
"net/url"
|
|
"time"
|
|
)
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:10
|
|
import (
|
|
qtio422016 "io"
|
|
|
|
qt422016 "github.com/valyala/quicktemplate"
|
|
)
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:10
|
|
var (
|
|
_ = qtio422016.Copy
|
|
_ = qt422016.AcquireByteBuffer
|
|
)
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:10
|
|
func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, jts []jobTargetsStatuses, emptyJobs []string, showOriginLabels, showOnlyUnhealthy bool, err error) {
|
|
//line lib/promscrape/targetstatus.qtpl:12
|
|
if err != nil {
|
|
//line lib/promscrape/targetstatus.qtpl:13
|
|
qw422016.N().S(err.Error())
|
|
//line lib/promscrape/targetstatus.qtpl:14
|
|
return
|
|
//line lib/promscrape/targetstatus.qtpl:15
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:17
|
|
for _, js := range jts {
|
|
//line lib/promscrape/targetstatus.qtpl:18
|
|
if showOnlyUnhealthy && js.upCount == js.targetsTotal {
|
|
//line lib/promscrape/targetstatus.qtpl:18
|
|
continue
|
|
//line lib/promscrape/targetstatus.qtpl:18
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:18
|
|
qw422016.N().S(`job=`)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().Q(js.job)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().S(`(`)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().D(js.upCount)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().S(`/`)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().D(js.targetsTotal)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:19
|
|
qw422016.N().S(`up)`)
|
|
//line lib/promscrape/targetstatus.qtpl:20
|
|
qw422016.N().S(`
|
|
`)
|
|
//line lib/promscrape/targetstatus.qtpl:21
|
|
for _, ts := range js.targetsStatus {
|
|
//line lib/promscrape/targetstatus.qtpl:22
|
|
if showOnlyUnhealthy && ts.up {
|
|
//line lib/promscrape/targetstatus.qtpl:22
|
|
continue
|
|
//line lib/promscrape/targetstatus.qtpl:22
|
|
}
|
|
//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(promLabelsString(promrelabel.FinalizeLabels(nil, ts.sw.Config.Labels)))
|
|
//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 showOriginLabels {
|
|
//line lib/promscrape/targetstatus.qtpl:27
|
|
qw422016.N().S(`originalLabels=`)
|
|
//line lib/promscrape/targetstatus.qtpl:27
|
|
qw422016.N().S(promLabelsString(ts.sw.Config.OriginalLabels))
|
|
//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().FPrec(ts.getDurationFromLastScrape().Seconds(), 3)
|
|
//line lib/promscrape/targetstatus.qtpl:30
|
|
qw422016.N().S(`s ago,`)
|
|
//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(`samples_scraped=`)
|
|
//line lib/promscrape/targetstatus.qtpl:32
|
|
qw422016.N().D(ts.samplesScraped)
|
|
//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(`error=`)
|
|
//line lib/promscrape/targetstatus.qtpl:33
|
|
if ts.err != nil {
|
|
//line lib/promscrape/targetstatus.qtpl:33
|
|
qw422016.N().S(ts.err.Error())
|
|
//line lib/promscrape/targetstatus.qtpl:33
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:34
|
|
qw422016.N().S(`
|
|
`)
|
|
//line lib/promscrape/targetstatus.qtpl:35
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:36
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:38
|
|
for _, jobName := range emptyJobs {
|
|
//line lib/promscrape/targetstatus.qtpl:38
|
|
qw422016.N().S(`job=`)
|
|
//line lib/promscrape/targetstatus.qtpl:39
|
|
qw422016.N().Q(jobName)
|
|
//line lib/promscrape/targetstatus.qtpl:39
|
|
qw422016.N().S(`(0/0 up)`)
|
|
//line lib/promscrape/targetstatus.qtpl:40
|
|
qw422016.N().S(`
|
|
`)
|
|
//line lib/promscrape/targetstatus.qtpl:41
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
func WriteTargetsResponsePlain(qq422016 qtio422016.Writer, jts []jobTargetsStatuses, emptyJobs []string, showOriginLabels, showOnlyUnhealthy bool, err error) {
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
StreamTargetsResponsePlain(qw422016, jts, emptyJobs, showOriginLabels, showOnlyUnhealthy, err)
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
func TargetsResponsePlain(jts []jobTargetsStatuses, emptyJobs []string, showOriginLabels, showOnlyUnhealthy bool, err error) string {
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
WriteTargetsResponsePlain(qb422016, jts, emptyJobs, showOriginLabels, showOnlyUnhealthy, err)
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:43
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:45
|
|
func StreamTargetsResponseHTML(qw422016 *qt422016.Writer, jts []jobTargetsStatuses, emptyJobs []string, showOnlyUnhealthy bool, endpointSearch, labelSearch string, err error) {
|
|
//line lib/promscrape/targetstatus.qtpl:45
|
|
qw422016.N().S(`<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous"><title>Scrape targets</title><script>function collapse_all() {for (var i = 0; i <`)
|
|
//line lib/promscrape/targetstatus.qtpl:55
|
|
qw422016.N().D(len(jts))
|
|
//line lib/promscrape/targetstatus.qtpl:55
|
|
qw422016.N().S(`; i++) {let el = document.getElementById("table-" + i);if (!el) {continue;}el.style.display = 'none';}}function expand_all() {for (var i = 0; i <`)
|
|
//line lib/promscrape/targetstatus.qtpl:64
|
|
qw422016.N().D(len(jts))
|
|
//line lib/promscrape/targetstatus.qtpl:64
|
|
qw422016.N().S(`; i++) {let el = document.getElementById("table-" + i);if (!el) {continue;}el.style.display = 'block';}}</script></head><body class="py-3"><div class="container-fluid">`)
|
|
//line lib/promscrape/targetstatus.qtpl:76
|
|
if err != nil {
|
|
//line lib/promscrape/targetstatus.qtpl:77
|
|
streamerrorNotification(qw422016, err)
|
|
//line lib/promscrape/targetstatus.qtpl:78
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:78
|
|
qw422016.N().S(`<div class="row"><main class="col-12"><h1>Scrape targets</h1><hr /><div class="row g-3 align-items-center mb-3"><div class="col-auto"><button type="button" class="btn`)
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
if !showOnlyUnhealthy {
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
qw422016.N().S(`btn-primary`)
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
qw422016.N().S(`btn-secondary`)
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
qw422016.N().S(`" onclick="location.href='?`)
|
|
//line lib/promscrape/targetstatus.qtpl:85
|
|
streamqueryArgs(qw422016, map[string]string{
|
|
"show_only_unhealthy": "false",
|
|
"endpoint_search": endpointSearch,
|
|
"label_search": labelSearch,
|
|
})
|
|
//line lib/promscrape/targetstatus.qtpl:89
|
|
qw422016.N().S(`'">All</button></div><div class="col-auto"><button type="button" class="btn`)
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
if showOnlyUnhealthy {
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
qw422016.N().S(`btn-primary`)
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
qw422016.N().S(`btn-secondary`)
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
qw422016.N().S(`" onclick="location.href='?`)
|
|
//line lib/promscrape/targetstatus.qtpl:94
|
|
streamqueryArgs(qw422016, map[string]string{
|
|
"show_only_unhealthy": "true",
|
|
"endpoint_search": endpointSearch,
|
|
"label_search": labelSearch,
|
|
})
|
|
//line lib/promscrape/targetstatus.qtpl:98
|
|
qw422016.N().S(`'">Unhealthy</button></div><div class="col-auto"><button type="button" class="btn btn-primary" onclick="collapse_all()">Collapse all</button></div><div class="col-auto"><button type="button" class="btn btn-secondary" onclick="expand_all()">Expand all</button></div><div class="col-auto">`)
|
|
//line lib/promscrape/targetstatus.qtpl:113
|
|
if endpointSearch == "" && labelSearch == "" {
|
|
//line lib/promscrape/targetstatus.qtpl:113
|
|
qw422016.N().S(`<button type="button" class="btn btn-primary" onclick="document.getElementById('filters').style.display='block'">Filter targets</button>`)
|
|
//line lib/promscrape/targetstatus.qtpl:117
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:117
|
|
qw422016.N().S(`<button type="button" class="btn btn-primary" onclick="location.href='?'">Clear target filters</button>`)
|
|
//line lib/promscrape/targetstatus.qtpl:121
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:121
|
|
qw422016.N().S(`</div></div><div id="filters"`)
|
|
//line lib/promscrape/targetstatus.qtpl:124
|
|
if endpointSearch == "" && labelSearch == "" {
|
|
//line lib/promscrape/targetstatus.qtpl:124
|
|
qw422016.N().S(`style="display:none"`)
|
|
//line lib/promscrape/targetstatus.qtpl:124
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:124
|
|
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:130
|
|
qw422016.E().S(endpointSearch)
|
|
//line lib/promscrape/targetstatus.qtpl:130
|
|
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:137
|
|
qw422016.E().S(labelSearch)
|
|
//line lib/promscrape/targetstatus.qtpl:137
|
|
qw422016.N().S(`"/></div></div><input type="hidden" name="show_only_unhealthy" value="`)
|
|
//line lib/promscrape/targetstatus.qtpl:140
|
|
qw422016.E().V(showOnlyUnhealthy)
|
|
//line lib/promscrape/targetstatus.qtpl:140
|
|
qw422016.N().S(`"/><button type="submit" class="btn btn-success mb-3">Submit</button></form></div><hr /><div class="row"><div class="col-12">`)
|
|
//line lib/promscrape/targetstatus.qtpl:147
|
|
for i, js := range jts {
|
|
//line lib/promscrape/targetstatus.qtpl:148
|
|
if showOnlyUnhealthy && js.upCount == js.targetsTotal {
|
|
//line lib/promscrape/targetstatus.qtpl:148
|
|
continue
|
|
//line lib/promscrape/targetstatus.qtpl:148
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:148
|
|
qw422016.N().S(`<div class="row mb-4"><div class="col-12"><h4>`)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.E().S(js.job)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().S(`(`)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().D(js.upCount)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().S(`/`)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().D(js.targetsTotal)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:152
|
|
qw422016.N().S(`up)</h4><div class="row mb-2"><div class="col-12"><button type="button" class="btn btn-primary me-1"onclick="document.getElementById('table-`)
|
|
//line lib/promscrape/targetstatus.qtpl:157
|
|
qw422016.N().D(i)
|
|
//line lib/promscrape/targetstatus.qtpl:157
|
|
qw422016.N().S(`').style.display='none'">collapse</button><button type="button" class="btn btn-secondary me-1"onclick="document.getElementById('table-`)
|
|
//line lib/promscrape/targetstatus.qtpl:160
|
|
qw422016.N().D(i)
|
|
//line lib/promscrape/targetstatus.qtpl:160
|
|
qw422016.N().S(`').style.display='block'">expand</button></div></div><div id="table-`)
|
|
//line lib/promscrape/targetstatus.qtpl:164
|
|
qw422016.N().D(i)
|
|
//line lib/promscrape/targetstatus.qtpl:164
|
|
qw422016.N().S(`" class="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="scrape target labels">Labels</th><th scope="col" title="total scrapes">Scrapes</th><th scope="col" title="total scrape errors">Errors</th><th scope="col" title="the time of the last scrape">Last Scrape</th><th scope="col" title="the duration of the last scrape">Duration</th><th scope="col" title="the 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 class="list-`)
|
|
//line lib/promscrape/targetstatus.qtpl:179
|
|
qw422016.N().D(i)
|
|
//line lib/promscrape/targetstatus.qtpl:179
|
|
qw422016.N().S(`">`)
|
|
//line lib/promscrape/targetstatus.qtpl:180
|
|
for _, ts := range js.targetsStatus {
|
|
//line lib/promscrape/targetstatus.qtpl:182
|
|
endpoint := ts.sw.Config.ScrapeURL
|
|
targetID := getTargetID(ts.sw)
|
|
lastScrapeTime := ts.getDurationFromLastScrape()
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:186
|
|
if showOnlyUnhealthy && ts.up {
|
|
//line lib/promscrape/targetstatus.qtpl:186
|
|
continue
|
|
//line lib/promscrape/targetstatus.qtpl:186
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:186
|
|
qw422016.N().S(`<tr`)
|
|
//line lib/promscrape/targetstatus.qtpl:187
|
|
if !ts.up {
|
|
//line lib/promscrape/targetstatus.qtpl:187
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:187
|
|
qw422016.N().S(`class="alert alert-danger" role="alert"`)
|
|
//line lib/promscrape/targetstatus.qtpl:187
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:187
|
|
qw422016.N().S(`><td class="endpoint"><a href="`)
|
|
//line lib/promscrape/targetstatus.qtpl:188
|
|
qw422016.E().S(endpoint)
|
|
//line lib/promscrape/targetstatus.qtpl:188
|
|
qw422016.N().S(`" target="_blank">`)
|
|
//line lib/promscrape/targetstatus.qtpl:188
|
|
qw422016.E().S(endpoint)
|
|
//line lib/promscrape/targetstatus.qtpl:188
|
|
qw422016.N().S(`</a> (<a href="target_response?id=`)
|
|
//line lib/promscrape/targetstatus.qtpl:189
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:189
|
|
qw422016.N().S(`" target="_blank"title="click to fetch target response on behalf of the scraper">response</a>)</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:193
|
|
if ts.up {
|
|
//line lib/promscrape/targetstatus.qtpl:193
|
|
qw422016.N().S(`UP`)
|
|
//line lib/promscrape/targetstatus.qtpl:193
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:193
|
|
qw422016.N().S(`DOWN`)
|
|
//line lib/promscrape/targetstatus.qtpl:193
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:193
|
|
qw422016.N().S(`</td><td class="labels"><div title="click to show original labels"onclick="document.getElementById('original_labels_`)
|
|
//line lib/promscrape/targetstatus.qtpl:196
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:196
|
|
qw422016.N().S(`').style.display='block'">`)
|
|
//line lib/promscrape/targetstatus.qtpl:197
|
|
streamformatLabel(qw422016, promrelabel.FinalizeLabels(nil, ts.sw.Config.Labels))
|
|
//line lib/promscrape/targetstatus.qtpl:197
|
|
qw422016.N().S(`</div><div style="display:none" id="original_labels_`)
|
|
//line lib/promscrape/targetstatus.qtpl:199
|
|
qw422016.E().S(targetID)
|
|
//line lib/promscrape/targetstatus.qtpl:199
|
|
qw422016.N().S(`">`)
|
|
//line lib/promscrape/targetstatus.qtpl:200
|
|
streamformatLabel(qw422016, ts.sw.Config.OriginalLabels)
|
|
//line lib/promscrape/targetstatus.qtpl:200
|
|
qw422016.N().S(`</div></td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:203
|
|
qw422016.N().D(ts.scrapesTotal)
|
|
//line lib/promscrape/targetstatus.qtpl:203
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().D(ts.scrapesFailed)
|
|
//line lib/promscrape/targetstatus.qtpl:204
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:206
|
|
if lastScrapeTime < 365*24*time.Hour {
|
|
//line lib/promscrape/targetstatus.qtpl:207
|
|
qw422016.N().FPrec(lastScrapeTime.Seconds(), 3)
|
|
//line lib/promscrape/targetstatus.qtpl:207
|
|
qw422016.N().S(`s ago`)
|
|
//line lib/promscrape/targetstatus.qtpl:208
|
|
} else {
|
|
//line lib/promscrape/targetstatus.qtpl:208
|
|
qw422016.N().S(`none`)
|
|
//line lib/promscrape/targetstatus.qtpl:210
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:210
|
|
qw422016.N().S(`<td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:211
|
|
qw422016.N().D(int(ts.scrapeDuration))
|
|
//line lib/promscrape/targetstatus.qtpl:211
|
|
qw422016.N().S(`ms</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:212
|
|
qw422016.N().D(ts.samplesScraped)
|
|
//line lib/promscrape/targetstatus.qtpl:212
|
|
qw422016.N().S(`</td><td>`)
|
|
//line lib/promscrape/targetstatus.qtpl:213
|
|
if ts.err != nil {
|
|
//line lib/promscrape/targetstatus.qtpl:213
|
|
qw422016.E().S(ts.err.Error())
|
|
//line lib/promscrape/targetstatus.qtpl:213
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:213
|
|
qw422016.N().S(`</td></tr>`)
|
|
//line lib/promscrape/targetstatus.qtpl:215
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:215
|
|
qw422016.N().S(`</tbody></table></div></div></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:221
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:221
|
|
qw422016.N().S(`</div></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:225
|
|
for _, jobName := range emptyJobs {
|
|
//line lib/promscrape/targetstatus.qtpl:225
|
|
qw422016.N().S(`<div><h4><a>`)
|
|
//line lib/promscrape/targetstatus.qtpl:228
|
|
qw422016.E().S(jobName)
|
|
//line lib/promscrape/targetstatus.qtpl:228
|
|
qw422016.N().S(`(0/0 up)</a></h4><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">Labels</th><th scope="col">Last Scrape</th><th scope="col">Scrape Duration</th><th scope="col">Samples Scraped</th><th scope="col">Error</th></tr></thead></table></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:244
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:244
|
|
qw422016.N().S(`</main></div></div></body></html>`)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, jts []jobTargetsStatuses, emptyJobs []string, showOnlyUnhealthy bool, endpointSearch, labelSearch string, err error) {
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
StreamTargetsResponseHTML(qw422016, jts, emptyJobs, showOnlyUnhealthy, endpointSearch, labelSearch, err)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
func TargetsResponseHTML(jts []jobTargetsStatuses, emptyJobs []string, showOnlyUnhealthy bool, endpointSearch, labelSearch string, err error) string {
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
WriteTargetsResponseHTML(qb422016, jts, emptyJobs, showOnlyUnhealthy, endpointSearch, labelSearch, err)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:250
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:252
|
|
func streamqueryArgs(qw422016 *qt422016.Writer, m map[string]string) {
|
|
//line lib/promscrape/targetstatus.qtpl:254
|
|
qa := make(url.Values, len(m))
|
|
for k, v := range m {
|
|
qa[k] = []string{v}
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:259
|
|
qw422016.E().S(qa.Encode())
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
func writequeryArgs(qq422016 qtio422016.Writer, m map[string]string) {
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
streamqueryArgs(qw422016, m)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
func queryArgs(m map[string]string) string {
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
writequeryArgs(qb422016, m)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:260
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:262
|
|
func streamformatLabel(qw422016 *qt422016.Writer, labels []prompbmarshal.Label) {
|
|
//line lib/promscrape/targetstatus.qtpl:262
|
|
qw422016.N().S(`{`)
|
|
//line lib/promscrape/targetstatus.qtpl:264
|
|
for i, label := range labels {
|
|
//line lib/promscrape/targetstatus.qtpl:265
|
|
qw422016.E().S(label.Name)
|
|
//line lib/promscrape/targetstatus.qtpl:265
|
|
qw422016.N().S(`=`)
|
|
//line lib/promscrape/targetstatus.qtpl:265
|
|
qw422016.E().Q(label.Value)
|
|
//line lib/promscrape/targetstatus.qtpl:266
|
|
if i+1 < len(labels) {
|
|
//line lib/promscrape/targetstatus.qtpl:266
|
|
qw422016.N().S(`,`)
|
|
//line lib/promscrape/targetstatus.qtpl:266
|
|
qw422016.N().S(` `)
|
|
//line lib/promscrape/targetstatus.qtpl:266
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:267
|
|
}
|
|
//line lib/promscrape/targetstatus.qtpl:267
|
|
qw422016.N().S(`}`)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
func writeformatLabel(qq422016 qtio422016.Writer, labels []prompbmarshal.Label) {
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
streamformatLabel(qw422016, labels)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
func formatLabel(labels []prompbmarshal.Label) string {
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
writeformatLabel(qb422016, labels)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:269
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:271
|
|
func streamerrorNotification(qw422016 *qt422016.Writer, err error) {
|
|
//line lib/promscrape/targetstatus.qtpl:271
|
|
qw422016.N().S(`<div class="alert alert-danger d-flex align-items-center" role="alert"><svg class="bi flex-shrink-0 me-2" width="24" height="24" role="img" aria-label="Danger:"><use xlink:href="#exclamation-triangle-fill"/></svg><div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:276
|
|
qw422016.E().S(err.Error())
|
|
//line lib/promscrape/targetstatus.qtpl:276
|
|
qw422016.N().S(`</div></div>`)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
func writeerrorNotification(qq422016 qtio422016.Writer, err error) {
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
qw422016 := qt422016.AcquireWriter(qq422016)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
streamerrorNotification(qw422016, err)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
qt422016.ReleaseWriter(qw422016)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
}
|
|
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
func errorNotification(err error) string {
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
qb422016 := qt422016.AcquireByteBuffer()
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
writeerrorNotification(qb422016, err)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
qs422016 := string(qb422016.B)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
qt422016.ReleaseByteBuffer(qb422016)
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
return qs422016
|
|
//line lib/promscrape/targetstatus.qtpl:279
|
|
}
|