Alerting: Add setting to distribute rule group evaluations over time (#80766)

* Simple, per-base-interval jitter

* Add log just for test purposes

* Add strategy approach, allow choosing between group or rule

* Add flag to jitter rules

* Add second toggle for jittering within a group

* Wire up toggles to strategy

* Slightly improve comment ordering

* Add tests for offset generation

* Rename JitterStrategyFrom

* Improve debug log message

* Use grafana SDK labels rather than prometheus labels
This commit is contained in:
Alexander Weaver
2024-01-18 12:48:11 -06:00
committed by GitHub
parent 94c3be3b49
commit 00a260effa
10 changed files with 216 additions and 1 deletions
+24
View File
@@ -1339,5 +1339,29 @@ var (
FrontendOnly: true,
Created: time.Date(2024, time.January, 12, 12, 0, 0, 0, time.UTC),
},
{
Name: "jitterAlertRules",
Description: "Distributes alert rule evaluations more evenly over time, by rule group",
FrontendOnly: false,
Stage: FeatureStageExperimental,
Owner: grafanaAlertingSquad,
AllowSelfServe: false,
HideFromDocs: false,
HideFromAdminPage: false,
RequiresRestart: true,
Created: time.Date(2024, time.January, 17, 12, 0, 0, 0, time.UTC),
},
{
Name: "jitterAlertRulesWithinGroups",
Description: "Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group",
FrontendOnly: false,
Stage: FeatureStageExperimental,
Owner: grafanaAlertingSquad,
AllowSelfServe: false,
HideFromDocs: true,
HideFromAdminPage: false,
RequiresRestart: true,
Created: time.Date(2024, time.January, 17, 12, 0, 0, 0, time.UTC),
},
}
)
+2
View File
@@ -157,3 +157,5 @@ enablePluginsTracingByDefault,experimental,@grafana/plugins-platform-backend,202
cloudRBACRoles,experimental,@grafana/identity-access-team,2024-01-10,false,false,true,false
alertingQueryOptimization,GA,@grafana/alerting-squad,2024-01-10,false,false,false,false
newFolderPicker,experimental,@grafana/grafana-frontend-platform,2024-01-12,false,false,false,true
jitterAlertRules,experimental,@grafana/alerting-squad,2024-01-17,false,false,true,false
jitterAlertRulesWithinGroups,experimental,@grafana/alerting-squad,2024-01-17,false,false,true,false
1 Name Stage Owner Created requiresDevMode RequiresLicense RequiresRestart FrontendOnly
157 cloudRBACRoles experimental @grafana/identity-access-team 2024-01-10 false false true false
158 alertingQueryOptimization GA @grafana/alerting-squad 2024-01-10 false false false false
159 newFolderPicker experimental @grafana/grafana-frontend-platform 2024-01-12 false false false true
160 jitterAlertRules experimental @grafana/alerting-squad 2024-01-17 false false true false
161 jitterAlertRulesWithinGroups experimental @grafana/alerting-squad 2024-01-17 false false true false
+8
View File
@@ -638,4 +638,12 @@ const (
// FlagNewFolderPicker
// Enables the nested folder picker without having nested folders enabled
FlagNewFolderPicker = "newFolderPicker"
// FlagJitterAlertRules
// Distributes alert rule evaluations more evenly over time, by rule group
FlagJitterAlertRules = "jitterAlertRules"
// FlagJitterAlertRulesWithinGroups
// Distributes alert rule evaluations more evenly over time, including spreading out rules within the same group
FlagJitterAlertRulesWithinGroups = "jitterAlertRulesWithinGroups"
)