2021-09-07 21:39:22 +02:00
// Code generated by qtc from "web.qtpl". DO NOT EDIT.
// See https://github.com/valyala/quicktemplate for details.
2022-05-04 19:26:38 +02:00
//line app/vmalert/web.qtpl:1
2021-09-07 21:39:22 +02:00
package main
2022-05-04 19:26:38 +02:00
//line app/vmalert/web.qtpl:3
2021-09-07 21:39:22 +02:00
import (
2022-07-06 10:46:01 +02:00
"net/http"
2021-09-07 21:39:22 +02:00
"sort"
"time"
2022-02-02 13:11:41 +01:00
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/notifier"
2021-09-07 21:39:22 +02:00
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/tpl"
2022-07-08 10:26:13 +02:00
"github.com/VictoriaMetrics/VictoriaMetrics/app/vmalert/utils"
2021-09-07 21:39:22 +02:00
)
2022-07-06 10:46:01 +02:00
//line app/vmalert/web.qtpl:14
2021-09-07 21:39:22 +02:00
import (
qtio422016 "io"
qt422016 "github.com/valyala/quicktemplate"
)
2022-07-06 10:46:01 +02:00
//line app/vmalert/web.qtpl:14
2021-09-07 21:39:22 +02:00
var (
_ = qtio422016 . Copy
_ = qt422016 . AcquireByteBuffer
)
2022-05-04 19:26:38 +02:00
//line app/vmalert/web.qtpl:14
2022-07-06 10:46:01 +02:00
func StreamWelcome ( qw422016 * qt422016 . Writer , r * http . Request ) {
2022-05-04 19:26:38 +02:00
//line app/vmalert/web.qtpl:14
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-07-06 10:46:01 +02:00
` )
//line app/vmalert/web.qtpl:15
tpl . StreamHeader ( qw422016 , r , navItems , "vmalert" )
//line app/vmalert/web.qtpl:15
qw422016 . N ( ) . S ( `
2021-09-07 21:39:22 +02:00
< p >
API : < br >
` )
2022-07-06 10:46:01 +02:00
//line app/vmalert/web.qtpl:18
2021-09-21 13:41:01 +02:00
for _ , p := range apiLinks {
2022-07-06 10:46:01 +02:00
//line app/vmalert/web.qtpl:18
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:19
2021-09-07 21:39:22 +02:00
p , doc := p [ 0 ] , p [ 1 ]
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:19
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-12-09 20:43:54 +01:00
< a href = " ` )
//line app/vmalert/web.qtpl:20
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( p )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:20
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:20
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( p )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:20
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` </a> - ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:20
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( doc )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:20
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < br / >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:21
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//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 : < br >
` )
//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 ( `
< a href = " ` )
//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 ( p )
//line app/vmalert/web.qtpl:26
qw422016 . N ( ) . S ( ` </a> - ` )
//line app/vmalert/web.qtpl:26
qw422016 . E ( ) . S ( doc )
//line app/vmalert/web.qtpl:26
qw422016 . N ( ) . S ( ` < br / >
` )
//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
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / p >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:30
2022-07-06 10:46:01 +02:00
tpl . StreamFooter ( qw422016 , r )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:30
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2022-07-06 10:46:01 +02:00
func WriteWelcome ( qq422016 qtio422016 . Writer , r * http . Request ) {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2022-07-06 10:46:01 +02:00
StreamWelcome ( qw422016 , r )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2022-07-06 10:46:01 +02:00
func Welcome ( r * http . Request ) string {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2022-07-06 10:46:01 +02:00
WriteWelcome ( qb422016 , r )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
qs422016 := string ( qb422016 . B )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
return qs422016
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:31
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:33
2022-07-06 10:46:01 +02:00
func StreamListGroups ( qw422016 * qt422016 . Writer , r * http . Request , groups [ ] APIGroup ) {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:33
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:34
2022-09-14 14:04:24 +02:00
prefix := utils . Prefix ( r . URL . Path )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:34
2022-07-06 10:46:01 +02:00
qw422016 . N ( ) . S ( `
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:35
2022-09-14 14:04:24 +02:00
tpl . StreamHeader ( qw422016 , r , navItems , "Groups" )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:35
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:36
2022-09-14 14:04:24 +02:00
if len ( groups ) > 0 {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:36
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:38
2021-09-07 21:39:22 +02:00
rOk := make ( map [ string ] int )
rNotOk := make ( map [ string ] int )
for _ , g := range groups {
2022-03-15 12:54:53 +01:00
for _ , r := range g . Rules {
2021-09-07 21:39:22 +02:00
if r . LastError != "" {
2023-02-08 14:34:03 +01:00
rNotOk [ g . ID ] ++
2021-09-07 21:39:22 +02:00
} else {
2023-02-08 14:34:03 +01:00
rOk [ g . ID ] ++
2021-09-07 21:39:22 +02:00
}
}
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:49
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< a class = "btn btn-primary" role = "button" onclick = "collapseAll()" > Collapse All < / a >
< a class = "btn btn-primary" role = "button" onclick = "expandAll()" > Expand All < / a >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:52
2021-09-07 21:39:22 +02:00
for _ , g := range groups {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:52
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< div class = " group - heading ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:53
2023-02-08 14:34:03 +01:00
if rNotOk [ g . ID ] > 0 {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:53
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` alert-danger ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:53
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:53
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " data-bs-target="rules- ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:53
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:53
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " >
< span class = "anchor" id = " group - ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:54
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:54
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " > < / span >
< a href = " # group - ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . Name )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
if g . Type != "prometheus" {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` ( ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . Type )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` ) ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` (every ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2022-03-15 12:54:53 +01:00
qw422016 . N ( ) . FPrec ( g . Interval , 0 )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:55
2023-03-27 17:51:33 +02:00
qw422016 . N ( ) . S ( ` s ) # < / a >
2021-09-07 21:39:22 +02:00
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:56
2023-02-08 14:34:03 +01:00
if rNotOk [ g . ID ] > 0 {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:56
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( ` <span class="badge bg-danger" title="Number of rules with status Error"> ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:56
2023-02-08 14:34:03 +01:00
qw422016 . N ( ) . D ( rNotOk [ g . ID ] )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:56
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` </span> ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:56
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:56
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< span class = "badge bg-success" title = "Number of rules withs status Ok" > ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:57
2023-02-08 14:34:03 +01:00
qw422016 . N ( ) . D ( rOk [ g . ID ] )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:57
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / span >
< p class = "fs-6 fw-lighter" > ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:58
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . File )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:58
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / p >
2021-09-13 13:11:38 +02:00
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:59
2021-12-02 13:45:08 +01:00
if len ( g . Params ) > 0 {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:59
2021-09-13 13:11:38 +02:00
qw422016 . N ( ) . S ( `
2021-12-02 13:45:08 +01:00
< div class = "fs-6 fw-lighter" > Extra params
2021-09-13 13:11:38 +02:00
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:61
2021-12-02 13:45:08 +01:00
for _ , param := range g . Params {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:61
2021-09-13 13:11:38 +02:00
qw422016 . N ( ) . S ( `
< span class = "float-left badge bg-primary" > ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:62
2021-12-02 13:45:08 +01:00
qw422016 . E ( ) . S ( param )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:62
2021-09-13 13:11:38 +02:00
qw422016 . N ( ) . S ( ` < / span >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:63
2021-09-13 13:11:38 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:63
2021-09-13 13:11:38 +02:00
qw422016 . N ( ) . S ( `
< / div >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:65
2021-09-13 13:11:38 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:65
2021-09-13 13:11:38 +02:00
qw422016 . N ( ) . S ( `
2022-07-21 15:59:55 +02:00
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:66
2022-07-21 15:59:55 +02:00
if len ( g . Headers ) > 0 {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:66
2022-07-21 15:59:55 +02:00
qw422016 . N ( ) . S ( `
< div class = "fs-6 fw-lighter" > Extra headers
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:68
2022-07-21 15:59:55 +02:00
for _ , header := range g . Headers {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:68
2022-07-21 15:59:55 +02:00
qw422016 . N ( ) . S ( `
< span class = "float-left badge bg-primary" > ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:69
2022-07-21 15:59:55 +02:00
qw422016 . E ( ) . S ( header )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:69
2022-07-21 15:59:55 +02:00
qw422016 . N ( ) . S ( ` < / span >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:70
2022-07-21 15:59:55 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:70
2022-07-21 15:59:55 +02:00
qw422016 . N ( ) . S ( `
< / div >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:72
2022-07-21 15:59:55 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:72
2022-07-21 15:59:55 +02:00
qw422016 . N ( ) . S ( `
2021-09-07 21:39:22 +02:00
< / div >
< div class = "collapse" id = " rules - ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:74
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:74
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " >
< table class = "table table-striped table-hover table-sm" >
< thead >
< tr >
2022-05-04 18:02:18 +02:00
< th scope = "col" style = "width: 60%" > Rule < / th >
< th scope = "col" style = "width: 20%" class = "text-center" title = "How many samples were produced by the rule" > Samples < / th >
< th scope = "col" style = "width: 20%" class = "text-center" title = "How many seconds ago rule was executed" > Updated < / th >
2021-09-07 21:39:22 +02:00
< / tr >
< / thead >
< tbody >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:84
2022-03-15 12:54:53 +01:00
for _ , r := range g . Rules {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:84
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< tr ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:85
2022-03-15 12:54:53 +01:00
if r . LastError != "" {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:85
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` class="alert-danger" ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:85
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:85
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` >
< td >
2022-05-04 18:02:18 +02:00
< div class = "row" >
< div class = "col-12 mb-2" >
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:89
2022-03-15 12:54:53 +01:00
if r . Type == "alerting" {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:89
2022-03-15 12:54:53 +01:00
qw422016 . N ( ) . S ( `
2022-05-04 18:02:18 +02:00
< b > alert : < / b > ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:90
2022-05-04 18:02:18 +02:00
qw422016 . E ( ) . S ( r . Name )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:90
2022-05-04 18:02:18 +02:00
qw422016 . N ( ) . S ( ` (for: ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:90
2022-03-15 12:54:53 +01:00
qw422016 . E ( ) . V ( r . Duration )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:90
2022-05-04 18:02:18 +02:00
qw422016 . N ( ) . S ( ` seconds )
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:91
2022-03-15 12:54:53 +01:00
} else {
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:91
2022-03-15 12:54:53 +01:00
qw422016 . N ( ) . S ( `
2022-05-04 18:02:18 +02:00
< b > record : < / b > ` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:92
2022-03-15 12:54:53 +01:00
qw422016 . E ( ) . S ( r . Name )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:92
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-05-04 18:02:18 +02:00
` )
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:93
2021-09-07 21:39:22 +02:00
}
2022-12-09 20:43:54 +01:00
//line app/vmalert/web.qtpl:93
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2023-05-08 09:36:39 +02:00
|
` )
//line app/vmalert/web.qtpl:95
streamseriesFetchedWarn ( qw422016 , r )
//line app/vmalert/web.qtpl:95
qw422016 . N ( ) . S ( `
< span > < a target = "_blank" href = " ` )
//line app/vmalert/web.qtpl:96
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( prefix + r . WebLink ( ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:96
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` " > Details < / a > < / span >
2022-05-04 18:02:18 +02:00
< / div >
< div class = "col-12" >
< code > < pre > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:99
2022-03-15 12:54:53 +01:00
qw422016 . E ( ) . S ( r . Query )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:99
2022-05-04 18:02:18 +02:00
qw422016 . N ( ) . S ( ` < / pre > < / code >
< / div >
< div class = "col-12 mb-2" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:102
2022-03-15 12:54:53 +01:00
if len ( r . Labels ) > 0 {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:102
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` <b>Labels:</b> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:102
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:102
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-05-04 18:02:18 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:103
2022-03-15 12:54:53 +01:00
for k , v := range r . Labels {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:103
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-05-04 18:02:18 +02:00
< span class = "ms-1 badge bg-primary" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:104
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( k )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:104
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` = ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:104
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( v )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:104
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / span >
2022-05-04 18:02:18 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:105
2022-05-04 18:02:18 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:105
2022-05-04 18:02:18 +02:00
qw422016 . N ( ) . S ( `
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:107
2022-05-04 18:02:18 +02:00
if r . LastError != "" {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:107
2022-05-04 18:02:18 +02:00
qw422016 . N ( ) . S ( `
< div class = "col-12" >
< b > Error : < / b >
< div class = "error-cell" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:111
2022-05-04 18:02:18 +02:00
qw422016 . E ( ) . S ( r . LastError )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:111
2022-05-04 18:02:18 +02:00
qw422016 . N ( ) . S ( `
< / div >
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:114
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:114
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-05-04 18:02:18 +02:00
< / div >
2021-09-07 21:39:22 +02:00
< / td >
2022-05-04 18:02:18 +02:00
< td class = "text-center" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:117
2022-03-15 12:54:53 +01:00
qw422016 . N ( ) . D ( r . LastSamples )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:117
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / td >
2022-05-04 18:02:18 +02:00
< td class = "text-center" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:118
2022-03-15 12:54:53 +01:00
qw422016 . N ( ) . FPrec ( time . Since ( r . LastEvaluation ) . Seconds ( ) , 3 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:118
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` s ago < / td >
< / tr >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:120
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:120
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / tbody >
< / table >
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:124
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:124
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:126
2021-09-07 21:39:22 +02:00
} else {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:126
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< div >
2022-09-14 14:04:24 +02:00
< p > No groups ... < / p >
2021-09-07 21:39:22 +02:00
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:130
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:130
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:132
2022-07-06 10:46:01 +02:00
tpl . StreamFooter ( qw422016 , r )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:132
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2022-07-06 10:46:01 +02:00
func WriteListGroups ( qq422016 qtio422016 . Writer , r * http . Request , groups [ ] APIGroup ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2022-07-06 10:46:01 +02:00
StreamListGroups ( qw422016 , r , groups )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2022-07-06 10:46:01 +02:00
func ListGroups ( r * http . Request , groups [ ] APIGroup ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2022-07-06 10:46:01 +02:00
WriteListGroups ( qb422016 , r , groups )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:134
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:137
2022-07-06 10:46:01 +02:00
func StreamListAlerts ( qw422016 * qt422016 . Writer , r * http . Request , groupAlerts [ ] GroupAlerts ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:137
2022-02-08 20:03:42 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:138
2022-07-08 10:26:13 +02:00
prefix := utils . Prefix ( r . URL . Path )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:138
2022-07-06 10:46:01 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:139
2022-07-08 10:26:13 +02:00
tpl . StreamHeader ( qw422016 , r , navItems , "Alerts" )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:139
2022-07-08 10:26:13 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:140
2022-07-08 10:26:13 +02:00
if len ( groupAlerts ) > 0 {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:140
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< a class = "btn btn-primary" role = "button" onclick = "collapseAll()" > Collapse All < / a >
< a class = "btn btn-primary" role = "button" onclick = "expandAll()" > Expand All < / a >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:143
2021-09-07 21:39:22 +02:00
for _ , ga := range groupAlerts {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:143
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:144
2021-09-07 21:39:22 +02:00
g := ga . Group
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:144
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< div class = "group-heading alert-danger" data - bs - target = " rules - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:145
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:145
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " >
< span class = "anchor" id = " group - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:146
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:146
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " > < / span >
< a href = " # group - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . Name )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
if g . Type != "prometheus" {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` ( ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . Type )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` ) ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:147
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / a >
< span class = "badge bg-danger" title = "Number of active alerts" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:148
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . D ( len ( ga . Alerts ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:148
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / span >
< br >
< p class = "fs-6 fw-lighter" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:150
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . File )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:150
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / p >
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:153
2021-09-07 21:39:22 +02:00
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 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:162
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< div class = "collapse" id = " rules - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:163
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( g . ID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:163
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` " >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:164
2021-09-07 21:39:22 +02:00
for _ , ruleID := range keys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:164
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:166
2021-09-07 21:39:22 +02:00
defaultAR := alertsByRule [ ruleID ] [ 0 ]
var labelKeys [ ] string
for k := range defaultAR . Labels {
labelKeys = append ( labelKeys , k )
}
sort . Strings ( labelKeys )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:172
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< br >
< b > alert : < / b > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:174
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( defaultAR . Name )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:174
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` ( ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:174
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . D ( len ( alertsByRule [ ruleID ] ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:174
2021-10-13 14:25:11 +02:00
qw422016 . N ( ) . S ( ` )
| < span > < a target = "_blank" href = " ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:175
2021-10-13 14:25:11 +02:00
qw422016 . E ( ) . S ( defaultAR . SourceLink )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:175
2021-10-13 14:25:11 +02:00
qw422016 . N ( ) . S ( ` " > Source < / a > < / span >
< br >
< b > expr : < / b > < code > < pre > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:177
2021-10-13 14:25:11 +02:00
qw422016 . E ( ) . S ( defaultAR . Expression )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:177
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / pre > < / code >
< table class = "table table-striped table-hover table-sm" >
< thead >
< tr >
< th scope = "col" > Labels < / th >
< th scope = "col" > State < / th >
< th scope = "col" > Active at < / th >
< th scope = "col" > Value < / th >
< th scope = "col" > Link < / th >
< / tr >
< / thead >
< tbody >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:189
2021-09-07 21:39:22 +02:00
for _ , ar := range alertsByRule [ ruleID ] {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:189
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< tr >
< td >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:192
2021-09-07 21:39:22 +02:00
for _ , k := range labelKeys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:192
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< span class = "ms-1 badge bg-primary" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:193
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( k )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:193
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` = ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:193
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( ar . Labels [ k ] )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:193
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / span >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:194
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:194
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / td >
2021-10-22 11:30:38 +02:00
< td > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:196
2021-10-22 11:30:38 +02:00
streambadgeState ( qw422016 , ar . State )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:196
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / td >
2021-10-22 11:30:38 +02:00
< td >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:198
2021-10-22 11:30:38 +02:00
qw422016 . E ( ) . S ( ar . ActiveAt . Format ( "2006-01-02T15:04:05Z07:00" ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:198
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:199
2021-10-22 11:30:38 +02:00
if ar . Restored {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:199
2021-10-22 11:30:38 +02:00
streambadgeRestored ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:199
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:199
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( `
< / td >
< td > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:201
2021-10-22 11:30:38 +02:00
qw422016 . E ( ) . S ( ar . Value )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:201
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / td >
< td >
2022-02-08 20:03:42 +01:00
< a href = " ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:203
2022-07-08 10:26:13 +02:00
qw422016 . E ( ) . S ( prefix + ar . WebLink ( ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:203
2022-02-08 20:03:42 +01:00
qw422016 . N ( ) . S ( ` " > Details < / a >
2021-09-07 21:39:22 +02:00
< / td >
< / tr >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:206
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:206
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / tbody >
< / table >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:209
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:209
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / div >
< br >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:212
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:212
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:214
2021-09-07 21:39:22 +02:00
} else {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:214
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< div >
2022-09-14 14:04:24 +02:00
< p > No active alerts ... < / p >
2021-09-07 21:39:22 +02:00
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:218
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:218
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:220
2022-07-06 10:46:01 +02:00
tpl . StreamFooter ( qw422016 , r )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:220
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2022-07-06 10:46:01 +02:00
func WriteListAlerts ( qq422016 qtio422016 . Writer , r * http . Request , groupAlerts [ ] GroupAlerts ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2022-07-06 10:46:01 +02:00
StreamListAlerts ( qw422016 , r , groupAlerts )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2022-07-06 10:46:01 +02:00
func ListAlerts ( r * http . Request , groupAlerts [ ] GroupAlerts ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2022-07-06 10:46:01 +02:00
WriteListAlerts ( qb422016 , r , groupAlerts )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:222
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:224
2022-07-06 10:46:01 +02:00
func StreamListTargets ( qw422016 * qt422016 . Writer , r * http . Request , targets map [ notifier . TargetType ] [ ] notifier . Target ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:224
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:225
2022-07-06 10:46:01 +02:00
tpl . StreamHeader ( qw422016 , r , navItems , "Notifiers" )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:225
2022-07-06 10:46:01 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:226
2022-07-06 10:46:01 +02:00
if len ( targets ) > 0 {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:226
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< a class = "btn btn-primary" role = "button" onclick = "collapseAll()" > Collapse All < / a >
< a class = "btn btn-primary" role = "button" onclick = "expandAll()" > Expand All < / a >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:231
2022-02-02 13:11:41 +01:00
var keys [ ] string
for key := range targets {
keys = append ( keys , string ( key ) )
}
sort . Strings ( keys )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:236
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:238
2022-02-02 13:11:41 +01:00
for i := range keys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:238
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:239
2022-02-02 13:11:41 +01:00
typeK , ns := keys [ i ] , targets [ notifier . TargetType ( keys [ i ] ) ]
count := len ( ns )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:241
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< div class = "group-heading data-bs-target=" rules - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:242
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( typeK )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:242
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` " >
< span class = "anchor" id = " notifiers - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:243
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( typeK )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:243
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` " > < / span >
< a href = " # notifiers - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:244
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( typeK )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:244
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:244
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( typeK )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:244
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` ( ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:244
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . D ( count )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:244
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` ) < / a >
< / div >
< div class = "collapse show" id = " notifiers - ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:246
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( typeK )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:246
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` " >
< table class = "table table-striped table-hover table-sm" >
< thead >
< tr >
< th scope = "col" > Labels < / th >
< th scope = "col" > Address < / th >
< / tr >
< / thead >
< tbody >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:255
2022-02-02 13:11:41 +01:00
for _ , n := range ns {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:255
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< tr >
< td >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:258
2022-11-30 06:22:12 +01:00
for _ , l := range n . Labels . GetLabels ( ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:258
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< span class = "ms-1 badge bg-primary" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:259
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( l . Name )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:259
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` = ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:259
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( l . Value )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:259
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` < / span >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:260
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:260
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< / td >
< td > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:262
2022-02-02 13:11:41 +01:00
qw422016 . E ( ) . S ( n . Notifier . Addr ( ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:262
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( ` < / td >
< / tr >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:264
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:264
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< / tbody >
< / table >
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:268
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:268
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:270
2022-02-02 13:11:41 +01:00
} else {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:270
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
< div >
2022-09-14 14:04:24 +02:00
< p > No targets ... < / p >
2022-02-02 13:11:41 +01:00
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:274
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:274
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:276
2022-07-06 10:46:01 +02:00
tpl . StreamFooter ( qw422016 , r )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:276
2022-02-02 13:11:41 +01:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-07-06 10:46:01 +02:00
func WriteListTargets ( qq422016 qtio422016 . Writer , r * http . Request , targets map [ notifier . TargetType ] [ ] notifier . Target ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-07-06 10:46:01 +02:00
StreamListTargets ( qw422016 , r , targets )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-07-06 10:46:01 +02:00
func ListTargets ( r * http . Request , targets map [ notifier . TargetType ] [ ] notifier . Target ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-07-06 10:46:01 +02:00
WriteListTargets ( qb422016 , r , targets )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:278
2022-02-02 13:11:41 +01:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:280
2022-07-06 10:46:01 +02:00
func StreamAlert ( qw422016 * qt422016 . Writer , r * http . Request , alert * APIAlert ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:280
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:281
2022-07-08 10:26:13 +02:00
prefix := utils . Prefix ( r . URL . Path )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:281
2022-07-06 10:46:01 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:282
2022-07-08 10:26:13 +02:00
tpl . StreamHeader ( qw422016 , r , navItems , "" )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:282
2022-07-08 10:26:13 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:284
2021-09-07 21:39:22 +02:00
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 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:295
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< div class = "display-6 pb-3 mb-3" > Alert : ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . Name )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` <span class="ms-2 badge ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
if alert . State == "firing" {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` bg-danger ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
} else {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` bg-warning text-dark ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . State )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:296
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / span > < / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Active at
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:303
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . ActiveAt . Format ( "2006-01-02T15:04:05Z07:00" ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:303
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / div >
< / div >
< / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Expr
< / div >
< div class = "col" >
< code > < pre > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:313
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . Expression )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:313
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / pre > < / code >
< / div >
< / div >
< / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Labels
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:323
2021-09-07 21:39:22 +02:00
for _ , k := range labelKeys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:323
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< span class = "m-1 badge bg-primary" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:324
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( k )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:324
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` = ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:324
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . Labels [ k ] )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:324
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / span >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:325
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:325
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / div >
< / div >
< / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Annotations
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:335
2021-09-07 21:39:22 +02:00
for _ , k := range annotationKeys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:335
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< b > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:336
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( k )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:336
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` : < / b > < br >
< p > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:337
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . Annotations [ k ] )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:337
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / p >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:338
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:338
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
< / div >
< / div >
< / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Group
< / div >
< div class = "col" >
2022-07-08 10:26:13 +02:00
< a target = "_blank" href = " ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:348
2022-07-08 10:26:13 +02:00
qw422016 . E ( ) . S ( prefix )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:348
2022-07-08 10:26:13 +02:00
qw422016 . N ( ) . S ( ` groups#group- ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:348
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . GroupID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:348
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:348
2021-09-07 21:39:22 +02:00
qw422016 . E ( ) . S ( alert . GroupID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:348
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( ` < / a >
< / div >
< / div >
2021-10-13 14:25:11 +02:00
< / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Source link
< / div >
< div class = "col" >
< a target = "_blank" href = " ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:358
2021-10-13 14:25:11 +02:00
qw422016 . E ( ) . S ( alert . SourceLink )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:358
2021-10-13 14:25:11 +02:00
qw422016 . N ( ) . S ( ` " > Link < / a >
< / div >
< / div >
2021-09-07 21:39:22 +02:00
< / div >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:362
2022-07-06 10:46:01 +02:00
tpl . StreamFooter ( qw422016 , r )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:362
2021-09-07 21:39:22 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2022-07-06 10:46:01 +02:00
func WriteAlert ( qq422016 qtio422016 . Writer , r * http . Request , alert * APIAlert ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-09-07 21:39:22 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2022-07-06 10:46:01 +02:00
StreamAlert ( qw422016 , r , alert )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-09-07 21:39:22 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2022-07-06 10:46:01 +02:00
func Alert ( r * http . Request , alert * APIAlert ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-09-07 21:39:22 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2022-07-06 10:46:01 +02:00
WriteAlert ( qb422016 , r , alert )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-10-22 11:30:38 +02:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-10-22 11:30:38 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-10-22 11:30:38 +02:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:364
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:367
2022-09-14 14:04:24 +02:00
func StreamRuleDetails ( qw422016 * qt422016 . Writer , r * http . Request , rule APIRule ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:367
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:368
2022-09-14 14:04:24 +02:00
prefix := utils . Prefix ( r . URL . Path )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:368
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:369
2022-09-14 14:04:24 +02:00
tpl . StreamHeader ( qw422016 , r , navItems , "" )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:369
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:371
2022-09-14 14:04:24 +02:00
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 )
2023-05-08 09:36:39 +02:00
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:394
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
< div class = "display-6 pb-3 mb-3" > Rule : ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( rule . Name )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` <span class="ms-2 badge ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
if rule . Health != "ok" {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` bg-danger ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
} else {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
qw422016 . N ( ) . S ( ` bg-success text-dark ` )
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( rule . Health )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:395
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / span > < / div >
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Expr
< / div >
< div class = "col" >
< code > < pre > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:402
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( rule . Query )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:402
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / pre > < / code >
< / div >
< / div >
< / div >
2022-09-15 16:15:39 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:406
2022-09-15 16:15:39 +02:00
if rule . Type == "alerting" {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:406
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
For
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:413
2022-09-15 16:15:39 +02:00
qw422016 . E ( ) . V ( rule . Duration )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:413
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( ` seconds
2022-09-14 14:04:24 +02:00
< / div >
< / div >
< / div >
2022-09-15 16:15:39 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:417
2022-09-15 16:15:39 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:417
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Labels
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:424
2022-09-14 14:04:24 +02:00
for _ , k := range labelKeys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:424
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
< span class = "m-1 badge bg-primary" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:425
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( k )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:425
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` = ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:425
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( rule . Labels [ k ] )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:425
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / span >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:426
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:426
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
< / div >
< / div >
< / div >
2022-09-15 16:15:39 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:430
2022-09-15 16:15:39 +02:00
if rule . Type == "alerting" {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:430
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Annotations
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:437
2022-09-15 16:15:39 +02:00
for _ , k := range annotationKeys {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:437
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< b > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:438
2022-09-15 16:15:39 +02:00
qw422016 . E ( ) . S ( k )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:438
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( ` : < / b > < br >
2022-09-14 14:04:24 +02:00
< p > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:439
2022-09-15 16:15:39 +02:00
qw422016 . E ( ) . S ( rule . Annotations [ k ] )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:439
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( ` < / p >
2022-09-14 14:04:24 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:440
2022-09-15 16:15:39 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:440
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< / div >
< / div >
< / div >
2023-02-08 14:34:03 +01:00
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Debug
< / div >
< div class = "col" >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:450
2023-02-08 14:34:03 +01:00
qw422016 . E ( ) . V ( rule . Debug )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:450
2023-02-08 14:34:03 +01:00
qw422016 . N ( ) . S ( `
< / div >
< / div >
< / div >
2022-09-15 16:15:39 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:454
2022-09-15 16:15:39 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:454
2022-09-15 16:15:39 +02:00
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< div class = "container border-bottom p-2" >
< div class = "row" >
< div class = "col-2" >
Group
< / div >
< div class = "col" >
< a target = "_blank" href = " ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:461
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( prefix )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:461
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` groups#group- ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:461
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( rule . GroupID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:461
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:461
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( rule . GroupID )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:461
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / a >
< / div >
< / div >
< / div >
< br >
2023-05-08 09:36:39 +02:00
` )
//line app/vmalert/web.qtpl:467
if seriesFetchedWarning {
//line app/vmalert/web.qtpl:467
qw422016 . N ( ) . S ( `
< div class = "alert alert-warning" role = "alert" >
< strong > Warning : < / strong > some of updates have "Series fetched" equal to 0. < br >
It might be that either this data is missing in the datasource or there is a typo in rule ' s expression .
For example , < strong > foo { label = "bar" } > 0 < / strong > could never trigger because < strong > foo { label = "bar" } < / strong >
metric doesn ' t exist .
< br >
Rule ' s expressions without time series selector , like < strong > expr : 42 < / strong > or < strong > expr : time ( ) < / strong >
aren ' t fetching time series from datasource , so they could have "Series fetched" equal to 0 and this won ' t be a problem .
< br >
See more details about this detection < a target = "_blank" href = "https://github.com/VictoriaMetrics/VictoriaMetrics/issues/4039" > here < / a > .
< / div >
` )
//line app/vmalert/web.qtpl:479
}
//line app/vmalert/web.qtpl:479
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< div class = "display-6 pb-3" > Last ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:480
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . D ( len ( rule . Updates ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:480
2022-12-29 12:36:44 +01:00
qw422016 . N ( ) . S ( ` / ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:480
2022-12-29 12:36:44 +01:00
qw422016 . N ( ) . D ( rule . MaxUpdates )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:480
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` updates < / span > : < / div >
< table class = "table table-striped table-hover table-sm" >
< thead >
< tr >
2022-09-15 12:40:22 +02:00
< th scope = "col" title = "The time when event was created" > Updated at < / th >
< th scope = "col" style = "width: 10%" class = "text-center" title = "How many samples were returned" > Samples < / th >
2023-05-08 09:36:39 +02:00
` )
//line app/vmalert/web.qtpl:486
if seriesFetchedEnabled {
//line app/vmalert/web.qtpl:486
qw422016 . N ( ) . S ( ` <th scope="col" style="width: 10%" class="text-center" title="How many series were scanned by datasource during the evaluation">Series fetched</th> ` )
//line app/vmalert/web.qtpl:486
}
//line app/vmalert/web.qtpl:486
qw422016 . N ( ) . S ( `
2022-09-15 12:40:22 +02:00
< th scope = "col" style = "width: 10%" class = "text-center" title = "How many seconds request took" > Duration < / th >
< th scope = "col" class = "text-center" title = "Time used for rule execution" > Executed at < / th >
< th scope = "col" class = "text-center" title = "cURL command with request example" > cURL < / th >
2022-09-14 14:04:24 +02:00
< / tr >
< / thead >
< tbody >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:494
2022-09-14 14:04:24 +02:00
for _ , u := range rule . Updates {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:494
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
< tr ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:495
2022-09-14 14:04:24 +02:00
if u . err != nil {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:495
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` class="alert-danger" ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:495
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:495
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` >
< td >
< span class = "badge bg-primary rounded-pill me-3" title = "Updated at" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:497
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( u . time . Format ( time . RFC3339 ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:497
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / span >
< / td >
2023-05-08 09:36:39 +02:00
< td class = "text-center" > ` )
//line app/vmalert/web.qtpl:499
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . D ( u . samples )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:499
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / td >
2023-05-08 09:36:39 +02:00
` )
//line app/vmalert/web.qtpl:500
if seriesFetchedEnabled {
//line app/vmalert/web.qtpl:500
qw422016 . N ( ) . S ( ` <td class="text-center"> ` )
//line app/vmalert/web.qtpl:500
if u . seriesFetched != nil {
//line app/vmalert/web.qtpl:500
qw422016 . N ( ) . D ( * u . seriesFetched )
//line app/vmalert/web.qtpl:500
}
//line app/vmalert/web.qtpl:500
qw422016 . N ( ) . S ( ` </td> ` )
//line app/vmalert/web.qtpl:500
}
//line app/vmalert/web.qtpl:500
qw422016 . N ( ) . S ( `
2022-09-14 14:04:24 +02:00
< td class = "text-center" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:501
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . FPrec ( u . duration . Seconds ( ) , 3 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:501
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` s < / td >
< td class = "text-center" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:502
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . S ( u . at . Format ( time . RFC3339 ) )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:502
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / td >
2022-09-15 12:40:22 +02:00
< td >
< textarea class = "curl-area" rows = "1" onclick = "this.focus();this.select()" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:504
2022-12-09 16:13:29 +01:00
qw422016 . E ( ) . S ( u . curl )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:504
2022-09-15 12:40:22 +02:00
qw422016 . N ( ) . S ( ` < / textarea >
< / td >
2022-09-14 14:04:24 +02:00
< / tr >
< / li >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:508
2022-09-14 14:04:24 +02:00
if u . err != nil {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:508
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
< tr ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:509
2022-09-14 14:04:24 +02:00
if u . err != nil {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:509
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` class="alert-danger" ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:509
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:509
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` >
2023-05-08 09:36:39 +02:00
< td colspan = " ` )
//line app/vmalert/web.qtpl:510
if seriesFetchedEnabled {
//line app/vmalert/web.qtpl:510
qw422016 . N ( ) . S ( ` 6 ` )
//line app/vmalert/web.qtpl:510
} else {
//line app/vmalert/web.qtpl:510
qw422016 . N ( ) . S ( ` 5 ` )
//line app/vmalert/web.qtpl:510
}
//line app/vmalert/web.qtpl:510
qw422016 . N ( ) . S ( ` " >
2022-09-14 14:04:24 +02:00
< span class = "alert-danger" > ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:511
2022-09-14 14:04:24 +02:00
qw422016 . E ( ) . V ( u . err )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:511
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( ` < / span >
< / td >
< / tr >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:514
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:514
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:515
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:515
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:517
2022-09-14 14:04:24 +02:00
tpl . StreamFooter ( qw422016 , r )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:517
2022-09-14 14:04:24 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
func WriteRuleDetails ( qq422016 qtio422016 . Writer , r * http . Request , rule APIRule ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
StreamRuleDetails ( qw422016 , r , rule )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
func RuleDetails ( r * http . Request , rule APIRule ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
WriteRuleDetails ( qb422016 , r , rule )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:518
2022-09-14 14:04:24 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:522
2021-10-22 11:30:38 +02:00
func streambadgeState ( qw422016 * qt422016 . Writer , state string ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:522
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( `
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:524
2021-10-22 11:30:38 +02:00
badgeClass := "bg-warning text-dark"
if state == "firing" {
badgeClass = "bg-danger"
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:528
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( `
< span class = " badge ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:529
2021-10-22 11:30:38 +02:00
qw422016 . E ( ) . S ( badgeClass )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:529
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( ` "> ` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:529
2021-10-22 11:30:38 +02:00
qw422016 . E ( ) . S ( state )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:529
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( ` < / span >
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
func writebadgeState ( qq422016 qtio422016 . Writer , state string ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
streambadgeState ( qw422016 , state )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
func badgeState ( state string ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
writebadgeState ( qb422016 , state )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:530
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:532
2021-10-22 11:30:38 +02:00
func streambadgeRestored ( qw422016 * qt422016 . Writer ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:532
2021-10-22 11:30:38 +02:00
qw422016 . N ( ) . S ( `
2021-10-27 18:59:13 +02:00
< span class = "badge bg-warning text-dark" title = "Alert state was restored after the service restart from remote storage" > restored < / span >
2021-10-22 11:30:38 +02:00
` )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
func writebadgeRestored ( qq422016 qtio422016 . Writer ) {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
qw422016 := qt422016 . AcquireWriter ( qq422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
streambadgeRestored ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
qt422016 . ReleaseWriter ( qw422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
}
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
func badgeRestored ( ) string {
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
qb422016 := qt422016 . AcquireByteBuffer ( )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
2021-10-22 11:30:38 +02:00
writebadgeRestored ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:534
qs422016 := string ( qb422016 . B )
//line app/vmalert/web.qtpl:534
qt422016 . ReleaseByteBuffer ( qb422016 )
//line app/vmalert/web.qtpl:534
return qs422016
//line app/vmalert/web.qtpl:534
}
//line app/vmalert/web.qtpl:536
func streamseriesFetchedWarn ( qw422016 * qt422016 . Writer , r APIRule ) {
//line app/vmalert/web.qtpl:536
qw422016 . N ( ) . S ( `
` )
//line app/vmalert/web.qtpl:537
if r . LastSamples == 0 && r . LastSeriesFetched != nil && * r . LastSeriesFetched == 0 {
//line app/vmalert/web.qtpl:537
qw422016 . N ( ) . S ( `
< svg xmlns = "http://www.w3.org/2000/svg"
data - bs - toggle = "tooltip"
title = " This rule last evaluation hasn ' t selected any time series from the datasource .
It might be that either this data is missing in the datasource or there is a typo in rule ' s expression .
See more in Details . "
width = "18" height = "18" fill = "currentColor" class = "bi bi-exclamation-triangle-fill flex-shrink-0 me-2" viewBox = "0 0 16 16" role = "img" aria - label = "Warning:" >
< path d = "M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16zm.93-9.412-1 4.705c-.07.34.029.533.304.533.194 0 .487-.07.686-.246l-.088.416c-.287.346-.92.598-1.465.598-.703 0-1.002-.422-.808-1.319l.738-3.468c.064-.293.006-.399-.287-.47l-.451-.081.082-.381 2.29-.287zM8 5.5a1 1 0 1 1 0-2 1 1 0 0 1 0 2z" / >
< / svg >
` )
//line app/vmalert/web.qtpl:546
}
//line app/vmalert/web.qtpl:546
qw422016 . N ( ) . S ( `
` )
//line app/vmalert/web.qtpl:547
}
//line app/vmalert/web.qtpl:547
func writeseriesFetchedWarn ( qq422016 qtio422016 . Writer , r APIRule ) {
//line app/vmalert/web.qtpl:547
qw422016 := qt422016 . AcquireWriter ( qq422016 )
//line app/vmalert/web.qtpl:547
streamseriesFetchedWarn ( qw422016 , r )
//line app/vmalert/web.qtpl:547
qt422016 . ReleaseWriter ( qw422016 )
//line app/vmalert/web.qtpl:547
}
//line app/vmalert/web.qtpl:547
func seriesFetchedWarn ( r APIRule ) string {
//line app/vmalert/web.qtpl:547
qb422016 := qt422016 . AcquireByteBuffer ( )
//line app/vmalert/web.qtpl:547
writeseriesFetchedWarn ( qb422016 , r )
//line app/vmalert/web.qtpl:547
2021-09-07 21:39:22 +02:00
qs422016 := string ( qb422016 . B )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:547
2021-09-07 21:39:22 +02:00
qt422016 . ReleaseByteBuffer ( qb422016 )
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:547
2021-09-07 21:39:22 +02:00
return qs422016
2023-05-08 09:36:39 +02:00
//line app/vmalert/web.qtpl:547
2021-09-07 21:39:22 +02:00
}