interfaces.go 568 B

1234567891011121314151617181920212223242526272829303132
  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. }
  16. type AlertCondition interface {
  17. Eval(result *AlertResultContext)
  18. }
  19. type QueryReducer interface {
  20. Reduce(timeSeries *tsdb.TimeSeries) float64
  21. }
  22. type AlertEvaluator interface {
  23. Eval(timeSeries *tsdb.TimeSeries, reducedValue float64) bool
  24. }