// Code generated by qtc from "web.qtpl". DO NOT EDIT. // See https://github.com/valyala/quicktemplate for details. //line app/vmalert/web.qtpl:1 package main //line app/vmalert/web.qtpl:3 import ( "net/http" "sort" "time" "github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/notifier" "github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/tpl" "github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/utils" ) //line app/vmalert/web.qtpl:14 import ( qtio422016 "io" qt422016 "github.com/valyala/quicktemplate" ) //line app/vmalert/web.qtpl:14 var ( _ = qtio422016.Copy _ = qt422016.AcquireByteBuffer ) //line app/vmalert/web.qtpl:14 func StreamWelcome(qw422016 *qt422016.Writer, r *http.Request) { //line app/vmalert/web.qtpl:14 qw422016.N().S(` `) //line app/vmalert/web.qtpl:15 tpl.StreamHeader(qw422016, r, navItems, "vmalert", getLastConfigError()) //line app/vmalert/web.qtpl:15 qw422016.N().S(`

API:
`) //line app/vmalert/web.qtpl:18 for _, p := range apiLinks { //line app/vmalert/web.qtpl:18 qw422016.N().S(` `) //line app/vmalert/web.qtpl:19 p, doc := p[0], p[1] //line app/vmalert/web.qtpl:19 qw422016.N().S(` `) //line app/vmalert/web.qtpl:20 qw422016.E().S(p) //line app/vmalert/web.qtpl:20 qw422016.N().S(` - `) //line app/vmalert/web.qtpl:20 qw422016.E().S(doc) //line app/vmalert/web.qtpl:20 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:21 } //line app/vmalert/web.qtpl:21 qw422016.N().S(` `) //line app/vmalert/web.qtpl:22 if r.Header.Get("X-Forwarded-For") == "" { //line app/vmalert/web.qtpl:22 qw422016.N().S(` System:
`) //line app/vmalert/web.qtpl:24 for _, p := range systemLinks { //line app/vmalert/web.qtpl:24 qw422016.N().S(` `) //line app/vmalert/web.qtpl:25 p, doc := p[0], p[1] //line app/vmalert/web.qtpl:25 qw422016.N().S(` `) //line app/vmalert/web.qtpl:26 qw422016.E().S(p) //line app/vmalert/web.qtpl:26 qw422016.N().S(` - `) //line app/vmalert/web.qtpl:26 qw422016.E().S(doc) //line app/vmalert/web.qtpl:26 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:27 } //line app/vmalert/web.qtpl:27 qw422016.N().S(` `) //line app/vmalert/web.qtpl:28 } //line app/vmalert/web.qtpl:28 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:30 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:30 qw422016.N().S(` `) //line app/vmalert/web.qtpl:31 } //line app/vmalert/web.qtpl:31 func WriteWelcome(qq422016 qtio422016.Writer, r *http.Request) { //line app/vmalert/web.qtpl:31 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:31 StreamWelcome(qw422016, r) //line app/vmalert/web.qtpl:31 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:31 } //line app/vmalert/web.qtpl:31 func Welcome(r *http.Request) string { //line app/vmalert/web.qtpl:31 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:31 WriteWelcome(qb422016, r) //line app/vmalert/web.qtpl:31 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:31 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:31 return qs422016 //line app/vmalert/web.qtpl:31 } //line app/vmalert/web.qtpl:33 func streambuttonActive(qw422016 *qt422016.Writer, filter, expValue string) { //line app/vmalert/web.qtpl:33 qw422016.N().S(` `) //line app/vmalert/web.qtpl:34 if filter != expValue { //line app/vmalert/web.qtpl:34 qw422016.N().S(` btn-secondary `) //line app/vmalert/web.qtpl:36 } else { //line app/vmalert/web.qtpl:36 qw422016.N().S(` btn-primary `) //line app/vmalert/web.qtpl:38 } //line app/vmalert/web.qtpl:38 qw422016.N().S(` `) //line app/vmalert/web.qtpl:39 } //line app/vmalert/web.qtpl:39 func writebuttonActive(qq422016 qtio422016.Writer, filter, expValue string) { //line app/vmalert/web.qtpl:39 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:39 streambuttonActive(qw422016, filter, expValue) //line app/vmalert/web.qtpl:39 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:39 } //line app/vmalert/web.qtpl:39 func buttonActive(filter, expValue string) string { //line app/vmalert/web.qtpl:39 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:39 writebuttonActive(qb422016, filter, expValue) //line app/vmalert/web.qtpl:39 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:39 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:39 return qs422016 //line app/vmalert/web.qtpl:39 } //line app/vmalert/web.qtpl:41 func StreamListGroups(qw422016 *qt422016.Writer, r *http.Request, originGroups []apiGroup) { //line app/vmalert/web.qtpl:41 qw422016.N().S(` `) //line app/vmalert/web.qtpl:42 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:42 qw422016.N().S(` `) //line app/vmalert/web.qtpl:43 tpl.StreamHeader(qw422016, r, navItems, "Groups", getLastConfigError()) //line app/vmalert/web.qtpl:43 qw422016.N().S(` `) //line app/vmalert/web.qtpl:45 filter := r.URL.Query().Get("filter") rOk := make(map[string]int) rNotOk := make(map[string]int) rNoMatch := make(map[string]int) var groups []apiGroup for _, g := range originGroups { var rules []apiRule for _, r := range g.Rules { if r.LastError != "" { rNotOk[g.ID]++ } else { rOk[g.ID]++ } if isNoMatch(r) { rNoMatch[g.ID]++ } if (filter == "unhealthy" && r.LastError == "") || (filter == "noMatch" && !isNoMatch(r)) { continue } rules = append(rules, r) } if len(rules) > 0 { g.Rules = rules groups = append(groups, g) } } //line app/vmalert/web.qtpl:72 qw422016.N().S(` All Collapse All Expand All Unhealthy NoMatch
`) //line app/vmalert/web.qtpl:88 if len(groups) > 0 { //line app/vmalert/web.qtpl:88 qw422016.N().S(` `) //line app/vmalert/web.qtpl:89 for _, g := range groups { //line app/vmalert/web.qtpl:89 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:93 qw422016.E().S(g.Name) //line app/vmalert/web.qtpl:93 if g.Type != "prometheus" { //line app/vmalert/web.qtpl:93 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:93 qw422016.E().S(g.Type) //line app/vmalert/web.qtpl:93 qw422016.N().S(`)`) //line app/vmalert/web.qtpl:93 } //line app/vmalert/web.qtpl:93 qw422016.N().S(` (every `) //line app/vmalert/web.qtpl:93 qw422016.N().FPrec(g.Interval, 0) //line app/vmalert/web.qtpl:93 qw422016.N().S(`s) # `) //line app/vmalert/web.qtpl:94 if rNotOk[g.ID] > 0 { //line app/vmalert/web.qtpl:94 qw422016.N().S(``) //line app/vmalert/web.qtpl:94 qw422016.N().D(rNotOk[g.ID]) //line app/vmalert/web.qtpl:94 qw422016.N().S(` `) //line app/vmalert/web.qtpl:94 } //line app/vmalert/web.qtpl:94 qw422016.N().S(` `) //line app/vmalert/web.qtpl:95 if rNoMatch[g.ID] > 0 { //line app/vmalert/web.qtpl:95 qw422016.N().S(``) //line app/vmalert/web.qtpl:95 qw422016.N().D(rNoMatch[g.ID]) //line app/vmalert/web.qtpl:95 qw422016.N().S(` `) //line app/vmalert/web.qtpl:95 } //line app/vmalert/web.qtpl:95 qw422016.N().S(` `) //line app/vmalert/web.qtpl:96 qw422016.N().D(rOk[g.ID]) //line app/vmalert/web.qtpl:96 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:97 qw422016.E().S(g.File) //line app/vmalert/web.qtpl:97 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:98 if len(g.Params) > 0 { //line app/vmalert/web.qtpl:98 qw422016.N().S(`
Extra params `) //line app/vmalert/web.qtpl:100 for _, param := range g.Params { //line app/vmalert/web.qtpl:100 qw422016.N().S(` `) //line app/vmalert/web.qtpl:101 qw422016.E().S(param) //line app/vmalert/web.qtpl:101 qw422016.N().S(` `) //line app/vmalert/web.qtpl:102 } //line app/vmalert/web.qtpl:102 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:104 } //line app/vmalert/web.qtpl:104 qw422016.N().S(` `) //line app/vmalert/web.qtpl:105 if len(g.Headers) > 0 { //line app/vmalert/web.qtpl:105 qw422016.N().S(`
Extra headers `) //line app/vmalert/web.qtpl:107 for _, header := range g.Headers { //line app/vmalert/web.qtpl:107 qw422016.N().S(` `) //line app/vmalert/web.qtpl:108 qw422016.E().S(header) //line app/vmalert/web.qtpl:108 qw422016.N().S(` `) //line app/vmalert/web.qtpl:109 } //line app/vmalert/web.qtpl:109 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:111 } //line app/vmalert/web.qtpl:111 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:123 for _, r := range g.Rules { //line app/vmalert/web.qtpl:123 qw422016.N().S(` `) //line app/vmalert/web.qtpl:163 } //line app/vmalert/web.qtpl:163 qw422016.N().S(`
Rule Samples Updated
`) //line app/vmalert/web.qtpl:128 if r.Type == "alerting" { //line app/vmalert/web.qtpl:128 qw422016.N().S(` `) //line app/vmalert/web.qtpl:129 if r.KeepFiringFor > 0 { //line app/vmalert/web.qtpl:129 qw422016.N().S(` alert: `) //line app/vmalert/web.qtpl:130 qw422016.E().S(r.Name) //line app/vmalert/web.qtpl:130 qw422016.N().S(` (for: `) //line app/vmalert/web.qtpl:130 qw422016.E().V(r.Duration) //line app/vmalert/web.qtpl:130 qw422016.N().S(` seconds, keep_firing_for: `) //line app/vmalert/web.qtpl:130 qw422016.E().V(r.KeepFiringFor) //line app/vmalert/web.qtpl:130 qw422016.N().S(` seconds) `) //line app/vmalert/web.qtpl:131 } else { //line app/vmalert/web.qtpl:131 qw422016.N().S(` alert: `) //line app/vmalert/web.qtpl:132 qw422016.E().S(r.Name) //line app/vmalert/web.qtpl:132 qw422016.N().S(` (for: `) //line app/vmalert/web.qtpl:132 qw422016.E().V(r.Duration) //line app/vmalert/web.qtpl:132 qw422016.N().S(` seconds) `) //line app/vmalert/web.qtpl:133 } //line app/vmalert/web.qtpl:133 qw422016.N().S(` `) //line app/vmalert/web.qtpl:134 } else { //line app/vmalert/web.qtpl:134 qw422016.N().S(` record: `) //line app/vmalert/web.qtpl:135 qw422016.E().S(r.Name) //line app/vmalert/web.qtpl:135 qw422016.N().S(` `) //line app/vmalert/web.qtpl:136 } //line app/vmalert/web.qtpl:136 qw422016.N().S(` | `) //line app/vmalert/web.qtpl:138 streamseriesFetchedWarn(qw422016, r) //line app/vmalert/web.qtpl:138 qw422016.N().S(` Details
`)
//line app/vmalert/web.qtpl:142
				qw422016.E().S(r.Query)
//line app/vmalert/web.qtpl:142
				qw422016.N().S(`
