Alerting: Condition evaluator with cached pipeline (#57479)

* create rule evaluator
* load header from the context
* init one factory
* update scheduler
This commit is contained in:
Yuriy Tseretyan
2022-11-02 10:13:39 -04:00
committed by GitHub
parent d9c40ca41e
commit e3a4bde622
13 changed files with 371 additions and 340 deletions
@@ -0,0 +1,32 @@
package eval_mocks
import (
"errors"
"github.com/grafana/grafana/pkg/services/ngalert/eval"
"github.com/grafana/grafana/pkg/services/ngalert/models"
)
type fakeEvaluatorFactory struct {
err error
evaluator eval.ConditionEvaluator
}
func NewEvaluatorFactory(evaluator eval.ConditionEvaluator) eval.EvaluatorFactory {
return &fakeEvaluatorFactory{evaluator: evaluator}
}
func NewFailingEvaluatorFactory(err error) eval.EvaluatorFactory {
if err == nil {
err = errors.New("test")
}
return &fakeEvaluatorFactory{err: err}
}
func (f fakeEvaluatorFactory) Validate(ctx eval.EvaluationContext, condition models.Condition) error {
return f.err
}
func (f fakeEvaluatorFactory) Create(ctx eval.EvaluationContext, condition models.Condition) (eval.ConditionEvaluator, error) {
return f.evaluator, f.err
}