Alerting: Prometheus primary mode for the alert list page (#92975)

* Lazy loading of mimir groups

* Refactor rule statuses

* Use prometheus endpoint to populate namespace and group dropdowns

* Add a feature toggle

* Use lazy loading ruler rules if the feature toggle enabled

* Remove unnecessary props form dynamic table

* Remove query from hash calculation

* Conditionally load ns and group autocompletions from Prom or Ruler APIs

* Fix prometheus dto labels property type

* Add a new suggestions hook which provides autocomplete options for the alert rule form

* Improve delete status handling

* Add waiting for Prometheus endpoint consistency after update submission

* Get rule definition from ruler or prometheus endpoint in useCombinedRule

* Add Prometheus consistency check. Fix view page redirects

* Remove rules reload after rule creation, remove statuses from Prom primary mode

* Add waiting for Prometheus consistency on delete rule action

* Add groups list rendering improvements

* Add memo to useAbilities

* Fix GMA consistency check, fix GMA statuses

* defer filered rules rendering

* Update failing tests

* Update locales

* Add rule-id tests

* Remove unused action

* update loading styles

* Fix unrelated test

* Add a new object for reading alerting feature toggles, address minor review issues

* Improve consistency check

* update i18n

* Improve rule form redirects

* Refactor feature toggle handling

* Update docs/sources/setup-grafana/configure-grafana/feature-toggles/index.md

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Update public/app/features/alerting/unified/components/rule-viewer/RuleViewer.tsx

Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>

* Fix prettier issues

* Fix i18n

* Fix the feature toggle description

* Fix rule updates, fix ruler-based suggestions, wait for deletion for GMA rules

* Fix rename

* Remove unused code, improve copy

* Update i18n

* Fix url redirect when serving from subpath

---------

Co-authored-by: Tom Ratcliffe <tom.ratcliffe@grafana.com>
Co-authored-by: Gilles De Mey <gilles.de.mey@gmail.com>
Co-authored-by: brendamuir <100768211+brendamuir@users.noreply.github.com>
This commit is contained in:
Konrad Lalik
2024-09-27 14:27:16 +02:00
committed by GitHub
co-authored by brendamuir Tom Ratcliffe Gilles De Mey
parent fcb17379ea
commit db42af20ca
40 changed files with 945 additions and 419 deletions
+7
View File
@@ -1403,6 +1403,13 @@ var (
Stage: FeatureStageExperimental,
Owner: grafanaObservabilityLogsSquad,
},
{
Name: "alertingPrometheusRulesPrimary",
Description: "Uses Prometheus rules as the primary source of truth for ruler-enabled data sources",
Stage: FeatureStageExperimental,
Owner: grafanaAlertingSquad,
FrontendOnly: true,
},
{
Name: "singleTopNav",
Description: "Unifies the top search bar and breadcrumb bar into one",
+1
View File
@@ -185,6 +185,7 @@ alertingFilterV2,experimental,@grafana/alerting-squad,false,false,false
dataplaneAggregator,experimental,@grafana/grafana-app-platform-squad,false,true,false
newFiltersUI,experimental,@grafana/dashboards-squad,false,false,false
lokiSendDashboardPanelNames,experimental,@grafana/observability-logs,false,false,false
alertingPrometheusRulesPrimary,experimental,@grafana/alerting-squad,false,false,true
singleTopNav,experimental,@grafana/grafana-frontend-platform,false,false,true
exploreLogsShardSplitting,experimental,@grafana/observability-logs,false,false,true
exploreLogsAggregatedMetrics,experimental,@grafana/observability-logs,false,false,true
1 Name Stage Owner requiresDevMode RequiresRestart FrontendOnly
185 dataplaneAggregator experimental @grafana/grafana-app-platform-squad false true false
186 newFiltersUI experimental @grafana/dashboards-squad false false false
187 lokiSendDashboardPanelNames experimental @grafana/observability-logs false false false
188 alertingPrometheusRulesPrimary experimental @grafana/alerting-squad false false true
189 singleTopNav experimental @grafana/grafana-frontend-platform false false true
190 exploreLogsShardSplitting experimental @grafana/observability-logs false false true
191 exploreLogsAggregatedMetrics experimental @grafana/observability-logs false false true
+4
View File
@@ -751,6 +751,10 @@ const (
// Send dashboard and panel names to Loki when querying
FlagLokiSendDashboardPanelNames = "lokiSendDashboardPanelNames"
// FlagAlertingPrometheusRulesPrimary
// Uses Prometheus rules as the primary source of truth for ruler-enabled data sources
FlagAlertingPrometheusRulesPrimary = "alertingPrometheusRulesPrimary"
// FlagSingleTopNav
// Unifies the top search bar and breadcrumb bar into one
FlagSingleTopNav = "singleTopNav"
+16
View File
@@ -240,6 +240,22 @@
"hideFromAdminPage": true
}
},
{
"metadata": {
"name": "alertingPrometheusRulesPrimary",
"resourceVersion": "1727332930692",
"creationTimestamp": "2024-09-09T13:56:47Z",
"annotations": {
"grafana.app/updatedTimestamp": "2024-09-26 06:42:10.692959 +0000 UTC"
}
},
"spec": {
"description": "Uses Prometheus rules as the primary source of truth for ruler-enabled data sources",
"stage": "experimental",
"codeowner": "@grafana/alerting-squad",
"frontend": true
}
},
{
"metadata": {
"name": "alertingQueryAndExpressionsStepMode",