`) //line app/vmalert/web.qtpl:145 if len(r.Labels) > 0 { //line app/vmalert/web.qtpl:145 qw422016.N().S(` Labels:`) //line app/vmalert/web.qtpl:145 } //line app/vmalert/web.qtpl:145 qw422016.N().S(` `) //line app/vmalert/web.qtpl:146 for k, v := range r.Labels { //line app/vmalert/web.qtpl:146 qw422016.N().S(` `) //line app/vmalert/web.qtpl:147 qw422016.E().S(k) //line app/vmalert/web.qtpl:147 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:147 qw422016.E().S(v) //line app/vmalert/web.qtpl:147 qw422016.N().S(` `) //line app/vmalert/web.qtpl:148 } //line app/vmalert/web.qtpl:148 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:150 if r.LastError != "" { //line app/vmalert/web.qtpl:150 qw422016.N().S(`
Error:
`) //line app/vmalert/web.qtpl:154 qw422016.E().S(r.LastError) //line app/vmalert/web.qtpl:154 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:157 } //line app/vmalert/web.qtpl:157 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:160 qw422016.N().D(r.LastSamples) //line app/vmalert/web.qtpl:160 qw422016.N().S(` `) //line app/vmalert/web.qtpl:161 qw422016.N().FPrec(time.Since(r.LastEvaluation).Seconds(), 3) //line app/vmalert/web.qtpl:161 qw422016.N().S(`s ago
`) //line app/vmalert/web.qtpl:167 } //line app/vmalert/web.qtpl:167 qw422016.N().S(` `) //line app/vmalert/web.qtpl:168 } else { //line app/vmalert/web.qtpl:168 qw422016.N().S(`

