Alerting: Fix alert rule comparison with the same missing_evals_to_resolve (#110174)

This commit is contained in:
Alexander Akhmetov
2025-08-26 18:20:50 +02:00
committed by GitHub
parent c5667476a7
commit 5e1f79ca83
2 changed files with 29 additions and 1 deletions
+5 -1
View File
@@ -92,7 +92,11 @@ func (a alertRuleVersion) EqualSpec(b alertRuleVersion) bool {
a.IsPaused == b.IsPaused &&
a.NotificationSettings == b.NotificationSettings &&
a.Metadata == b.Metadata &&
a.MissingSeriesEvalsToResolve == b.MissingSeriesEvalsToResolve
compareInt64Pointer(a.MissingSeriesEvalsToResolve, b.MissingSeriesEvalsToResolve)
}
func compareInt64Pointer(a, b *int64) bool {
return (a == nil && b == nil) || (a != nil && b != nil && *a == *b)
}
func (a alertRuleVersion) TableName() string {
+24
View File
@@ -71,6 +71,30 @@ func TestAlertRuleVersion_EqualSpec(t *testing.T) {
b: func() alertRuleVersion { v := baseVersion; v.MissingSeriesEvalsToResolve = nil; return v }(),
expect: true,
},
{
name: "same MissingSeriesEvalsToResolve value, different pointers",
a: func() alertRuleVersion {
v := baseVersion
v.MissingSeriesEvalsToResolve = util.Pointer(int64(10))
return v
}(),
b: func() alertRuleVersion {
v := baseVersion
v.MissingSeriesEvalsToResolve = util.Pointer(int64(10))
return v
}(),
expect: true,
},
{
name: "different MissingSeriesEvalsToResolve",
a: func() alertRuleVersion {
v := baseVersion
v.MissingSeriesEvalsToResolve = util.Pointer(int64(123))
return v
}(),
b: baseVersion,
expect: false,
},
{
name: "different NotificationSettings",
a: baseVersion,