grafana/pkg/services/alerting/models.go

45 lines
1.1 KiB
Go
Raw Normal View History

package alerting
import (
"sync"
"github.com/grafana/grafana/pkg/components/null"
)
// Job holds state about when the alert rule should be evaluated.
2016-07-27 09:29:28 -05:00
type Job struct {
Offset int64
OffsetWait bool
Delay bool
running bool
Rule *Rule
runningLock sync.Mutex // Lock for running property which is used in the Scheduler and AlertEngine execution
}
// GetRunning returns true if the job is running. A lock is taken and released on the Job to ensure atomicity.
func (j *Job) GetRunning() bool {
defer j.runningLock.Unlock()
j.runningLock.Lock()
return j.running
}
// SetRunning sets the running property on the Job. A lock is taken and released on the Job to ensure atomicity.
func (j *Job) SetRunning(b bool) {
j.runningLock.Lock()
j.running = b
j.runningLock.Unlock()
2016-06-13 07:01:57 -05:00
}
// ResultLogEntry represents log data for the alert evaluation.
2016-07-27 09:29:28 -05:00
type ResultLogEntry struct {
Message string
Data interface{}
}
// EvalMatch represents the series violating the threshold.
2016-08-15 08:12:43 -05:00
type EvalMatch struct {
Value null.Float `json:"value"`
2016-11-08 07:53:13 -06:00
Metric string `json:"metric"`
Tags map[string]string `json:"tags"`
}