diff --git a/rules/group.go b/rules/group.go index e8a7d82d2..3a97c9564 100644 --- a/rules/group.go +++ b/rules/group.go @@ -675,18 +675,18 @@ func (g *Group) RestoreForState(ts time.Time) { continue } - // No results for this alert rule. - if sset == nil { - level.Debug(g.logger).Log("msg", "Failed to find a series to restore the 'for' state", labels.AlertName, alertRule.Name()) - continue - } - // While not technically the same number of series we expect, it's as good of an approximation as any. seriesByLabels := make(map[string]storage.Series, alertRule.ActiveAlertsCount()) for sset.Next() { seriesByLabels[sset.At().Labels().DropMetricName().String()] = sset.At() } + // No results for this alert rule. + if len(seriesByLabels) == 0 { + level.Debug(g.logger).Log("msg", "Failed to find a series to restore the 'for' state", labels.AlertName, alertRule.Name()) + continue + } + alertRule.ForEachActiveAlert(func(a *Alert) { var s storage.Series