// 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") //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:20 p, doc := p[0], p[1] //line app/vmalert/web.qtpl:21 qw422016.N().S(` `) //line app/vmalert/web.qtpl:22 qw422016.E().S(p) //line app/vmalert/web.qtpl:22 qw422016.N().S(` - `) //line app/vmalert/web.qtpl:22 qw422016.E().S(doc) //line app/vmalert/web.qtpl:22 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:23 } //line app/vmalert/web.qtpl:23 qw422016.N().S(`

`) //line app/vmalert/web.qtpl:25 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:25 qw422016.N().S(` `) //line app/vmalert/web.qtpl:26 } //line app/vmalert/web.qtpl:26 func WriteWelcome(qq422016 qtio422016.Writer, r *http.Request) { //line app/vmalert/web.qtpl:26 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:26 StreamWelcome(qw422016, r) //line app/vmalert/web.qtpl:26 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:26 } //line app/vmalert/web.qtpl:26 func Welcome(r *http.Request) string { //line app/vmalert/web.qtpl:26 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:26 WriteWelcome(qb422016, r) //line app/vmalert/web.qtpl:26 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:26 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:26 return qs422016 //line app/vmalert/web.qtpl:26 } //line app/vmalert/web.qtpl:28 func StreamListGroups(qw422016 *qt422016.Writer, r *http.Request, groups []APIGroup) { //line app/vmalert/web.qtpl:28 qw422016.N().S(` `) //line app/vmalert/web.qtpl:29 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:29 qw422016.N().S(` `) //line app/vmalert/web.qtpl:30 tpl.StreamHeader(qw422016, r, navItems, "Groups") //line app/vmalert/web.qtpl:30 qw422016.N().S(` `) //line app/vmalert/web.qtpl:31 if len(groups) > 0 { //line app/vmalert/web.qtpl:31 qw422016.N().S(` `) //line app/vmalert/web.qtpl:33 rOk := make(map[string]int) rNotOk := make(map[string]int) for _, g := range groups { for _, r := range g.Rules { if r.LastError != "" { rNotOk[g.Name]++ } else { rOk[g.Name]++ } } } //line app/vmalert/web.qtpl:44 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:47 for _, g := range groups { //line app/vmalert/web.qtpl:47 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:50 qw422016.E().S(g.Name) //line app/vmalert/web.qtpl:50 if g.Type != "prometheus" { //line app/vmalert/web.qtpl:50 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:50 qw422016.E().S(g.Type) //line app/vmalert/web.qtpl:50 qw422016.N().S(`)`) //line app/vmalert/web.qtpl:50 } //line app/vmalert/web.qtpl:50 qw422016.N().S(` (every `) //line app/vmalert/web.qtpl:50 qw422016.N().FPrec(g.Interval, 0) //line app/vmalert/web.qtpl:50 qw422016.N().S(`s) `) //line app/vmalert/web.qtpl:51 if rNotOk[g.Name] > 0 { //line app/vmalert/web.qtpl:51 qw422016.N().S(``) //line app/vmalert/web.qtpl:51 qw422016.N().D(rNotOk[g.Name]) //line app/vmalert/web.qtpl:51 qw422016.N().S(` `) //line app/vmalert/web.qtpl:51 } //line app/vmalert/web.qtpl:51 qw422016.N().S(` `) //line app/vmalert/web.qtpl:52 qw422016.N().D(rOk[g.Name]) //line app/vmalert/web.qtpl:52 qw422016.N().S(`

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