No groups...

`) //line app/vmalert/web.qtpl:172 } //line app/vmalert/web.qtpl:172 qw422016.N().S(` `) //line app/vmalert/web.qtpl:174 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:174 qw422016.N().S(` `) //line app/vmalert/web.qtpl:176 } //line app/vmalert/web.qtpl:176 func WriteListGroups(qq422016 qtio422016.Writer, r *http.Request, originGroups []apiGroup) { //line app/vmalert/web.qtpl:176 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:176 StreamListGroups(qw422016, r, originGroups) //line app/vmalert/web.qtpl:176 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:176 } //line app/vmalert/web.qtpl:176 func ListGroups(r *http.Request, originGroups []apiGroup) string { //line app/vmalert/web.qtpl:176 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:176 WriteListGroups(qb422016, r, originGroups) //line app/vmalert/web.qtpl:176 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:176 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:176 return qs422016 //line app/vmalert/web.qtpl:176 } //line app/vmalert/web.qtpl:179 func StreamListAlerts(qw422016 *qt422016.Writer, r *http.Request, groupAlerts []groupAlerts) { //line app/vmalert/web.qtpl:179 qw422016.N().S(` `) //line app/vmalert/web.qtpl:180 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:180 qw422016.N().S(` `) //line app/vmalert/web.qtpl:181 tpl.StreamHeader(qw422016, r, navItems, "Alerts", getLastConfigError()) //line app/vmalert/web.qtpl:181 qw422016.N().S(` `) //line app/vmalert/web.qtpl:182 if len(groupAlerts) > 0 { //line app/vmalert/web.qtpl:182 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:185 for _, ga := range groupAlerts { //line app/vmalert/web.qtpl:185 qw422016.N().S(` `) //line app/vmalert/web.qtpl:186 g := ga.Group //line app/vmalert/web.qtpl:186 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:189 qw422016.E().S(g.Name) //line app/vmalert/web.qtpl:189 if g.Type != "prometheus" { //line app/vmalert/web.qtpl:189 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:189 qw422016.E().S(g.Type) //line app/vmalert/web.qtpl:189 qw422016.N().S(`)`) //line app/vmalert/web.qtpl:189 } //line app/vmalert/web.qtpl:189 qw422016.N().S(` `) //line app/vmalert/web.qtpl:190 qw422016.N().D(len(ga.Alerts)) //line app/vmalert/web.qtpl:190 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:192 qw422016.E().S(g.File) //line app/vmalert/web.qtpl:192 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:195 var keys []string alertsByRule := make(map[string][]*apiAlert) for _, alert := range ga.Alerts { if len(alertsByRule[alert.RuleID]) < 1 { keys = append(keys, alert.RuleID) } alertsByRule[alert.RuleID] = append(alertsByRule[alert.RuleID], alert) } sort.Strings(keys) //line app/vmalert/web.qtpl:204 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:206 for _, ruleID := range keys { //line app/vmalert/web.qtpl:206 qw422016.N().S(` `) //line app/vmalert/web.qtpl:208 defaultAR := alertsByRule[ruleID][0] var labelKeys []string for k := range defaultAR.Labels { labelKeys = append(labelKeys, k) } sort.Strings(labelKeys) //line app/vmalert/web.qtpl:214 qw422016.N().S(`
alert: `) //line app/vmalert/web.qtpl:216 qw422016.E().S(defaultAR.Name) //line app/vmalert/web.qtpl:216 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:216 qw422016.N().D(len(alertsByRule[ruleID])) //line app/vmalert/web.qtpl:216 qw422016.N().S(`) | Source
expr:
`)
//line app/vmalert/web.qtpl:219
				qw422016.E().S(defaultAR.Expression)
//line app/vmalert/web.qtpl:219
				qw422016.N().S(`
