From 414524e79986a6c9461bc13f537ab79a71b61f8d Mon Sep 17 00:00:00 2001 From: Moustafa Baiou Date: Thu, 18 Sep 2025 16:03:01 -0400 Subject: [PATCH] Alerting: Add index for rule_group_index in alert_rule table This is a slight optimization for the list queries which sort by these fields. --- pkg/services/sqlstore/migrations/migrations.go | 2 ++ .../migrations/ualert/alert_rule_group_index.go | 14 ++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 pkg/services/sqlstore/migrations/ualert/alert_rule_group_index.go diff --git a/pkg/services/sqlstore/migrations/migrations.go b/pkg/services/sqlstore/migrations/migrations.go index 6a075b7b10f..1762d98a075 100644 --- a/pkg/services/sqlstore/migrations/migrations.go +++ b/pkg/services/sqlstore/migrations/migrations.go @@ -158,4 +158,6 @@ func (oss *OSSMigrations) AddMigration(mg *Migrator) { ualert.AddStateFiredAtColumn(mg) ualert.CollateAlertRuleGroup(mg) + + ualert.AddAlertRuleGroupIndexMigration(mg) } diff --git a/pkg/services/sqlstore/migrations/ualert/alert_rule_group_index.go b/pkg/services/sqlstore/migrations/ualert/alert_rule_group_index.go new file mode 100644 index 00000000000..e7df19a324d --- /dev/null +++ b/pkg/services/sqlstore/migrations/ualert/alert_rule_group_index.go @@ -0,0 +1,14 @@ +package ualert + +import "github.com/grafana/grafana/pkg/services/sqlstore/migrator" + +// AddAlertRuleGroupIndexMigration adds an index on org_id, namespace_uid, rule_group, and rule_group_idx columns to alert_rule table. +func AddAlertRuleGroupIndexMigration(mg *migrator.Migrator) { + mg.AddMigration("add index in alert_rule on org_id, namespace_uid, rule_group and rule_group_idx columns", migrator.NewAddIndexMigration( + migrator.Table{Name: "alert_rule"}, + &migrator.Index{ + Name: "IDX_alert_rule_org_id_namespace_uid_rule_group_rule_group_idx", + Cols: []string{"org_id", "namespace_uid", "rule_group", "rule_group_idx"}, + }, + )) +}