`) //line app/vmalert/web.qtpl:54 if len(g.Params) > 0 { //line app/vmalert/web.qtpl:54 qw422016.N().S(`
Extra params `) //line app/vmalert/web.qtpl:56 for _, param := range g.Params { //line app/vmalert/web.qtpl:56 qw422016.N().S(` `) //line app/vmalert/web.qtpl:57 qw422016.E().S(param) //line app/vmalert/web.qtpl:57 qw422016.N().S(` `) //line app/vmalert/web.qtpl:58 } //line app/vmalert/web.qtpl:58 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:60 } //line app/vmalert/web.qtpl:60 qw422016.N().S(` `) //line app/vmalert/web.qtpl:61 if len(g.Headers) > 0 { //line app/vmalert/web.qtpl:61 qw422016.N().S(`
Extra headers `) //line app/vmalert/web.qtpl:63 for _, header := range g.Headers { //line app/vmalert/web.qtpl:63 qw422016.N().S(` `) //line app/vmalert/web.qtpl:64 qw422016.E().S(header) //line app/vmalert/web.qtpl:64 qw422016.N().S(` `) //line app/vmalert/web.qtpl:65 } //line app/vmalert/web.qtpl:65 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:67 } //line app/vmalert/web.qtpl:67 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:79 for _, r := range g.Rules { //line app/vmalert/web.qtpl:79 qw422016.N().S(` `) //line app/vmalert/web.qtpl:113 } //line app/vmalert/web.qtpl:113 qw422016.N().S(`
Rule Samples Updated
`) //line app/vmalert/web.qtpl:84 if r.Type == "alerting" { //line app/vmalert/web.qtpl:84 qw422016.N().S(` alert: `) //line app/vmalert/web.qtpl:85 qw422016.E().S(r.Name) //line app/vmalert/web.qtpl:85 qw422016.N().S(` (for: `) //line app/vmalert/web.qtpl:85 qw422016.E().V(r.Duration) //line app/vmalert/web.qtpl:85 qw422016.N().S(` seconds) `) //line app/vmalert/web.qtpl:86 } else { //line app/vmalert/web.qtpl:86 qw422016.N().S(` record: `) //line app/vmalert/web.qtpl:87 qw422016.E().S(r.Name) //line app/vmalert/web.qtpl:87 qw422016.N().S(` `) //line app/vmalert/web.qtpl:88 } //line app/vmalert/web.qtpl:88 qw422016.N().S(` | Details
`)
//line app/vmalert/web.qtpl:92
				qw422016.E().S(r.Query)
//line app/vmalert/web.qtpl:92
				qw422016.N().S(`
`) //line app/vmalert/web.qtpl:95 if len(r.Labels) > 0 { //line app/vmalert/web.qtpl:95 qw422016.N().S(` Labels:`) //line app/vmalert/web.qtpl:95 } //line app/vmalert/web.qtpl:95 qw422016.N().S(` `) //line app/vmalert/web.qtpl:96 for k, v := range r.Labels { //line app/vmalert/web.qtpl:96 qw422016.N().S(` `) //line app/vmalert/web.qtpl:97 qw422016.E().S(k) //line app/vmalert/web.qtpl:97 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:97 qw422016.E().S(v) //line app/vmalert/web.qtpl:97 qw422016.N().S(` `) //line app/vmalert/web.qtpl:98 } //line app/vmalert/web.qtpl:98 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:100 if r.LastError != "" { //line app/vmalert/web.qtpl:100 qw422016.N().S(`
Error:
`) //line app/vmalert/web.qtpl:104 qw422016.E().S(r.LastError) //line app/vmalert/web.qtpl:104 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:107 } //line app/vmalert/web.qtpl:107 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:110 qw422016.N().D(r.LastSamples) //line app/vmalert/web.qtpl:110 qw422016.N().S(` `) //line app/vmalert/web.qtpl:111 qw422016.N().FPrec(time.Since(r.LastEvaluation).Seconds(), 3) //line app/vmalert/web.qtpl:111 qw422016.N().S(`s ago
`) //line app/vmalert/web.qtpl:117 } //line app/vmalert/web.qtpl:117 qw422016.N().S(` `) //line app/vmalert/web.qtpl:119 } else { //line app/vmalert/web.qtpl:119 qw422016.N().S(`

No groups...

