mirror of
https://github.com/grafana/grafana.git
synced 2024-11-29 20:24:18 -06:00
7c2522c477
* Copy dashboard models to dashboard pkg * Use some models from current pkg instead of models * Adjust api pkg * Adjust pkg services * Fix lint
53 lines
1.3 KiB
Go
53 lines
1.3 KiB
Go
package alerting
|
|
|
|
import (
|
|
"sync"
|
|
|
|
"github.com/grafana/grafana/pkg/components/null"
|
|
"github.com/grafana/grafana/pkg/services/dashboards"
|
|
"github.com/grafana/grafana/pkg/services/user"
|
|
)
|
|
|
|
// 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"`
|
|
}
|
|
|
|
type DashAlertInfo struct {
|
|
User *user.SignedInUser
|
|
Dash *dashboards.Dashboard
|
|
OrgID int64
|
|
}
|