`) //line app/vmalert/web.qtpl:231 for _, ar := range alertsByRule[ruleID] { //line app/vmalert/web.qtpl:231 qw422016.N().S(` `) //line app/vmalert/web.qtpl:249 } //line app/vmalert/web.qtpl:249 qw422016.N().S(`
Labels State Active at Value Link
`) //line app/vmalert/web.qtpl:234 for _, k := range labelKeys { //line app/vmalert/web.qtpl:234 qw422016.N().S(` `) //line app/vmalert/web.qtpl:235 qw422016.E().S(k) //line app/vmalert/web.qtpl:235 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:235 qw422016.E().S(ar.Labels[k]) //line app/vmalert/web.qtpl:235 qw422016.N().S(` `) //line app/vmalert/web.qtpl:236 } //line app/vmalert/web.qtpl:236 qw422016.N().S(` `) //line app/vmalert/web.qtpl:238 streambadgeState(qw422016, ar.State) //line app/vmalert/web.qtpl:238 qw422016.N().S(` `) //line app/vmalert/web.qtpl:240 qw422016.E().S(ar.ActiveAt.Format("2006-01-02T15:04:05Z07:00")) //line app/vmalert/web.qtpl:240 qw422016.N().S(` `) //line app/vmalert/web.qtpl:241 if ar.Restored { //line app/vmalert/web.qtpl:241 streambadgeRestored(qw422016) //line app/vmalert/web.qtpl:241 } //line app/vmalert/web.qtpl:241 qw422016.N().S(` `) //line app/vmalert/web.qtpl:242 if ar.Stabilizing { //line app/vmalert/web.qtpl:242 streambadgeStabilizing(qw422016) //line app/vmalert/web.qtpl:242 } //line app/vmalert/web.qtpl:242 qw422016.N().S(` `) //line app/vmalert/web.qtpl:244 qw422016.E().S(ar.Value) //line app/vmalert/web.qtpl:244 qw422016.N().S(` Details
`) //line app/vmalert/web.qtpl:252 } //line app/vmalert/web.qtpl:252 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:255 } //line app/vmalert/web.qtpl:255 qw422016.N().S(` `) //line app/vmalert/web.qtpl:257 } else { //line app/vmalert/web.qtpl:257 qw422016.N().S(`

No active alerts...