`) //line app/vmalert/web.qtpl:123 } //line app/vmalert/web.qtpl:123 qw422016.N().S(` `) //line app/vmalert/web.qtpl:125 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:125 qw422016.N().S(` `) //line app/vmalert/web.qtpl:127 } //line app/vmalert/web.qtpl:127 func WriteListGroups(qq422016 qtio422016.Writer, r *http.Request, groups []APIGroup) { //line app/vmalert/web.qtpl:127 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:127 StreamListGroups(qw422016, r, groups) //line app/vmalert/web.qtpl:127 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:127 } //line app/vmalert/web.qtpl:127 func ListGroups(r *http.Request, groups []APIGroup) string { //line app/vmalert/web.qtpl:127 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:127 WriteListGroups(qb422016, r, groups) //line app/vmalert/web.qtpl:127 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:127 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:127 return qs422016 //line app/vmalert/web.qtpl:127 } //line app/vmalert/web.qtpl:130 func StreamListAlerts(qw422016 *qt422016.Writer, r *http.Request, groupAlerts []GroupAlerts) { //line app/vmalert/web.qtpl:130 qw422016.N().S(` `) //line app/vmalert/web.qtpl:131 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:131 qw422016.N().S(` `) //line app/vmalert/web.qtpl:132 tpl.StreamHeader(qw422016, r, navItems, "Alerts") //line app/vmalert/web.qtpl:132 qw422016.N().S(` `) //line app/vmalert/web.qtpl:133 if len(groupAlerts) > 0 { //line app/vmalert/web.qtpl:133 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:136 for _, ga := range groupAlerts { //line app/vmalert/web.qtpl:136 qw422016.N().S(` `) //line app/vmalert/web.qtpl:137 g := ga.Group //line app/vmalert/web.qtpl:137 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:140 qw422016.E().S(g.Name) //line app/vmalert/web.qtpl:140 if g.Type != "prometheus" { //line app/vmalert/web.qtpl:140 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:140 qw422016.E().S(g.Type) //line app/vmalert/web.qtpl:140 qw422016.N().S(`)`) //line app/vmalert/web.qtpl:140 } //line app/vmalert/web.qtpl:140 qw422016.N().S(` `) //line app/vmalert/web.qtpl:141 qw422016.N().D(len(ga.Alerts)) //line app/vmalert/web.qtpl:141 qw422016.N().S(`

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

`) //line app/vmalert/web.qtpl:146 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:155 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:157 for _, ruleID := range keys { //line app/vmalert/web.qtpl:157 qw422016.N().S(` `) //line app/vmalert/web.qtpl:159 defaultAR := alertsByRule[ruleID][0] var labelKeys []string for k := range defaultAR.Labels { labelKeys = append(labelKeys, k) } sort.Strings(labelKeys) //line app/vmalert/web.qtpl:165 qw422016.N().S(`
alert: `) //line app/vmalert/web.qtpl:167 qw422016.E().S(defaultAR.Name) //line app/vmalert/web.qtpl:167 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:167 qw422016.N().D(len(alertsByRule[ruleID])) //line app/vmalert/web.qtpl:167 qw422016.N().S(`) | Source
expr:
`)
//line app/vmalert/web.qtpl:170
				qw422016.E().S(defaultAR.Expression)
//line app/vmalert/web.qtpl:170
				qw422016.N().S(`
