From bb713cf8e4ad49580d70199cca6bf4991c2ed434 Mon Sep 17 00:00:00 2001 From: Alexander Akhmetov Date: Tue, 17 Dec 2024 11:13:31 +0100 Subject: [PATCH] Alerting: Add simplified_notifications_section setting to grafana_alerting_simplified_editor_rules metric (#98053) --- pkg/services/ngalert/schedule/metrics.go | 14 ++++++++++---- .../ngalert/schedule/schedule_unit_test.go | 3 +++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/pkg/services/ngalert/schedule/metrics.go b/pkg/services/ngalert/schedule/metrics.go index 50d10e96a36..1eb50efaa71 100644 --- a/pkg/services/ngalert/schedule/metrics.go +++ b/pkg/services/ngalert/schedule/metrics.go @@ -73,11 +73,17 @@ func (sch *schedule) updateRulesMetrics(alertRules []*models.AlertRule) { } // Count rules with simplified editor settings per org - if rule.Metadata.EditorSettings.SimplifiedQueryAndExpressionsSection { - if _, ok := simplifiedEditorSettingsPerOrg[rule.OrgID]; !ok { - simplifiedEditorSettingsPerOrg[rule.OrgID] = make(map[string]int64) + editorSettingsMap := map[string]bool{ + "simplified_query_and_expressions_section": rule.Metadata.EditorSettings.SimplifiedQueryAndExpressionsSection, + "simplified_notifications_section": rule.Metadata.EditorSettings.SimplifiedNotificationsSection, + } + for key, value := range editorSettingsMap { + if value { + if _, ok := simplifiedEditorSettingsPerOrg[rule.OrgID]; !ok { + simplifiedEditorSettingsPerOrg[rule.OrgID] = make(map[string]int64) + } + simplifiedEditorSettingsPerOrg[rule.OrgID][key]++ } - simplifiedEditorSettingsPerOrg[rule.OrgID]["simplified_query_and_expressions_section"]++ } // Count groups per org diff --git a/pkg/services/ngalert/schedule/schedule_unit_test.go b/pkg/services/ngalert/schedule/schedule_unit_test.go index 1cea9aa4202..5f4203c07e6 100644 --- a/pkg/services/ngalert/schedule/schedule_unit_test.go +++ b/pkg/services/ngalert/schedule/schedule_unit_test.go @@ -798,6 +798,7 @@ func TestSchedule_updateRulesMetrics(t *testing.T) { alertRule1 := models.RuleGen.With( models.RuleGen.WithOrgID(firstOrgID), models.RuleGen.WithEditorSettingsSimplifiedQueryAndExpressionsSection(true), + models.RuleGen.WithEditorSettingsSimplifiedNotificationsSection(true), ).GenerateRef() t.Run("it should show one rule in a single org", func(t *testing.T) { @@ -806,6 +807,7 @@ func TestSchedule_updateRulesMetrics(t *testing.T) { expectedMetric := fmt.Sprintf( `# HELP grafana_alerting_simplified_editor_rules The number of alert rules using simplified editor settings. # TYPE grafana_alerting_simplified_editor_rules gauge + grafana_alerting_simplified_editor_rules{org="%[1]d",setting="simplified_notifications_section"} 1 grafana_alerting_simplified_editor_rules{org="%[1]d",setting="simplified_query_and_expressions_section"} 1 `, alertRule1.OrgID) @@ -824,6 +826,7 @@ func TestSchedule_updateRulesMetrics(t *testing.T) { expectedMetric := fmt.Sprintf( `# HELP grafana_alerting_simplified_editor_rules The number of alert rules using simplified editor settings. # TYPE grafana_alerting_simplified_editor_rules gauge + grafana_alerting_simplified_editor_rules{org="%[1]d",setting="simplified_notifications_section"} 1 grafana_alerting_simplified_editor_rules{org="%[1]d",setting="simplified_query_and_expressions_section"} 1 grafana_alerting_simplified_editor_rules{org="%[2]d",setting="simplified_query_and_expressions_section"} 1 `, alertRule1.OrgID, alertRule2.OrgID)