`) //line app/vmalert/web.qtpl:261 } //line app/vmalert/web.qtpl:261 qw422016.N().S(` `) //line app/vmalert/web.qtpl:263 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:263 qw422016.N().S(` `) //line app/vmalert/web.qtpl:265 } //line app/vmalert/web.qtpl:265 func WriteListAlerts(qq422016 qtio422016.Writer, r *http.Request, groupAlerts []groupAlerts) { //line app/vmalert/web.qtpl:265 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:265 StreamListAlerts(qw422016, r, groupAlerts) //line app/vmalert/web.qtpl:265 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:265 } //line app/vmalert/web.qtpl:265 func ListAlerts(r *http.Request, groupAlerts []groupAlerts) string { //line app/vmalert/web.qtpl:265 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:265 WriteListAlerts(qb422016, r, groupAlerts) //line app/vmalert/web.qtpl:265 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:265 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:265 return qs422016 //line app/vmalert/web.qtpl:265 } //line app/vmalert/web.qtpl:267 func StreamListTargets(qw422016 *qt422016.Writer, r *http.Request, targets map[notifier.TargetType][]notifier.Target) { //line app/vmalert/web.qtpl:267 qw422016.N().S(` `) //line app/vmalert/web.qtpl:268 tpl.StreamHeader(qw422016, r, navItems, "Notifiers", getLastConfigError()) //line app/vmalert/web.qtpl:268 qw422016.N().S(` `) //line app/vmalert/web.qtpl:269 if len(targets) > 0 { //line app/vmalert/web.qtpl:269 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:274 var keys []string for key := range targets { keys = append(keys, string(key)) } sort.Strings(keys) //line app/vmalert/web.qtpl:279 qw422016.N().S(` `) //line app/vmalert/web.qtpl:281 for i := range keys { //line app/vmalert/web.qtpl:281 qw422016.N().S(` `) //line app/vmalert/web.qtpl:282 typeK, ns := keys[i], targets[notifier.TargetType(keys[i])] count := len(ns) //line app/vmalert/web.qtpl:284 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:287 qw422016.E().S(typeK) //line app/vmalert/web.qtpl:287 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:287 qw422016.N().D(count) //line app/vmalert/web.qtpl:287 qw422016.N().S(`)
`) //line app/vmalert/web.qtpl:298 for _, n := range ns { //line app/vmalert/web.qtpl:298 qw422016.N().S(` `) //line app/vmalert/web.qtpl:307 } //line app/vmalert/web.qtpl:307 qw422016.N().S(`
Labels Address
`) //line app/vmalert/web.qtpl:301 for _, l := range n.Labels.GetLabels() { //line app/vmalert/web.qtpl:301 qw422016.N().S(` `) //line app/vmalert/web.qtpl:302 qw422016.E().S(l.Name) //line app/vmalert/web.qtpl:302 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:302 qw422016.E().S(l.Value) //line app/vmalert/web.qtpl:302 qw422016.N().S(` `) //line app/vmalert/web.qtpl:303 } //line app/vmalert/web.qtpl:303 qw422016.N().S(` `) //line app/vmalert/web.qtpl:305 qw422016.E().S(n.Notifier.Addr()) //line app/vmalert/web.qtpl:305 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:311 } //line app/vmalert/web.qtpl:311 qw422016.N().S(` `) //line app/vmalert/web.qtpl:313 } else { //line app/vmalert/web.qtpl:313 qw422016.N().S(`

No targets...

`) //line app/vmalert/web.qtpl:317 } //line app/vmalert/web.qtpl:317 qw422016.N().S(` `) //line app/vmalert/web.qtpl:319 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:319 qw422016.N().S(` `) //line app/vmalert/web.qtpl:321 } //line app/vmalert/web.qtpl:321 func WriteListTargets(qq422016 qtio422016.Writer, r *http.Request, targets map[notifier.TargetType][]notifier.Target) { //line app/vmalert/web.qtpl:321 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:321 StreamListTargets(qw422016, r, targets) //line app/vmalert/web.qtpl:321 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:321 } //line app/vmalert/web.qtpl:321 func ListTargets(r *http.Request, targets map[notifier.TargetType][]notifier.Target) string { //line app/vmalert/web.qtpl:321 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:321 WriteListTargets(qb422016, r, targets) //line app/vmalert/web.qtpl:321 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:321 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:321 return qs422016 //line app/vmalert/web.qtpl:321 } //line app/vmalert/web.qtpl:323 func StreamAlert(qw422016 *qt422016.Writer, r *http.Request, alert *apiAlert) { //line app/vmalert/web.qtpl:323 qw422016.N().S(` `) //line app/vmalert/web.qtpl:324 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:324 qw422016.N().S(` `) //line app/vmalert/web.qtpl:325 tpl.StreamHeader(qw422016, r, navItems, "", getLastConfigError()) //line app/vmalert/web.qtpl:325 qw422016.N().S(` `) //line app/vmalert/web.qtpl:327 var labelKeys []string for k := range alert.Labels { labelKeys = append(labelKeys, k) } sort.Strings(labelKeys) var annotationKeys []string for k := range alert.Annotations { annotationKeys = append(annotationKeys, k) } sort.Strings(annotationKeys) //line app/vmalert/web.qtpl:338 qw422016.N().S(`
Alert: `) //line app/vmalert/web.qtpl:339 qw422016.E().S(alert.Name) //line app/vmalert/web.qtpl:339 qw422016.N().S(``) //line app/vmalert/web.qtpl:339 qw422016.E().S(alert.State) //line app/vmalert/web.qtpl:339 qw422016.N().S(`
Active at
`) //line app/vmalert/web.qtpl:346 qw422016.E().S(alert.ActiveAt.Format("2006-01-02T15:04:05Z07:00")) //line app/vmalert/web.qtpl:346 qw422016.N().S(`
Expr
`)
//line app/vmalert/web.qtpl:356
	qw422016.E().S(alert.Expression)
//line app/vmalert/web.qtpl:356
	qw422016.N().S(`
