diff --git a/pkg/services/ngalert/schedule/schedule.go b/pkg/services/ngalert/schedule/schedule.go index e1f2405712c..ba05852776e 100644 --- a/pkg/services/ngalert/schedule/schedule.go +++ b/pkg/services/ngalert/schedule/schedule.go @@ -373,15 +373,16 @@ func (sch *schedule) ruleRoutine(grafanaCtx context.Context, key ngmodels.AlertR ruleEval, err := sch.evaluatorFactory.Create(evalCtx, e.rule.GetEvalCondition()) var results eval.Results var dur time.Duration - if err == nil { + if err != nil { + dur = sch.clock.Now().Sub(start) + logger.Error("Failed to build rule evaluator", "error", err) + } else { results, err = ruleEval.Evaluate(ctx, e.scheduledAt) + dur = sch.clock.Now().Sub(start) if err != nil { logger.Error("Failed to evaluate rule", "error", err, "duration", dur) } - } else { - logger.Error("Failed to build rule evaluator", "error", err) } - dur = sch.clock.Now().Sub(start) evalTotal.Inc() evalDuration.Observe(dur.Seconds())