interfaces.go 586 B

123456789101112131415161718192021222324252627282930313233
  1. package alerting
  2. import (
  3. "time"
  4. "github.com/grafana/grafana/pkg/tsdb"
  5. )
  6. type AlertHandler interface {
  7. Execute(context *AlertResultContext)
  8. }
  9. type Scheduler interface {
  10. Tick(time time.Time, execQueue chan *AlertJob)
  11. Update(rules []*AlertRule)
  12. }
  13. type Notifier interface {
  14. Notify(alertResult *AlertResultContext)
  15. GetType() string
  16. }
  17. type AlertCondition interface {
  18. Eval(result *AlertResultContext)
  19. }
  20. type QueryReducer interface {
  21. Reduce(timeSeries *tsdb.TimeSeries) float64
  22. }
  23. type AlertEvaluator interface {
  24. Eval(timeSeries *tsdb.TimeSeries, reducedValue float64) bool
  25. }