Labels
`) //line app/vmalert/web.qtpl:366 for _, k := range labelKeys { //line app/vmalert/web.qtpl:366 qw422016.N().S(` `) //line app/vmalert/web.qtpl:367 qw422016.E().S(k) //line app/vmalert/web.qtpl:367 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:367 qw422016.E().S(alert.Labels[k]) //line app/vmalert/web.qtpl:367 qw422016.N().S(` `) //line app/vmalert/web.qtpl:368 } //line app/vmalert/web.qtpl:368 qw422016.N().S(`
Annotations
`) //line app/vmalert/web.qtpl:378 for _, k := range annotationKeys { //line app/vmalert/web.qtpl:378 qw422016.N().S(` `) //line app/vmalert/web.qtpl:379 qw422016.E().S(k) //line app/vmalert/web.qtpl:379 qw422016.N().S(`:

`) //line app/vmalert/web.qtpl:380 qw422016.E().S(alert.Annotations[k]) //line app/vmalert/web.qtpl:380 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:381 } //line app/vmalert/web.qtpl:381 qw422016.N().S(`
Group
Source link
`) //line app/vmalert/web.qtpl:405 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:405 qw422016.N().S(` `) //line app/vmalert/web.qtpl:407 } //line app/vmalert/web.qtpl:407 func WriteAlert(qq422016 qtio422016.Writer, r *http.Request, alert *apiAlert) { //line app/vmalert/web.qtpl:407 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:407 StreamAlert(qw422016, r, alert) //line app/vmalert/web.qtpl:407 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:407 } //line app/vmalert/web.qtpl:407 func Alert(r *http.Request, alert *apiAlert) string { //line app/vmalert/web.qtpl:407 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:407 WriteAlert(qb422016, r, alert) //line app/vmalert/web.qtpl:407 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:407 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:407 return qs422016 //line app/vmalert/web.qtpl:407 } //line app/vmalert/web.qtpl:410 func StreamRuleDetails(qw422016 *qt422016.Writer, r *http.Request, rule apiRule) { //line app/vmalert/web.qtpl:410 qw422016.N().S(` `) //line app/vmalert/web.qtpl:411 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:411 qw422016.N().S(` `) //line app/vmalert/web.qtpl:412 tpl.StreamHeader(qw422016, r, navItems, "", getLastConfigError()) //line app/vmalert/web.qtpl:412 qw422016.N().S(` `) //line app/vmalert/web.qtpl:414 var labelKeys []string for k := range rule.Labels { labelKeys = append(labelKeys, k) } sort.Strings(labelKeys) var annotationKeys []string for k := range rule.Annotations { annotationKeys = append(annotationKeys, k) } sort.Strings(annotationKeys) var seriesFetchedEnabled bool var seriesFetchedWarning bool for _, u := range rule.Updates { if u.SeriesFetched != nil { seriesFetchedEnabled = true if *u.SeriesFetched == 0 && u.Samples == 0 { seriesFetchedWarning = true } } } //line app/vmalert/web.qtpl:437 qw422016.N().S(`
Rule: `) //line app/vmalert/web.qtpl:438 qw422016.E().S(rule.Name) //line app/vmalert/web.qtpl:438 qw422016.N().S(``) //line app/vmalert/web.qtpl:438 qw422016.E().S(rule.Health) //line app/vmalert/web.qtpl:438 qw422016.N().S(`
Expr
`)
//line app/vmalert/web.qtpl:445
	qw422016.E().S(rule.Query)
//line app/vmalert/web.qtpl:445
	qw422016.N().S(`
