mirror of
https://github.com/grafana/grafana.git
synced 2024-11-30 12:44:10 -06:00
07582a8e85
* Chore: Fix various spelling errors in back-end code Co-authored-by: Sofia Papagiannaki <papagian@users.noreply.github.com> Co-authored-by: Josh Soref <jsoref@users.noreply.github.com>>
45 lines
1.1 KiB
Go
45 lines
1.1 KiB
Go
package alerting
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/grafana/grafana/pkg/components/null"
|
|
)
|
|
|
|
// Job holds state about when the alert rule should be evaluated.
|
|
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()
|
|
}
|
|
|
|
// ResultLogEntry represents log data for the alert evaluation.
|
|
type ResultLogEntry struct {
|
|
Message string
|
|
Data interface{}
|
|
}
|
|
|
|
// EvalMatch represents the series violating the threshold.
|
|
type EvalMatch struct {
|
|
Value null.Float `json:"value"`
|
|
Metric string `json:"metric"`
|
|
Tags map[string]string `json:"tags"`
|
|
}
|