| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283 |
- package alerting
- import (
- "time"
- "github.com/grafana/grafana/pkg/components/simplejson"
- "github.com/grafana/grafana/pkg/log"
- )
- type AlertJob struct {
- Offset int64
- Delay bool
- Running bool
- RetryCount int
- Rule *AlertRule
- }
- func (aj *AlertJob) Retryable() bool {
- return aj.RetryCount < maxAlertExecutionRetries
- }
- func (aj *AlertJob) ResetRetry() {
- aj.RetryCount = 0
- }
- func (aj *AlertJob) IncRetry() {
- aj.RetryCount++
- }
- type AlertResultContext struct {
- Firing bool
- IsTestRun bool
- Events []*AlertEvent
- Logs []*AlertResultLogEntry
- Error error
- Description string
- StartTime time.Time
- EndTime time.Time
- Rule *AlertRule
- DoneChan chan bool
- CancelChan chan bool
- log log.Logger
- }
- func (a *AlertResultContext) GetDurationMs() float64 {
- return float64(a.EndTime.Nanosecond()-a.StartTime.Nanosecond()) / float64(1000000)
- }
- func NewAlertResultContext(rule *AlertRule) *AlertResultContext {
- return &AlertResultContext{
- StartTime: time.Now(),
- Rule: rule,
- Logs: make([]*AlertResultLogEntry, 0),
- Events: make([]*AlertEvent, 0),
- DoneChan: make(chan bool, 1),
- CancelChan: make(chan bool, 1),
- log: log.New("alerting.engine"),
- }
- }
- type AlertResultLogEntry struct {
- Message string
- Data interface{}
- }
- type AlertEvent struct {
- Value float64
- Metric string
- State string
- Tags map[string]string
- }
- type Level struct {
- Operator string
- Value float64
- }
- type AlertQuery struct {
- Model *simplejson.Json
- DatasourceId int64
- From string
- To string
- }
|