`) //line app/vmalert/web.qtpl:182 for _, ar := range alertsByRule[ruleID] { //line app/vmalert/web.qtpl:182 qw422016.N().S(` `) //line app/vmalert/web.qtpl:199 } //line app/vmalert/web.qtpl:199 qw422016.N().S(`
Labels State Active at Value Link
`) //line app/vmalert/web.qtpl:185 for _, k := range labelKeys { //line app/vmalert/web.qtpl:185 qw422016.N().S(` `) //line app/vmalert/web.qtpl:186 qw422016.E().S(k) //line app/vmalert/web.qtpl:186 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:186 qw422016.E().S(ar.Labels[k]) //line app/vmalert/web.qtpl:186 qw422016.N().S(` `) //line app/vmalert/web.qtpl:187 } //line app/vmalert/web.qtpl:187 qw422016.N().S(` `) //line app/vmalert/web.qtpl:189 streambadgeState(qw422016, ar.State) //line app/vmalert/web.qtpl:189 qw422016.N().S(` `) //line app/vmalert/web.qtpl:191 qw422016.E().S(ar.ActiveAt.Format("2006-01-02T15:04:05Z07:00")) //line app/vmalert/web.qtpl:191 qw422016.N().S(` `) //line app/vmalert/web.qtpl:192 if ar.Restored { //line app/vmalert/web.qtpl:192 streambadgeRestored(qw422016) //line app/vmalert/web.qtpl:192 } //line app/vmalert/web.qtpl:192 qw422016.N().S(` `) //line app/vmalert/web.qtpl:194 qw422016.E().S(ar.Value) //line app/vmalert/web.qtpl:194 qw422016.N().S(` Details
`) //line app/vmalert/web.qtpl:202 } //line app/vmalert/web.qtpl:202 qw422016.N().S(`

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

No active alerts...

`) //line app/vmalert/web.qtpl:211 } //line app/vmalert/web.qtpl:211 qw422016.N().S(` `) //line app/vmalert/web.qtpl:213 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:213 qw422016.N().S(` `) //line app/vmalert/web.qtpl:215 } //line app/vmalert/web.qtpl:215 func WriteListAlerts(qq422016 qtio422016.Writer, r *http.Request, groupAlerts []GroupAlerts) { //line app/vmalert/web.qtpl:215 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:215 StreamListAlerts(qw422016, r, groupAlerts) //line app/vmalert/web.qtpl:215 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:215 } //line app/vmalert/web.qtpl:215 func ListAlerts(r *http.Request, groupAlerts []GroupAlerts) string { //line app/vmalert/web.qtpl:215 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:215 WriteListAlerts(qb422016, r, groupAlerts) //line app/vmalert/web.qtpl:215 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:215 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:215 return qs422016 //line app/vmalert/web.qtpl:215 } //line app/vmalert/web.qtpl:217 func StreamListTargets(qw422016 *qt422016.Writer, r *http.Request, targets map[notifier.TargetType][]notifier.Target) { //line app/vmalert/web.qtpl:217 qw422016.N().S(` `) //line app/vmalert/web.qtpl:218 tpl.StreamHeader(qw422016, r, navItems, "Notifiers") //line app/vmalert/web.qtpl:218 qw422016.N().S(` `) //line app/vmalert/web.qtpl:219 if len(targets) > 0 { //line app/vmalert/web.qtpl:219 qw422016.N().S(` Collapse All Expand All `) //line app/vmalert/web.qtpl:224 var keys []string for key := range targets { keys = append(keys, string(key)) } sort.Strings(keys) //line app/vmalert/web.qtpl:229 qw422016.N().S(` `) //line app/vmalert/web.qtpl:231 for i := range keys { //line app/vmalert/web.qtpl:231 qw422016.N().S(` `) //line app/vmalert/web.qtpl:232 typeK, ns := keys[i], targets[notifier.TargetType(keys[i])] count := len(ns) //line app/vmalert/web.qtpl:234 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:237 qw422016.E().S(typeK) //line app/vmalert/web.qtpl:237 qw422016.N().S(` (`) //line app/vmalert/web.qtpl:237 qw422016.N().D(count) //line app/vmalert/web.qtpl:237 qw422016.N().S(`)
`) //line app/vmalert/web.qtpl:248 for _, n := range ns { //line app/vmalert/web.qtpl:248 qw422016.N().S(` `) //line app/vmalert/web.qtpl:257 } //line app/vmalert/web.qtpl:257 qw422016.N().S(`
Labels Address
`) //line app/vmalert/web.qtpl:251 for _, l := range n.Labels { //line app/vmalert/web.qtpl:251 qw422016.N().S(` `) //line app/vmalert/web.qtpl:252 qw422016.E().S(l.Name) //line app/vmalert/web.qtpl:252 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:252 qw422016.E().S(l.Value) //line app/vmalert/web.qtpl:252 qw422016.N().S(` `) //line app/vmalert/web.qtpl:253 } //line app/vmalert/web.qtpl:253 qw422016.N().S(` `) //line app/vmalert/web.qtpl:255 qw422016.E().S(n.Notifier.Addr()) //line app/vmalert/web.qtpl:255 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:261 } //line app/vmalert/web.qtpl:261 qw422016.N().S(` `) //line app/vmalert/web.qtpl:263 } else { //line app/vmalert/web.qtpl:263 qw422016.N().S(`

