| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- package alerting
- import (
- "context"
- "time"
- "github.com/grafana/grafana/pkg/models"
- )
- type EvalHandler interface {
- Eval(evalContext *EvalContext)
- }
- type Scheduler interface {
- Tick(time time.Time, execQueue chan *Job)
- Update(rules []*Rule)
- }
- type Notifier interface {
- Notify(evalContext *EvalContext) error
- GetType() string
- NeedsImage() bool
- // ShouldNotify checks this evaluation should send an alert notification
- ShouldNotify(ctx context.Context, evalContext *EvalContext, notificationState *models.AlertNotificationState) bool
- GetNotifierId() int64
- GetIsDefault() bool
- GetSendReminder() bool
- GetFrequency() time.Duration
- }
- type NotifierState struct {
- notifier Notifier
- state *models.AlertNotificationState
- }
- type NotifierStateSlice []*NotifierState
- func (notifiers NotifierStateSlice) ShouldUploadImage() bool {
- for _, ns := range notifiers {
- if ns.notifier.NeedsImage() {
- return true
- }
- }
- return false
- }
- type ConditionResult struct {
- Firing bool
- NoDataFound bool
- Operator string
- EvalMatches []*EvalMatch
- }
- type Condition interface {
- Eval(result *EvalContext) (*ConditionResult, error)
- }
|