`) //line app/vmalert/web.qtpl:449 if rule.Type == "alerting" { //line app/vmalert/web.qtpl:449 qw422016.N().S(`
For
`) //line app/vmalert/web.qtpl:456 qw422016.E().V(rule.Duration) //line app/vmalert/web.qtpl:456 qw422016.N().S(` seconds
`) //line app/vmalert/web.qtpl:460 if rule.KeepFiringFor > 0 { //line app/vmalert/web.qtpl:460 qw422016.N().S(`
Keep firing for
`) //line app/vmalert/web.qtpl:467 qw422016.E().V(rule.KeepFiringFor) //line app/vmalert/web.qtpl:467 qw422016.N().S(` seconds
`) //line app/vmalert/web.qtpl:471 } //line app/vmalert/web.qtpl:471 qw422016.N().S(` `) //line app/vmalert/web.qtpl:472 } //line app/vmalert/web.qtpl:472 qw422016.N().S(`
Labels
`) //line app/vmalert/web.qtpl:479 for _, k := range labelKeys { //line app/vmalert/web.qtpl:479 qw422016.N().S(` `) //line app/vmalert/web.qtpl:480 qw422016.E().S(k) //line app/vmalert/web.qtpl:480 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:480 qw422016.E().S(rule.Labels[k]) //line app/vmalert/web.qtpl:480 qw422016.N().S(` `) //line app/vmalert/web.qtpl:481 } //line app/vmalert/web.qtpl:481 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:485 if rule.Type == "alerting" { //line app/vmalert/web.qtpl:485 qw422016.N().S(`
Annotations
`) //line app/vmalert/web.qtpl:492 for _, k := range annotationKeys { //line app/vmalert/web.qtpl:492 qw422016.N().S(` `) //line app/vmalert/web.qtpl:493 qw422016.E().S(k) //line app/vmalert/web.qtpl:493 qw422016.N().S(`:

`) //line app/vmalert/web.qtpl:494 qw422016.E().S(rule.Annotations[k]) //line app/vmalert/web.qtpl:494 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:495 } //line app/vmalert/web.qtpl:495 qw422016.N().S(`
Debug
`) //line app/vmalert/web.qtpl:505 qw422016.E().V(rule.Debug) //line app/vmalert/web.qtpl:505 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:509 } //line app/vmalert/web.qtpl:509 qw422016.N().S(`
Group

