@@ -360,21 +360,19 @@ func (i *Incident) evaluateRules(ctx context.Context, tx *sqlx.Tx, eventID int64
360360 }
361361
362362 if _ , ok := i .Rules [r .ID ]; ! ok {
363- if r .ObjectFilter != nil {
364- matched , err := r .ObjectFilter .Eval (i .Object )
365- if err != nil {
366- i .logger .Warnw ("Failed to evaluate object filter" , zap .Object ("rule" , r ), zap .Error (err ))
367- }
363+ matched , err := r .Eval (i .Object )
364+ if err != nil {
365+ i .logger .Warnw ("Failed to evaluate object filter" , zap .Object ("rule" , r ), zap .Error (err ))
366+ }
368367
369- if err != nil || ! matched {
370- continue
371- }
368+ if err != nil || ! matched {
369+ continue
372370 }
373371
374372 i .Rules [r .ID ] = struct {}{}
375373 i .logger .Infow ("Rule matches" , zap .Object ("rule" , r ))
376374
377- err : = i .AddRuleMatched (ctx , tx , r )
375+ err = i .AddRuleMatched (ctx , tx , r )
378376 if err != nil {
379377 i .logger .Errorw ("Failed to upsert incident rule" , zap .Object ("rule" , r ), zap .Error (err ))
380378
@@ -429,27 +427,16 @@ func (i *Incident) evaluateEscalations(eventTime time.Time) ([]*rule.Escalation,
429427 // Check if new escalation stages are reached
430428 for _ , escalation := range r .Escalations {
431429 if _ , ok := i .EscalationState [escalation .ID ]; ! ok {
432- matched := false
433-
434- if escalation .Condition == nil {
435- matched = true
430+ matched , err := escalation .Eval (filterContext )
431+ if err != nil {
432+ i .logger .Warnw (
433+ "Failed to evaluate escalation condition" , zap .Object ("rule" , r ),
434+ zap .Object ("escalation" , escalation ), zap .Error (err ),
435+ )
436+ } else if ! matched {
437+ incidentAgeFilter := filterContext .ReevaluateAfter (escalation .Condition )
438+ retryAfter = min (retryAfter , incidentAgeFilter )
436439 } else {
437- var err error
438- matched , err = escalation .Condition .Eval (filterContext )
439- if err != nil {
440- i .logger .Warnw (
441- "Failed to evaluate escalation condition" , zap .Object ("rule" , r ),
442- zap .Object ("escalation" , escalation ), zap .Error (err ),
443- )
444-
445- matched = false
446- } else if ! matched {
447- incidentAgeFilter := filterContext .ReevaluateAfter (escalation .Condition )
448- retryAfter = min (retryAfter , incidentAgeFilter )
449- }
450- }
451-
452- if matched {
453440 escalations = append (escalations , escalation )
454441 }
455442 }
0 commit comments