// Code generated by qtc from "targetstatus.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details.

//line lib/promscrape/targetstatus.qtpl:1
package promscrape

//line lib/promscrape/targetstatus.qtpl:1
import (
	"net/url"
	"time"

	"github.com/VictoriaMetrics/VictoriaMetrics/lib/htmlcomponents"
	"github.com/VictoriaMetrics/VictoriaMetrics/lib/promutils"
)

//line lib/promscrape/targetstatus.qtpl:11
import (
	qtio422016 "io"

	qt422016 "github.com/valyala/quicktemplate"
)

//line lib/promscrape/targetstatus.qtpl:11
var (
	_ = qtio422016.Copy
	_ = qt422016.AcquireByteBuffer
)

//line lib/promscrape/targetstatus.qtpl:11
func StreamTargetsResponsePlain(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:13
	if tsr.err != nil {
//line lib/promscrape/targetstatus.qtpl:14
		qw422016.N().S(tsr.err.Error())
//line lib/promscrape/targetstatus.qtpl:15
		return
//line lib/promscrape/targetstatus.qtpl:16
	}
//line lib/promscrape/targetstatus.qtpl:18
	for _, jts := range tsr.jobTargetsStatuses {
//line lib/promscrape/targetstatus.qtpl:18
		qw422016.N().S(`job=`)
//line lib/promscrape/targetstatus.qtpl:19
		qw422016.N().S(jts.jobName)
//line lib/promscrape/targetstatus.qtpl:19
		qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:19
		qw422016.N().S(`(`)
//line lib/promscrape/targetstatus.qtpl:19
		qw422016.N().D(jts.upCount)
//line lib/promscrape/targetstatus.qtpl:19
		qw422016.N().S(`/`)
//line lib/promscrape/targetstatus.qtpl:19
		qw422016.N().D(jts.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 jts.targetsStatus {
//line lib/promscrape/targetstatus.qtpl:22
			qw422016.N().S("\t")
//line lib/promscrape/targetstatus.qtpl:22
			qw422016.N().S(`state=`)
//line lib/promscrape/targetstatus.qtpl:23
			if ts.up {
//line lib/promscrape/targetstatus.qtpl:23
				qw422016.N().S(`up`)
//line lib/promscrape/targetstatus.qtpl:23
			} else {
//line lib/promscrape/targetstatus.qtpl:23
				qw422016.N().S(`down`)
//line lib/promscrape/targetstatus.qtpl:23
			}
//line lib/promscrape/targetstatus.qtpl:23
			qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:23
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:23
			qw422016.N().S(`endpoint=`)
//line lib/promscrape/targetstatus.qtpl:24
			qw422016.N().S(ts.sw.Config.ScrapeURL)
//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(`labels=`)
//line lib/promscrape/targetstatus.qtpl:25
			qw422016.N().S(ts.sw.Config.Labels.String())
//line lib/promscrape/targetstatus.qtpl:25
			qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:25
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:26
			if filter.showOriginalLabels {
//line lib/promscrape/targetstatus.qtpl:26
				qw422016.N().S(`originalLabels=`)
//line lib/promscrape/targetstatus.qtpl:26
				qw422016.N().S(ts.sw.Config.OriginalLabels.String())
//line lib/promscrape/targetstatus.qtpl:26
				qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:26
				qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:26
			}
//line lib/promscrape/targetstatus.qtpl:26
			qw422016.N().S(`scrapes_total=`)
//line lib/promscrape/targetstatus.qtpl:27
			qw422016.N().D(ts.scrapesTotal)
//line lib/promscrape/targetstatus.qtpl:27
			qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:27
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:27
			qw422016.N().S(`scrapes_failed=`)
//line lib/promscrape/targetstatus.qtpl:28
			qw422016.N().D(ts.scrapesFailed)
//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(`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
			qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:31
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:31
			qw422016.N().S(`error=`)
//line lib/promscrape/targetstatus.qtpl:32
			if ts.err != nil {
//line lib/promscrape/targetstatus.qtpl:32
				qw422016.N().S(ts.err.Error())
//line lib/promscrape/targetstatus.qtpl:32
			}
//line lib/promscrape/targetstatus.qtpl:33
			qw422016.N().S(`
`)
//line lib/promscrape/targetstatus.qtpl:34
		}
//line lib/promscrape/targetstatus.qtpl:35
	}
//line lib/promscrape/targetstatus.qtpl:37
	for _, jobName := range tsr.emptyJobs {
//line lib/promscrape/targetstatus.qtpl:37
		qw422016.N().S(`job=`)
//line lib/promscrape/targetstatus.qtpl:38
		qw422016.N().S(jobName)
//line lib/promscrape/targetstatus.qtpl:38
		qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:38
		qw422016.N().S(`(0/0 up)`)
//line lib/promscrape/targetstatus.qtpl:39
		qw422016.N().S(`
`)
//line lib/promscrape/targetstatus.qtpl:40
	}
//line lib/promscrape/targetstatus.qtpl:42
}

//line lib/promscrape/targetstatus.qtpl:42
func WriteTargetsResponsePlain(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:42
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:42
	StreamTargetsResponsePlain(qw422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:42
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:42
}

//line lib/promscrape/targetstatus.qtpl:42
func TargetsResponsePlain(tsr *targetsStatusResult, filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:42
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:42
	WriteTargetsResponsePlain(qb422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:42
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:42
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:42
	return qs422016
//line lib/promscrape/targetstatus.qtpl:42
}

//line lib/promscrape/targetstatus.qtpl:44
func StreamTargetsResponseHTML(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:44
	qw422016.N().S(`<!DOCTYPE html><html lang="en"><head>`)
//line lib/promscrape/targetstatus.qtpl:48
	htmlcomponents.StreamCommonHeader(qw422016)
//line lib/promscrape/targetstatus.qtpl:48
	qw422016.N().S(`<title>Active Targets</title></head><body>`)
//line lib/promscrape/targetstatus.qtpl:52
	htmlcomponents.StreamNavbar(qw422016)
//line lib/promscrape/targetstatus.qtpl:52
	qw422016.N().S(`<div class="container-fluid">`)
//line lib/promscrape/targetstatus.qtpl:54
	if tsr.err != nil {
//line lib/promscrape/targetstatus.qtpl:55
		htmlcomponents.StreamErrorNotification(qw422016, tsr.err)
//line lib/promscrape/targetstatus.qtpl:56
	}
//line lib/promscrape/targetstatus.qtpl:56
	qw422016.N().S(`<div class="row"><main class="col-12"><h1>Active Targets</h1><hr />`)
//line lib/promscrape/targetstatus.qtpl:61
	streamfiltersForm(qw422016, filter)
//line lib/promscrape/targetstatus.qtpl:61
	qw422016.N().S(`<hr />`)
//line lib/promscrape/targetstatus.qtpl:63
	streamtargetsTabs(qw422016, tsr, filter, "scrapeTargets")
//line lib/promscrape/targetstatus.qtpl:63
	qw422016.N().S(`</main></div></div></body></html>`)
//line lib/promscrape/targetstatus.qtpl:69
}

//line lib/promscrape/targetstatus.qtpl:69
func WriteTargetsResponseHTML(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:69
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:69
	StreamTargetsResponseHTML(qw422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:69
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:69
}

//line lib/promscrape/targetstatus.qtpl:69
func TargetsResponseHTML(tsr *targetsStatusResult, filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:69
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:69
	WriteTargetsResponseHTML(qb422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:69
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:69
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:69
	return qs422016
//line lib/promscrape/targetstatus.qtpl:69
}

//line lib/promscrape/targetstatus.qtpl:71
func StreamServiceDiscoveryResponse(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:71
	qw422016.N().S(`<!DOCTYPE html><html lang="en"><head>`)
//line lib/promscrape/targetstatus.qtpl:75
	htmlcomponents.StreamCommonHeader(qw422016)
//line lib/promscrape/targetstatus.qtpl:75
	qw422016.N().S(`<title>Discovered Targets</title></head><body>`)
//line lib/promscrape/targetstatus.qtpl:79
	htmlcomponents.StreamNavbar(qw422016)
//line lib/promscrape/targetstatus.qtpl:79
	qw422016.N().S(`<div class="container-fluid">`)
//line lib/promscrape/targetstatus.qtpl:81
	if tsr.err != nil {
//line lib/promscrape/targetstatus.qtpl:82
		htmlcomponents.StreamErrorNotification(qw422016, tsr.err)
//line lib/promscrape/targetstatus.qtpl:83
	}
//line lib/promscrape/targetstatus.qtpl:83
	qw422016.N().S(`<div class="row"><main class="col-12"><h1>Discovered Targets</h1><hr />`)
//line lib/promscrape/targetstatus.qtpl:88
	streamfiltersForm(qw422016, filter)
//line lib/promscrape/targetstatus.qtpl:88
	qw422016.N().S(`<hr />`)
//line lib/promscrape/targetstatus.qtpl:90
	streamtargetsTabs(qw422016, tsr, filter, "discoveredTargets")
//line lib/promscrape/targetstatus.qtpl:90
	qw422016.N().S(`</main></div></div></body></html>`)
//line lib/promscrape/targetstatus.qtpl:96
}

//line lib/promscrape/targetstatus.qtpl:96
func WriteServiceDiscoveryResponse(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:96
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:96
	StreamServiceDiscoveryResponse(qw422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:96
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:96
}

//line lib/promscrape/targetstatus.qtpl:96
func ServiceDiscoveryResponse(tsr *targetsStatusResult, filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:96
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:96
	WriteServiceDiscoveryResponse(qb422016, tsr, filter)
//line lib/promscrape/targetstatus.qtpl:96
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:96
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:96
	return qs422016
//line lib/promscrape/targetstatus.qtpl:96
}

//line lib/promscrape/targetstatus.qtpl:98
func streamfiltersForm(qw422016 *qt422016.Writer, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:98
	qw422016.N().S(`<div class="row g-3 align-items-center mb-3"><div class="col-auto"><button id="all-btn" type="button" class="btn`)
//line lib/promscrape/targetstatus.qtpl:101
	qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:101
	if !filter.showOnlyUnhealthy {
//line lib/promscrape/targetstatus.qtpl:101
		qw422016.N().S(`btn-secondary`)
//line lib/promscrape/targetstatus.qtpl:101
	} else {
//line lib/promscrape/targetstatus.qtpl:101
		qw422016.N().S(`btn-success`)
//line lib/promscrape/targetstatus.qtpl:101
	}
//line lib/promscrape/targetstatus.qtpl:101
	qw422016.N().S(`"onclick="location.href='?`)
//line lib/promscrape/targetstatus.qtpl:102
	streamqueryArgs(qw422016, filter, map[string]string{"show_only_unhealthy": "false"})
//line lib/promscrape/targetstatus.qtpl:102
	qw422016.N().S(`'">All</button></div><div class="col-auto"><button id="unhealthy-btn" type="button" class="btn`)
//line lib/promscrape/targetstatus.qtpl:107
	qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:107
	if filter.showOnlyUnhealthy {
//line lib/promscrape/targetstatus.qtpl:107
		qw422016.N().S(`btn-secondary`)
//line lib/promscrape/targetstatus.qtpl:107
	} else {
//line lib/promscrape/targetstatus.qtpl:107
		qw422016.N().S(`btn-danger`)
//line lib/promscrape/targetstatus.qtpl:107
	}
//line lib/promscrape/targetstatus.qtpl:107
	qw422016.N().S(`"onclick="location.href='?`)
//line lib/promscrape/targetstatus.qtpl:108
	streamqueryArgs(qw422016, filter, map[string]string{"show_only_unhealthy": "true"})
//line lib/promscrape/targetstatus.qtpl:108
	qw422016.N().S(`'">Unhealthy</button></div><div class="col-auto"><button type="button" class="btn btn-primary" onclick="document.querySelectorAll('.scrape-job').forEach((el) => { el.style.display = 'none'; })">Collapse all</button></div><div class="col-auto"><button type="button" class="btn btn-secondary" onclick="document.querySelectorAll('.scrape-job').forEach((el) => { el.style.display = 'block'; })">Expand all</button></div><div class="col-auto"><button type="button" class="btn btn-success" onclick="document.getElementById('filters').style.display='block'">Filter targets</button></div></div><div id="filters"`)
//line lib/promscrape/targetstatus.qtpl:128
	if filter.endpointSearch == "" && filter.labelSearch == "" {
//line lib/promscrape/targetstatus.qtpl:128
		qw422016.N().S(`style="display:none"`)
//line lib/promscrape/targetstatus.qtpl:128
	}
//line lib/promscrape/targetstatus.qtpl:128
	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:134
	qw422016.E().S(filter.endpointSearch)
//line lib/promscrape/targetstatus.qtpl:134
	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:141
	qw422016.E().S(filter.labelSearch)
//line lib/promscrape/targetstatus.qtpl:141
	qw422016.N().S(`"/></div></div><input type="hidden" name="show_only_unhealthy" value="`)
//line lib/promscrape/targetstatus.qtpl:144
	qw422016.E().V(filter.showOnlyUnhealthy)
//line lib/promscrape/targetstatus.qtpl:144
	qw422016.N().S(`"/><input type="hidden" name="show_original_labels" value="`)
//line lib/promscrape/targetstatus.qtpl:145
	qw422016.E().V(filter.showOriginalLabels)
//line lib/promscrape/targetstatus.qtpl:145
	qw422016.N().S(`"/><button type="submit" class="btn btn-success mb-3">Submit</button><button type="button" class="btn btn-danger mb-3" onclick="location.href='?'">Clear target filters</button></form></div>`)
//line lib/promscrape/targetstatus.qtpl:150
}

//line lib/promscrape/targetstatus.qtpl:150
func writefiltersForm(qq422016 qtio422016.Writer, filter *requestFilter) {
//line lib/promscrape/targetstatus.qtpl:150
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:150
	streamfiltersForm(qw422016, filter)
//line lib/promscrape/targetstatus.qtpl:150
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:150
}

//line lib/promscrape/targetstatus.qtpl:150
func filtersForm(filter *requestFilter) string {
//line lib/promscrape/targetstatus.qtpl:150
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:150
	writefiltersForm(qb422016, filter)
//line lib/promscrape/targetstatus.qtpl:150
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:150
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:150
	return qs422016
//line lib/promscrape/targetstatus.qtpl:150
}

//line lib/promscrape/targetstatus.qtpl:152
func streamtargetsTabs(qw422016 *qt422016.Writer, tsr *targetsStatusResult, filter *requestFilter, activeTab string) {
//line lib/promscrape/targetstatus.qtpl:152
	qw422016.N().S(`<ul class="nav nav-tabs" id="myTab" role="tablist"><li class="nav-item" role="presentation"><button class="nav-link`)
//line lib/promscrape/targetstatus.qtpl:155
	if activeTab == "scrapeTargets" {
//line lib/promscrape/targetstatus.qtpl:155
		qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:155
		qw422016.N().S(`active`)
//line lib/promscrape/targetstatus.qtpl:155
	}
//line lib/promscrape/targetstatus.qtpl:155
	qw422016.N().S(`" type="button" role="tab"onclick="location.href='targets?`)
//line lib/promscrape/targetstatus.qtpl:156
	streamqueryArgs(qw422016, filter, nil)
//line lib/promscrape/targetstatus.qtpl:156
	qw422016.N().S(`'">Active targets</button></li><li class="nav-item" role="presentation"><button class="nav-link`)
//line lib/promscrape/targetstatus.qtpl:161
	if activeTab == "discoveredTargets" {
//line lib/promscrape/targetstatus.qtpl:161
		qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:161
		qw422016.N().S(`active`)
//line lib/promscrape/targetstatus.qtpl:161
	}
//line lib/promscrape/targetstatus.qtpl:161
	qw422016.N().S(`" type="button" role="tab"onclick="location.href='service-discovery?`)
//line lib/promscrape/targetstatus.qtpl:162
	streamqueryArgs(qw422016, filter, nil)
//line lib/promscrape/targetstatus.qtpl:162
	qw422016.N().S(`'">Discovered targets</button></li></ul><div class="tab-content"><div class="tab-pane active" role="tabpanel">`)
//line lib/promscrape/targetstatus.qtpl:169
	switch activeTab {
//line lib/promscrape/targetstatus.qtpl:170
	case "scrapeTargets":
//line lib/promscrape/targetstatus.qtpl:171
		streamscrapeTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:172
	case "discoveredTargets":
//line lib/promscrape/targetstatus.qtpl:173
		streamdiscoveredTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:174
	}
//line lib/promscrape/targetstatus.qtpl:174
	qw422016.N().S(`</div></div>`)
//line lib/promscrape/targetstatus.qtpl:177
}

//line lib/promscrape/targetstatus.qtpl:177
func writetargetsTabs(qq422016 qtio422016.Writer, tsr *targetsStatusResult, filter *requestFilter, activeTab string) {
//line lib/promscrape/targetstatus.qtpl:177
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:177
	streamtargetsTabs(qw422016, tsr, filter, activeTab)
//line lib/promscrape/targetstatus.qtpl:177
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:177
}

//line lib/promscrape/targetstatus.qtpl:177
func targetsTabs(tsr *targetsStatusResult, filter *requestFilter, activeTab string) string {
//line lib/promscrape/targetstatus.qtpl:177
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:177
	writetargetsTabs(qb422016, tsr, filter, activeTab)
//line lib/promscrape/targetstatus.qtpl:177
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:177
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:177
	return qs422016
//line lib/promscrape/targetstatus.qtpl:177
}

//line lib/promscrape/targetstatus.qtpl:179
func streamscrapeTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:179
	qw422016.N().S(`<div class="row mt-4"><div class="col-12">`)
//line lib/promscrape/targetstatus.qtpl:182
	for i, jts := range tsr.jobTargetsStatuses {
//line lib/promscrape/targetstatus.qtpl:183
		streamscrapeJobTargets(qw422016, i, jts)
//line lib/promscrape/targetstatus.qtpl:184
	}
//line lib/promscrape/targetstatus.qtpl:185
	for i, jobName := range tsr.emptyJobs {
//line lib/promscrape/targetstatus.qtpl:187
		num := i + len(tsr.jobTargetsStatuses)
		jts := &jobTargetsStatuses{
			jobName: jobName,
		}

//line lib/promscrape/targetstatus.qtpl:192
		streamscrapeJobTargets(qw422016, num, jts)
//line lib/promscrape/targetstatus.qtpl:193
	}
//line lib/promscrape/targetstatus.qtpl:193
	qw422016.N().S(`</div></div>`)
//line lib/promscrape/targetstatus.qtpl:196
}

//line lib/promscrape/targetstatus.qtpl:196
func writescrapeTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:196
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:196
	streamscrapeTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:196
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:196
}

//line lib/promscrape/targetstatus.qtpl:196
func scrapeTargets(tsr *targetsStatusResult) string {
//line lib/promscrape/targetstatus.qtpl:196
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:196
	writescrapeTargets(qb422016, tsr)
//line lib/promscrape/targetstatus.qtpl:196
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:196
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:196
	return qs422016
//line lib/promscrape/targetstatus.qtpl:196
}

//line lib/promscrape/targetstatus.qtpl:198
func streamscrapeJobTargets(qw422016 *qt422016.Writer, num int, jts *jobTargetsStatuses) {
//line lib/promscrape/targetstatus.qtpl:198
	qw422016.N().S(`<div class="row mb-4"><div class="col-12"><h4><span class="me-2">`)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.E().S(jts.jobName)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().S(`(`)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().D(jts.upCount)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().S(`/`)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().D(jts.targetsTotal)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:202
	qw422016.N().S(`up)</span>`)
//line lib/promscrape/targetstatus.qtpl:203
	streamshowHideScrapeJobButtons(qw422016, num)
//line lib/promscrape/targetstatus.qtpl:203
	qw422016.N().S(`</h4><div id="scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:205
	qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:205
	qw422016.N().S(`" class="scrape-job table-responsive"><table class="table table-striped table-hover table-bordered table-sm"><thead><tr><th scope="col">Endpoint</th><th scope="col">State</th><th scope="col" title="target labels">Labels</th><th scope="col" title="debug relabeling">Debug relabeling</th><th scope="col" title="total scrapes">Scrapes</th><th scope="col" title="total scrape errors">Errors</th><th scope="col" title="the time of the last scrape">Last Scrape</th><th scope="col" title="the duration of the last scrape">Duration</th><th scope="col" title="the number of metrics scraped during the last scrape">Samples</th><th scope="col" title="error from the last scrape (if any)">Last error</th></tr></thead><tbody>`)
//line lib/promscrape/targetstatus.qtpl:222
	for _, ts := range jts.targetsStatus {
//line lib/promscrape/targetstatus.qtpl:224
		endpoint := ts.sw.Config.ScrapeURL
		// The target is uniquely identified by a pointer to its original labels.
		targetID := getLabelsID(ts.sw.Config.OriginalLabels)
		lastScrapeDuration := ts.getDurationFromLastScrape()

//line lib/promscrape/targetstatus.qtpl:228
		qw422016.N().S(`<tr`)
//line lib/promscrape/targetstatus.qtpl:229
		if !ts.up {
//line lib/promscrape/targetstatus.qtpl:229
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:229
			qw422016.N().S(`class="alert alert-danger" role="alert"`)
//line lib/promscrape/targetstatus.qtpl:229
		}
//line lib/promscrape/targetstatus.qtpl:229
		qw422016.N().S(`><td class="endpoint"><a href="`)
//line lib/promscrape/targetstatus.qtpl:231
		qw422016.E().S(endpoint)
//line lib/promscrape/targetstatus.qtpl:231
		qw422016.N().S(`" target="_blank">`)
//line lib/promscrape/targetstatus.qtpl:231
		qw422016.E().S(endpoint)
//line lib/promscrape/targetstatus.qtpl:231
		qw422016.N().S(`</a> (<a href="target_response?id=`)
//line lib/promscrape/targetstatus.qtpl:232
		qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:232
		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:237
		if ts.up {
//line lib/promscrape/targetstatus.qtpl:237
			qw422016.N().S(`<span class="badge bg-success">UP</span>`)
//line lib/promscrape/targetstatus.qtpl:239
		} else {
//line lib/promscrape/targetstatus.qtpl:239
			qw422016.N().S(`<span class="badge bg-danger">DOWN</span>`)
//line lib/promscrape/targetstatus.qtpl:241
		}
//line lib/promscrape/targetstatus.qtpl:241
		qw422016.N().S(`</td><td class="labels"><div title="click to show original labels"onclick="document.getElementById('original-labels-`)
//line lib/promscrape/targetstatus.qtpl:245
		qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:245
		qw422016.N().S(`').style.display='block'">`)
//line lib/promscrape/targetstatus.qtpl:246
		streamformatLabels(qw422016, ts.sw.Config.Labels)
//line lib/promscrape/targetstatus.qtpl:246
		qw422016.N().S(`</div><div style="display:none" id="original-labels-`)
//line lib/promscrape/targetstatus.qtpl:248
		qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:248
		qw422016.N().S(`">`)
//line lib/promscrape/targetstatus.qtpl:249
		streamformatLabels(qw422016, ts.sw.Config.OriginalLabels)
//line lib/promscrape/targetstatus.qtpl:249
		qw422016.N().S(`</div></td><td><a href="target-relabel-debug?id=`)
//line lib/promscrape/targetstatus.qtpl:253
		qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:253
		qw422016.N().S(`" target="_blank">target</a>`)
//line lib/promscrape/targetstatus.qtpl:253
		qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:253
		qw422016.N().S(`<a href="metric-relabel-debug?id=`)
//line lib/promscrape/targetstatus.qtpl:254
		qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:254
		qw422016.N().S(`" target="_blank">metrics</a></td><td>`)
//line lib/promscrape/targetstatus.qtpl:256
		qw422016.N().D(ts.scrapesTotal)
//line lib/promscrape/targetstatus.qtpl:256
		qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:257
		qw422016.N().D(ts.scrapesFailed)
//line lib/promscrape/targetstatus.qtpl:257
		qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:259
		if lastScrapeDuration < 365*24*time.Hour {
//line lib/promscrape/targetstatus.qtpl:260
			qw422016.N().D(int(lastScrapeDuration.Milliseconds()))
//line lib/promscrape/targetstatus.qtpl:260
			qw422016.N().S(`ms ago`)
//line lib/promscrape/targetstatus.qtpl:261
		} else {
//line lib/promscrape/targetstatus.qtpl:261
			qw422016.N().S(`none`)
//line lib/promscrape/targetstatus.qtpl:263
		}
//line lib/promscrape/targetstatus.qtpl:263
		qw422016.N().S(`<td>`)
//line lib/promscrape/targetstatus.qtpl:264
		qw422016.N().D(int(ts.scrapeDuration))
//line lib/promscrape/targetstatus.qtpl:264
		qw422016.N().S(`ms</td><td>`)
//line lib/promscrape/targetstatus.qtpl:265
		qw422016.N().D(ts.samplesScraped)
//line lib/promscrape/targetstatus.qtpl:265
		qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:266
		if ts.err != nil {
//line lib/promscrape/targetstatus.qtpl:266
			qw422016.E().S(ts.err.Error())
//line lib/promscrape/targetstatus.qtpl:266
		}
//line lib/promscrape/targetstatus.qtpl:266
		qw422016.N().S(`</td></tr>`)
//line lib/promscrape/targetstatus.qtpl:268
	}
//line lib/promscrape/targetstatus.qtpl:268
	qw422016.N().S(`</tbody></table></div></div></div>`)
//line lib/promscrape/targetstatus.qtpl:274
}

//line lib/promscrape/targetstatus.qtpl:274
func writescrapeJobTargets(qq422016 qtio422016.Writer, num int, jts *jobTargetsStatuses) {
//line lib/promscrape/targetstatus.qtpl:274
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:274
	streamscrapeJobTargets(qw422016, num, jts)
//line lib/promscrape/targetstatus.qtpl:274
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:274
}

//line lib/promscrape/targetstatus.qtpl:274
func scrapeJobTargets(num int, jts *jobTargetsStatuses) string {
//line lib/promscrape/targetstatus.qtpl:274
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:274
	writescrapeJobTargets(qb422016, num, jts)
//line lib/promscrape/targetstatus.qtpl:274
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:274
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:274
	return qs422016
//line lib/promscrape/targetstatus.qtpl:274
}

//line lib/promscrape/targetstatus.qtpl:276
func streamdiscoveredTargets(qw422016 *qt422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:277
	tljs := tsr.getTargetLabelsByJob()

//line lib/promscrape/targetstatus.qtpl:277
	qw422016.N().S(`<div class="row mt-4"><div class="col-12">`)
//line lib/promscrape/targetstatus.qtpl:280
	for i, tlj := range tljs {
//line lib/promscrape/targetstatus.qtpl:281
		streamdiscoveredJobTargets(qw422016, i, tlj)
//line lib/promscrape/targetstatus.qtpl:282
	}
//line lib/promscrape/targetstatus.qtpl:282
	qw422016.N().S(`</div></div>`)
//line lib/promscrape/targetstatus.qtpl:285
}

//line lib/promscrape/targetstatus.qtpl:285
func writediscoveredTargets(qq422016 qtio422016.Writer, tsr *targetsStatusResult) {
//line lib/promscrape/targetstatus.qtpl:285
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:285
	streamdiscoveredTargets(qw422016, tsr)
//line lib/promscrape/targetstatus.qtpl:285
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:285
}

//line lib/promscrape/targetstatus.qtpl:285
func discoveredTargets(tsr *targetsStatusResult) string {
//line lib/promscrape/targetstatus.qtpl:285
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:285
	writediscoveredTargets(qb422016, tsr)
//line lib/promscrape/targetstatus.qtpl:285
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:285
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:285
	return qs422016
//line lib/promscrape/targetstatus.qtpl:285
}

//line lib/promscrape/targetstatus.qtpl:287
func streamdiscoveredJobTargets(qw422016 *qt422016.Writer, num int, tlj *targetLabelsByJob) {
//line lib/promscrape/targetstatus.qtpl:287
	qw422016.N().S(`<h4><span class="me-2">`)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.E().S(tlj.jobName)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().S(`(`)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().D(tlj.activeTargets)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().S(`/`)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().D(tlj.activeTargets + tlj.droppedTargets)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:289
	qw422016.N().S(`active)</span>`)
//line lib/promscrape/targetstatus.qtpl:290
	streamshowHideScrapeJobButtons(qw422016, num)
//line lib/promscrape/targetstatus.qtpl:290
	qw422016.N().S(`</h4><div id="scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:292
	qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:292
	qw422016.N().S(`" class="scrape-job table-responsive"><table class="table table-striped table-hover table-bordered table-sm"><thead><tr><th scope="col" style="width: 5%">Status</th><th scope="col" style="width: 60%">Discovered Labels</th><th scope="col" style="width: 30%">Target Labels</th><th scope="col" stile="width: 5%">Debug relabeling</a></tr></thead><tbody>`)
//line lib/promscrape/targetstatus.qtpl:303
	for _, t := range tlj.targets {
//line lib/promscrape/targetstatus.qtpl:303
		qw422016.N().S(`<tr`)
//line lib/promscrape/targetstatus.qtpl:305
		if !t.up {
//line lib/promscrape/targetstatus.qtpl:306
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:306
			qw422016.N().S(`role="alert"`)
//line lib/promscrape/targetstatus.qtpl:306
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:307
			if t.labels.Len() > 0 {
//line lib/promscrape/targetstatus.qtpl:307
				qw422016.N().S(`class="alert alert-danger"`)
//line lib/promscrape/targetstatus.qtpl:309
			} else {
//line lib/promscrape/targetstatus.qtpl:309
				qw422016.N().S(`class="alert alert-warning"`)
//line lib/promscrape/targetstatus.qtpl:311
			}
//line lib/promscrape/targetstatus.qtpl:312
		}
//line lib/promscrape/targetstatus.qtpl:312
		qw422016.N().S(`><td>`)
//line lib/promscrape/targetstatus.qtpl:315
		if t.up {
//line lib/promscrape/targetstatus.qtpl:315
			qw422016.N().S(`<span class="badge bg-success">UP</span>`)
//line lib/promscrape/targetstatus.qtpl:317
		} else if t.labels.Len() > 0 {
//line lib/promscrape/targetstatus.qtpl:317
			qw422016.N().S(`<span class="badge bg-danger">DOWN</span>`)
//line lib/promscrape/targetstatus.qtpl:319
		} else {
//line lib/promscrape/targetstatus.qtpl:319
			qw422016.N().S(`<span class="badge bg-warning">DROPPED</span>`)
//line lib/promscrape/targetstatus.qtpl:321
		}
//line lib/promscrape/targetstatus.qtpl:321
		qw422016.N().S(`</td><td class="labels">`)
//line lib/promscrape/targetstatus.qtpl:324
		streamformatLabels(qw422016, t.originalLabels)
//line lib/promscrape/targetstatus.qtpl:324
		qw422016.N().S(`</td><td class="labels">`)
//line lib/promscrape/targetstatus.qtpl:327
		streamformatLabels(qw422016, t.labels)
//line lib/promscrape/targetstatus.qtpl:327
		qw422016.N().S(`</td><td>`)
//line lib/promscrape/targetstatus.qtpl:330
		targetID := getLabelsID(t.originalLabels)

//line lib/promscrape/targetstatus.qtpl:330
		qw422016.N().S(`<a href="target-relabel-debug?id=`)
//line lib/promscrape/targetstatus.qtpl:331
		qw422016.E().S(targetID)
//line lib/promscrape/targetstatus.qtpl:331
		qw422016.N().S(`" target="_blank">debug</a></td></tr>`)
//line lib/promscrape/targetstatus.qtpl:334
	}
//line lib/promscrape/targetstatus.qtpl:334
	qw422016.N().S(`</tbody></table></div>`)
//line lib/promscrape/targetstatus.qtpl:338
}

//line lib/promscrape/targetstatus.qtpl:338
func writediscoveredJobTargets(qq422016 qtio422016.Writer, num int, tlj *targetLabelsByJob) {
//line lib/promscrape/targetstatus.qtpl:338
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:338
	streamdiscoveredJobTargets(qw422016, num, tlj)
//line lib/promscrape/targetstatus.qtpl:338
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:338
}

//line lib/promscrape/targetstatus.qtpl:338
func discoveredJobTargets(num int, tlj *targetLabelsByJob) string {
//line lib/promscrape/targetstatus.qtpl:338
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:338
	writediscoveredJobTargets(qb422016, num, tlj)
//line lib/promscrape/targetstatus.qtpl:338
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:338
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:338
	return qs422016
//line lib/promscrape/targetstatus.qtpl:338
}

//line lib/promscrape/targetstatus.qtpl:340
func streamshowHideScrapeJobButtons(qw422016 *qt422016.Writer, num int) {
//line lib/promscrape/targetstatus.qtpl:340
	qw422016.N().S(`<button type="button" class="btn btn-primary btn-sm me-1"onclick="document.getElementById('scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:342
	qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:342
	qw422016.N().S(`').style.display='none'">collapse</button><button type="button" class="btn btn-secondary btn-sm me-1"onclick="document.getElementById('scrape-job-`)
//line lib/promscrape/targetstatus.qtpl:346
	qw422016.N().D(num)
//line lib/promscrape/targetstatus.qtpl:346
	qw422016.N().S(`').style.display='block'">expand</button>`)
//line lib/promscrape/targetstatus.qtpl:349
}

//line lib/promscrape/targetstatus.qtpl:349
func writeshowHideScrapeJobButtons(qq422016 qtio422016.Writer, num int) {
//line lib/promscrape/targetstatus.qtpl:349
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:349
	streamshowHideScrapeJobButtons(qw422016, num)
//line lib/promscrape/targetstatus.qtpl:349
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:349
}

//line lib/promscrape/targetstatus.qtpl:349
func showHideScrapeJobButtons(num int) string {
//line lib/promscrape/targetstatus.qtpl:349
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:349
	writeshowHideScrapeJobButtons(qb422016, num)
//line lib/promscrape/targetstatus.qtpl:349
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:349
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:349
	return qs422016
//line lib/promscrape/targetstatus.qtpl:349
}

//line lib/promscrape/targetstatus.qtpl:351
func streamqueryArgs(qw422016 *qt422016.Writer, filter *requestFilter, override map[string]string) {
//line lib/promscrape/targetstatus.qtpl:353
	showOnlyUnhealthy := "false"
	if filter.showOnlyUnhealthy {
		showOnlyUnhealthy = "true"
	}
	m := map[string]string{
		"show_only_unhealthy": showOnlyUnhealthy,
		"endpoint_search":     filter.endpointSearch,
		"label_search":        filter.labelSearch,
	}
	for k, v := range override {
		m[k] = v
	}
	qa := make(url.Values, len(m))
	for k, v := range m {
		qa[k] = []string{v}
	}

//line lib/promscrape/targetstatus.qtpl:370
	qw422016.E().S(qa.Encode())
//line lib/promscrape/targetstatus.qtpl:371
}

//line lib/promscrape/targetstatus.qtpl:371
func writequeryArgs(qq422016 qtio422016.Writer, filter *requestFilter, override map[string]string) {
//line lib/promscrape/targetstatus.qtpl:371
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:371
	streamqueryArgs(qw422016, filter, override)
//line lib/promscrape/targetstatus.qtpl:371
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:371
}

//line lib/promscrape/targetstatus.qtpl:371
func queryArgs(filter *requestFilter, override map[string]string) string {
//line lib/promscrape/targetstatus.qtpl:371
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:371
	writequeryArgs(qb422016, filter, override)
//line lib/promscrape/targetstatus.qtpl:371
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:371
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:371
	return qs422016
//line lib/promscrape/targetstatus.qtpl:371
}

//line lib/promscrape/targetstatus.qtpl:373
func streamformatLabels(qw422016 *qt422016.Writer, labels *promutils.Labels) {
//line lib/promscrape/targetstatus.qtpl:374
	labelsList := labels.GetLabels()

//line lib/promscrape/targetstatus.qtpl:374
	qw422016.N().S(`{`)
//line lib/promscrape/targetstatus.qtpl:376
	for i, label := range labelsList {
//line lib/promscrape/targetstatus.qtpl:377
		qw422016.E().S(label.Name)
//line lib/promscrape/targetstatus.qtpl:377
		qw422016.N().S(`=`)
//line lib/promscrape/targetstatus.qtpl:377
		qw422016.E().Q(label.Value)
//line lib/promscrape/targetstatus.qtpl:378
		if i+1 < len(labelsList) {
//line lib/promscrape/targetstatus.qtpl:378
			qw422016.N().S(`,`)
//line lib/promscrape/targetstatus.qtpl:378
			qw422016.N().S(` `)
//line lib/promscrape/targetstatus.qtpl:378
		}
//line lib/promscrape/targetstatus.qtpl:379
	}
//line lib/promscrape/targetstatus.qtpl:379
	qw422016.N().S(`}`)
//line lib/promscrape/targetstatus.qtpl:381
}

//line lib/promscrape/targetstatus.qtpl:381
func writeformatLabels(qq422016 qtio422016.Writer, labels *promutils.Labels) {
//line lib/promscrape/targetstatus.qtpl:381
	qw422016 := qt422016.AcquireWriter(qq422016)
//line lib/promscrape/targetstatus.qtpl:381
	streamformatLabels(qw422016, labels)
//line lib/promscrape/targetstatus.qtpl:381
	qt422016.ReleaseWriter(qw422016)
//line lib/promscrape/targetstatus.qtpl:381
}

//line lib/promscrape/targetstatus.qtpl:381
func formatLabels(labels *promutils.Labels) string {
//line lib/promscrape/targetstatus.qtpl:381
	qb422016 := qt422016.AcquireByteBuffer()
//line lib/promscrape/targetstatus.qtpl:381
	writeformatLabels(qb422016, labels)
//line lib/promscrape/targetstatus.qtpl:381
	qs422016 := string(qb422016.B)
//line lib/promscrape/targetstatus.qtpl:381
	qt422016.ReleaseByteBuffer(qb422016)
//line lib/promscrape/targetstatus.qtpl:381
	return qs422016
//line lib/promscrape/targetstatus.qtpl:381
}