No targets...

`) //line app/vmalert/web.qtpl:267 } //line app/vmalert/web.qtpl:267 qw422016.N().S(` `) //line app/vmalert/web.qtpl:269 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:269 qw422016.N().S(` `) //line app/vmalert/web.qtpl:271 } //line app/vmalert/web.qtpl:271 func WriteListTargets(qq422016 qtio422016.Writer, r *http.Request, targets map[notifier.TargetType][]notifier.Target) { //line app/vmalert/web.qtpl:271 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:271 StreamListTargets(qw422016, r, targets) //line app/vmalert/web.qtpl:271 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:271 } //line app/vmalert/web.qtpl:271 func ListTargets(r *http.Request, targets map[notifier.TargetType][]notifier.Target) string { //line app/vmalert/web.qtpl:271 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:271 WriteListTargets(qb422016, r, targets) //line app/vmalert/web.qtpl:271 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:271 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:271 return qs422016 //line app/vmalert/web.qtpl:271 } //line app/vmalert/web.qtpl:273 func StreamAlert(qw422016 *qt422016.Writer, r *http.Request, alert *APIAlert) { //line app/vmalert/web.qtpl:273 qw422016.N().S(` `) //line app/vmalert/web.qtpl:274 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:274 qw422016.N().S(` `) //line app/vmalert/web.qtpl:275 tpl.StreamHeader(qw422016, r, navItems, "") //line app/vmalert/web.qtpl:275 qw422016.N().S(` `) //line app/vmalert/web.qtpl:277 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:288 qw422016.N().S(`
Alert: `) //line app/vmalert/web.qtpl:289 qw422016.E().S(alert.Name) //line app/vmalert/web.qtpl:289 qw422016.N().S(``) //line app/vmalert/web.qtpl:289 qw422016.E().S(alert.State) //line app/vmalert/web.qtpl:289 qw422016.N().S(`
Active at
`) //line app/vmalert/web.qtpl:296 qw422016.E().S(alert.ActiveAt.Format("2006-01-02T15:04:05Z07:00")) //line app/vmalert/web.qtpl:296 qw422016.N().S(`
Expr
`)
//line app/vmalert/web.qtpl:306
	qw422016.E().S(alert.Expression)
//line app/vmalert/web.qtpl:306
	qw422016.N().S(`
Labels
`) //line app/vmalert/web.qtpl:316 for _, k := range labelKeys { //line app/vmalert/web.qtpl:316 qw422016.N().S(` `) //line app/vmalert/web.qtpl:317 qw422016.E().S(k) //line app/vmalert/web.qtpl:317 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:317 qw422016.E().S(alert.Labels[k]) //line app/vmalert/web.qtpl:317 qw422016.N().S(` `) //line app/vmalert/web.qtpl:318 } //line app/vmalert/web.qtpl:318 qw422016.N().S(`
Annotations
`) //line app/vmalert/web.qtpl:328 for _, k := range annotationKeys { //line app/vmalert/web.qtpl:328 qw422016.N().S(` `) //line app/vmalert/web.qtpl:329 qw422016.E().S(k) //line app/vmalert/web.qtpl:329 qw422016.N().S(`:

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

