From 33d4e59ffb43052d55afd8279f7f407075f3e716 Mon Sep 17 00:00:00 2001 From: Gilles De Mey Date: Wed, 5 Jun 2024 12:46:23 +0200 Subject: [PATCH] Alerting: Use folder_uid instead of file for Grafana managed alert rules (#88497) --- .../features/alerting/unified/api/alertRuleApi.ts | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/public/app/features/alerting/unified/api/alertRuleApi.ts b/public/app/features/alerting/unified/api/alertRuleApi.ts index cf9f443202a..b19048af260 100644 --- a/public/app/features/alerting/unified/api/alertRuleApi.ts +++ b/public/app/features/alerting/unified/api/alertRuleApi.ts @@ -1,3 +1,5 @@ +import { set } from 'lodash'; + import { RelativeTimeRange } from '@grafana/data'; import { Matcher } from 'app/plugins/datasource/alertmanager/types'; import { RuleIdentifier, RuleNamespace, RulerDataSourceConfig } from 'app/types/unified-alerting'; @@ -17,7 +19,7 @@ import { import { ExportFormats } from '../components/export/providers'; import { Folder } from '../components/rule-editor/RuleFolderPicker'; -import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME } from '../utils/datasource'; +import { getDatasourceAPIUid, GRAFANA_RULES_SOURCE_NAME, isGrafanaRulesSource } from '../utils/datasource'; import { arrayKeyValuesToObject } from '../utils/labels'; import { isCloudRuleIdentifier, isPrometheusRuleIdentifier } from '../utils/rules'; @@ -174,13 +176,20 @@ export const alertRuleApi = alertingApi.injectEndpoints({ >({ query: ({ ruleSourceName, namespace, groupName, ruleName, dashboardUid, panelId }) => { const queryParams: Record = { - file: namespace, rule_group: groupName, rule_name: ruleName, dashboard_uid: dashboardUid, // Supported only by Grafana managed rules panel_id: panelId?.toString(), // Supported only by Grafana managed rules }; + if (namespace) { + if (isGrafanaRulesSource(ruleSourceName)) { + set(queryParams, 'folder_uid', namespace); + } else { + set(queryParams, 'file', namespace); + } + } + return { url: `api/prometheus/${getDatasourceAPIUid(ruleSourceName)}/api/v1/rules`, params: queryParams,