mirror of https://github.com/grafana/grafana
parent
717cce014b
commit
01da3f6cb2
@ -0,0 +1,63 @@ |
||||
package alerting |
||||
|
||||
import ( |
||||
"time" |
||||
|
||||
"github.com/grafana/grafana/pkg/log" |
||||
m "github.com/grafana/grafana/pkg/models" |
||||
) |
||||
|
||||
type EvalContext struct { |
||||
Firing bool |
||||
IsTestRun bool |
||||
Events []*Event |
||||
Logs []*ResultLogEntry |
||||
Error error |
||||
Description string |
||||
StartTime time.Time |
||||
EndTime time.Time |
||||
Rule *Rule |
||||
DoneChan chan bool |
||||
CancelChan chan bool |
||||
log log.Logger |
||||
} |
||||
|
||||
func (a *EvalContext) GetDurationMs() float64 { |
||||
return float64(a.EndTime.Nanosecond()-a.StartTime.Nanosecond()) / float64(1000000) |
||||
} |
||||
|
||||
func (c *EvalContext) GetColor() string { |
||||
if !c.Firing { |
||||
return "#36a64f" |
||||
} |
||||
|
||||
if c.Rule.Severity == m.AlertSeverityWarning { |
||||
return "#fd821b" |
||||
} else { |
||||
return "#D63232" |
||||
} |
||||
} |
||||
|
||||
func (c *EvalContext) GetStateText() string { |
||||
if !c.Firing { |
||||
return "OK" |
||||
} |
||||
|
||||
if c.Rule.Severity == m.AlertSeverityWarning { |
||||
return "WARNING" |
||||
} else { |
||||
return "CRITICAL" |
||||
} |
||||
} |
||||
|
||||
func NewEvalContext(rule *Rule) *EvalContext { |
||||
return &EvalContext{ |
||||
StartTime: time.Now(), |
||||
Rule: rule, |
||||
Logs: make([]*ResultLogEntry, 0), |
||||
Events: make([]*Event, 0), |
||||
DoneChan: make(chan bool, 1), |
||||
CancelChan: make(chan bool, 1), |
||||
log: log.New("alerting.engine"), |
||||
} |
||||
} |
||||
Loading…
Reference in new issue