`) //line app/vmalert/web.qtpl:331 } //line app/vmalert/web.qtpl:331 qw422016.N().S(`
Group
Source link
`) //line app/vmalert/web.qtpl:355 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:355 qw422016.N().S(` `) //line app/vmalert/web.qtpl:357 } //line app/vmalert/web.qtpl:357 func WriteAlert(qq422016 qtio422016.Writer, r *http.Request, alert *APIAlert) { //line app/vmalert/web.qtpl:357 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:357 StreamAlert(qw422016, r, alert) //line app/vmalert/web.qtpl:357 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:357 } //line app/vmalert/web.qtpl:357 func Alert(r *http.Request, alert *APIAlert) string { //line app/vmalert/web.qtpl:357 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:357 WriteAlert(qb422016, r, alert) //line app/vmalert/web.qtpl:357 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:357 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:357 return qs422016 //line app/vmalert/web.qtpl:357 } //line app/vmalert/web.qtpl:360 func StreamRuleDetails(qw422016 *qt422016.Writer, r *http.Request, rule APIRule) { //line app/vmalert/web.qtpl:360 qw422016.N().S(` `) //line app/vmalert/web.qtpl:361 prefix := utils.Prefix(r.URL.Path) //line app/vmalert/web.qtpl:361 qw422016.N().S(` `) //line app/vmalert/web.qtpl:362 tpl.StreamHeader(qw422016, r, navItems, "") //line app/vmalert/web.qtpl:362 qw422016.N().S(` `) //line app/vmalert/web.qtpl:364 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) //line app/vmalert/web.qtpl:375 qw422016.N().S(`
Rule: `) //line app/vmalert/web.qtpl:376 qw422016.E().S(rule.Name) //line app/vmalert/web.qtpl:376 qw422016.N().S(``) //line app/vmalert/web.qtpl:376 qw422016.E().S(rule.Health) //line app/vmalert/web.qtpl:376 qw422016.N().S(`
Expr
`)
//line app/vmalert/web.qtpl:383
	qw422016.E().S(rule.Query)
//line app/vmalert/web.qtpl:383
	qw422016.N().S(`
For
`) //line app/vmalert/web.qtpl:393 qw422016.E().V(rule.Duration) //line app/vmalert/web.qtpl:393 qw422016.N().S(` seconds
Labels
`) //line app/vmalert/web.qtpl:403 for _, k := range labelKeys { //line app/vmalert/web.qtpl:403 qw422016.N().S(` `) //line app/vmalert/web.qtpl:404 qw422016.E().S(k) //line app/vmalert/web.qtpl:404 qw422016.N().S(`=`) //line app/vmalert/web.qtpl:404 qw422016.E().S(rule.Labels[k]) //line app/vmalert/web.qtpl:404 qw422016.N().S(` `) //line app/vmalert/web.qtpl:405 } //line app/vmalert/web.qtpl:405 qw422016.N().S(`
Annotations
`) //line app/vmalert/web.qtpl:415 for _, k := range annotationKeys { //line app/vmalert/web.qtpl:415 qw422016.N().S(` `) //line app/vmalert/web.qtpl:416 qw422016.E().S(k) //line app/vmalert/web.qtpl:416 qw422016.N().S(`:

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

`) //line app/vmalert/web.qtpl:418 } //line app/vmalert/web.qtpl:418 qw422016.N().S(`
Group