`) //line app/vmalert/web.qtpl:522 if seriesFetchedWarning { //line app/vmalert/web.qtpl:522 qw422016.N().S(` `) //line app/vmalert/web.qtpl:534 } //line app/vmalert/web.qtpl:534 qw422016.N().S(`
Last `) //line app/vmalert/web.qtpl:535 qw422016.N().D(len(rule.Updates)) //line app/vmalert/web.qtpl:535 qw422016.N().S(`/`) //line app/vmalert/web.qtpl:535 qw422016.N().D(rule.MaxUpdates) //line app/vmalert/web.qtpl:535 qw422016.N().S(` updates:
`) //line app/vmalert/web.qtpl:541 if seriesFetchedEnabled { //line app/vmalert/web.qtpl:541 qw422016.N().S(``) //line app/vmalert/web.qtpl:541 } //line app/vmalert/web.qtpl:541 qw422016.N().S(` `) //line app/vmalert/web.qtpl:549 for _, u := range rule.Updates { //line app/vmalert/web.qtpl:549 qw422016.N().S(` `) //line app/vmalert/web.qtpl:555 if seriesFetchedEnabled { //line app/vmalert/web.qtpl:555 qw422016.N().S(``) //line app/vmalert/web.qtpl:555 } //line app/vmalert/web.qtpl:555 qw422016.N().S(` `) //line app/vmalert/web.qtpl:563 if u.Err != nil { //line app/vmalert/web.qtpl:563 qw422016.N().S(` `) //line app/vmalert/web.qtpl:569 } //line app/vmalert/web.qtpl:569 qw422016.N().S(` `) //line app/vmalert/web.qtpl:570 } //line app/vmalert/web.qtpl:570 qw422016.N().S(` `) //line app/vmalert/web.qtpl:572 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:572 qw422016.N().S(` `) //line app/vmalert/web.qtpl:573 } //line app/vmalert/web.qtpl:573 func WriteRuleDetails(qq422016 qtio422016.Writer, r *http.Request, rule apiRule) { //line app/vmalert/web.qtpl:573 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:573 StreamRuleDetails(qw422016, r, rule) //line app/vmalert/web.qtpl:573 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:573 } //line app/vmalert/web.qtpl:573 func RuleDetails(r *http.Request, rule apiRule) string { //line app/vmalert/web.qtpl:573 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:573 WriteRuleDetails(qb422016, r, rule) //line app/vmalert/web.qtpl:573 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:573 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:573 return qs422016 //line app/vmalert/web.qtpl:573 } //line app/vmalert/web.qtpl:577 func streambadgeState(qw422016 *qt422016.Writer, state string) { //line app/vmalert/web.qtpl:577 qw422016.N().S(` `) //line app/vmalert/web.qtpl:579 badgeClass := "bg-warning text-dark" if state == "firing" { badgeClass = "bg-danger" } //line app/vmalert/web.qtpl:583 qw422016.N().S(` `) //line app/vmalert/web.qtpl:584 qw422016.E().S(state) //line app/vmalert/web.qtpl:584 qw422016.N().S(` `) //line app/vmalert/web.qtpl:585 } //line app/vmalert/web.qtpl:585 func writebadgeState(qq422016 qtio422016.Writer, state string) { //line app/vmalert/web.qtpl:585 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:585 streambadgeState(qw422016, state) //line app/vmalert/web.qtpl:585 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:585 } //line app/vmalert/web.qtpl:585 func badgeState(state string) string { //line app/vmalert/web.qtpl:585 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:585 writebadgeState(qb422016, state) //line app/vmalert/web.qtpl:585 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:585 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:585 return qs422016 //line app/vmalert/web.qtpl:585 } //line app/vmalert/web.qtpl:587 func streambadgeRestored(qw422016 *qt422016.Writer) { //line app/vmalert/web.qtpl:587 qw422016.N().S(` restored `) //line app/vmalert/web.qtpl:589 } //line app/vmalert/web.qtpl:589 func writebadgeRestored(qq422016 qtio422016.Writer) { //line app/vmalert/web.qtpl:589 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:589 streambadgeRestored(qw422016) //line app/vmalert/web.qtpl:589 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:589 } //line app/vmalert/web.qtpl:589 func badgeRestored() string { //line app/vmalert/web.qtpl:589 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:589 writebadgeRestored(qb422016) //line app/vmalert/web.qtpl:589 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:589 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:589 return qs422016 //line app/vmalert/web.qtpl:589 } //line app/vmalert/web.qtpl:591 func streambadgeStabilizing(qw422016 *qt422016.Writer) { //line app/vmalert/web.qtpl:591 qw422016.N().S(` stabilizing `) //line app/vmalert/web.qtpl:593 } //line app/vmalert/web.qtpl:593 func writebadgeStabilizing(qq422016 qtio422016.Writer) { //line app/vmalert/web.qtpl:593 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:593 streambadgeStabilizing(qw422016) //line app/vmalert/web.qtpl:593 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:593 } //line app/vmalert/web.qtpl:593 func badgeStabilizing() string { //line app/vmalert/web.qtpl:593 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:593 writebadgeStabilizing(qb422016) //line app/vmalert/web.qtpl:593 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:593 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:593 return qs422016 //line app/vmalert/web.qtpl:593 } //line app/vmalert/web.qtpl:595 func streamseriesFetchedWarn(qw422016 *qt422016.Writer, r apiRule) { //line app/vmalert/web.qtpl:595 qw422016.N().S(` `) //line app/vmalert/web.qtpl:596 if isNoMatch(r) { //line app/vmalert/web.qtpl:596 qw422016.N().S(` `) //line app/vmalert/web.qtpl:605 } //line app/vmalert/web.qtpl:605 qw422016.N().S(` `) //line app/vmalert/web.qtpl:606 } //line app/vmalert/web.qtpl:606 func writeseriesFetchedWarn(qq422016 qtio422016.Writer, r apiRule) { //line app/vmalert/web.qtpl:606 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:606 streamseriesFetchedWarn(qw422016, r) //line app/vmalert/web.qtpl:606 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:606 } //line app/vmalert/web.qtpl:606 func seriesFetchedWarn(r apiRule) string { //line app/vmalert/web.qtpl:606 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:606 writeseriesFetchedWarn(qb422016, r) //line app/vmalert/web.qtpl:606 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:606 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:606 return qs422016 //line app/vmalert/web.qtpl:606 } //line app/vmalert/web.qtpl:609 func isNoMatch(r apiRule) bool { return r.LastSamples == 0 && r.LastSeriesFetched != nil && *r.LastSeriesFetched == 0 }
Updated at SamplesSeries fetchedDuration Executed at cURL
`) //line app/vmalert/web.qtpl:552 qw422016.E().S(u.Time.Format(time.RFC3339)) //line app/vmalert/web.qtpl:552 qw422016.N().S(` `) //line app/vmalert/web.qtpl:554 qw422016.N().D(u.Samples) //line app/vmalert/web.qtpl:554 qw422016.N().S(``) //line app/vmalert/web.qtpl:555 if u.SeriesFetched != nil { //line app/vmalert/web.qtpl:555 qw422016.N().D(*u.SeriesFetched) //line app/vmalert/web.qtpl:555 } //line app/vmalert/web.qtpl:555 qw422016.N().S(``) //line app/vmalert/web.qtpl:556 qw422016.N().FPrec(u.Duration.Seconds(), 3) //line app/vmalert/web.qtpl:556 qw422016.N().S(`s `) //line app/vmalert/web.qtpl:557 qw422016.E().S(u.At.Format(time.RFC3339)) //line app/vmalert/web.qtpl:557 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:566 qw422016.E().V(u.Err) //line app/vmalert/web.qtpl:566 qw422016.N().S(`