Last `) //line app/vmalert/web.qtpl:434 qw422016.N().D(len(rule.Updates)) //line app/vmalert/web.qtpl:434 qw422016.N().S(` updates:
`) //line app/vmalert/web.qtpl:447 for _, u := range rule.Updates { //line app/vmalert/web.qtpl:447 qw422016.N().S(` `) //line app/vmalert/web.qtpl:460 if u.err != nil { //line app/vmalert/web.qtpl:460 qw422016.N().S(` `) //line app/vmalert/web.qtpl:466 } //line app/vmalert/web.qtpl:466 qw422016.N().S(` `) //line app/vmalert/web.qtpl:467 } //line app/vmalert/web.qtpl:467 qw422016.N().S(` `) //line app/vmalert/web.qtpl:469 tpl.StreamFooter(qw422016, r) //line app/vmalert/web.qtpl:469 qw422016.N().S(` `) //line app/vmalert/web.qtpl:470 } //line app/vmalert/web.qtpl:470 func WriteRuleDetails(qq422016 qtio422016.Writer, r *http.Request, rule APIRule) { //line app/vmalert/web.qtpl:470 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:470 StreamRuleDetails(qw422016, r, rule) //line app/vmalert/web.qtpl:470 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:470 } //line app/vmalert/web.qtpl:470 func RuleDetails(r *http.Request, rule APIRule) string { //line app/vmalert/web.qtpl:470 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:470 WriteRuleDetails(qb422016, r, rule) //line app/vmalert/web.qtpl:470 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:470 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:470 return qs422016 //line app/vmalert/web.qtpl:470 } //line app/vmalert/web.qtpl:474 func streambadgeState(qw422016 *qt422016.Writer, state string) { //line app/vmalert/web.qtpl:474 qw422016.N().S(` `) //line app/vmalert/web.qtpl:476 badgeClass := "bg-warning text-dark" if state == "firing" { badgeClass = "bg-danger" } //line app/vmalert/web.qtpl:480 qw422016.N().S(` `) //line app/vmalert/web.qtpl:481 qw422016.E().S(state) //line app/vmalert/web.qtpl:481 qw422016.N().S(` `) //line app/vmalert/web.qtpl:482 } //line app/vmalert/web.qtpl:482 func writebadgeState(qq422016 qtio422016.Writer, state string) { //line app/vmalert/web.qtpl:482 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:482 streambadgeState(qw422016, state) //line app/vmalert/web.qtpl:482 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:482 } //line app/vmalert/web.qtpl:482 func badgeState(state string) string { //line app/vmalert/web.qtpl:482 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:482 writebadgeState(qb422016, state) //line app/vmalert/web.qtpl:482 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:482 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:482 return qs422016 //line app/vmalert/web.qtpl:482 } //line app/vmalert/web.qtpl:484 func streambadgeRestored(qw422016 *qt422016.Writer) { //line app/vmalert/web.qtpl:484 qw422016.N().S(` restored `) //line app/vmalert/web.qtpl:486 } //line app/vmalert/web.qtpl:486 func writebadgeRestored(qq422016 qtio422016.Writer) { //line app/vmalert/web.qtpl:486 qw422016 := qt422016.AcquireWriter(qq422016) //line app/vmalert/web.qtpl:486 streambadgeRestored(qw422016) //line app/vmalert/web.qtpl:486 qt422016.ReleaseWriter(qw422016) //line app/vmalert/web.qtpl:486 } //line app/vmalert/web.qtpl:486 func badgeRestored() string { //line app/vmalert/web.qtpl:486 qb422016 := qt422016.AcquireByteBuffer() //line app/vmalert/web.qtpl:486 writebadgeRestored(qb422016) //line app/vmalert/web.qtpl:486 qs422016 := string(qb422016.B) //line app/vmalert/web.qtpl:486 qt422016.ReleaseByteBuffer(qb422016) //line app/vmalert/web.qtpl:486 return qs422016 //line app/vmalert/web.qtpl:486 }
Updated at Samples Duration Executed at cURL
`) //line app/vmalert/web.qtpl:450 qw422016.E().S(u.time.Format(time.RFC3339)) //line app/vmalert/web.qtpl:450 qw422016.N().S(` `) //line app/vmalert/web.qtpl:452 qw422016.N().D(u.samples) //line app/vmalert/web.qtpl:452 qw422016.N().S(` `) //line app/vmalert/web.qtpl:453 qw422016.N().FPrec(u.duration.Seconds(), 3) //line app/vmalert/web.qtpl:453 qw422016.N().S(`s `) //line app/vmalert/web.qtpl:454 qw422016.E().S(u.at.Format(time.RFC3339)) //line app/vmalert/web.qtpl:454 qw422016.N().S(`
`) //line app/vmalert/web.qtpl:463 qw422016.E().V(u.err) //line app/vmalert/web.qtpl:463 qw422016.N().S(`