diff --git a/public/app/features/alerting/unified/components/rule-viewer/tabs/Details.tsx b/public/app/features/alerting/unified/components/rule-viewer/tabs/Details.tsx index 5c723326abb..656a7c0179c 100644 --- a/public/app/features/alerting/unified/components/rule-viewer/tabs/Details.tsx +++ b/public/app/features/alerting/unified/components/rule-viewer/tabs/Details.tsx @@ -7,7 +7,7 @@ import { ClipboardButton, Stack, Text, TextLink, useStyles2 } from '@grafana/ui' import { CombinedRule } from 'app/types/unified-alerting'; import { Annotations } from 'app/types/unified-alerting-dto'; -import { isGrafanaRulerRule, isRecordingRulerRule } from '../../../utils/rules'; +import { isGrafanaRecordingRule, isGrafanaRulerRule, isRecordingRulerRule } from '../../../utils/rules'; import { MetaText } from '../../MetaText'; import { Tokenize } from '../../Tokenize'; @@ -17,6 +17,7 @@ interface DetailsProps { enum RuleType { GrafanaManagedAlertRule = 'Grafana-managed alert rule', + GrafanaManagedRecordingRule = 'Grafana-managed recording rule', CloudAlertRule = 'Cloud alert rule', CloudRecordingRule = 'Cloud recording rule', } @@ -27,7 +28,9 @@ const Details = ({ rule }: DetailsProps) => { let ruleType: RuleType; if (isGrafanaRulerRule(rule.rulerRule)) { - ruleType = RuleType.GrafanaManagedAlertRule; + ruleType = isGrafanaRecordingRule(rule.rulerRule) + ? RuleType.GrafanaManagedRecordingRule + : RuleType.GrafanaManagedAlertRule; } else if (isRecordingRulerRule(rule.rulerRule)) { ruleType = RuleType.CloudRecordingRule; } else { @@ -89,7 +92,7 @@ const Details = ({ rule }: DetailsProps) => { )} - {!isRecordingRulerRule(rule.rulerRule) && ( + {!isRecordingRulerRule(rule.rulerRule) && !isGrafanaRecordingRule(rule.rulerRule) && ( <> Pending period {rule.rulerRule?.for ?? '0s'} @@ -116,7 +119,7 @@ const Details = ({ rule }: DetailsProps) => { {/* annotations go here */} - {annotations && ( + {annotations && !isRecordingRulerRule(rule.rulerRule) && !isGrafanaRecordingRule(rule.rulerRule) && ( <> Annotations {Object.keys(annotations).length === 0 ? ( diff --git a/public/app/features/alerting/unified/utils/rules.ts b/public/app/features/alerting/unified/utils/rules.ts index fe4aa16b4b4..6ab49de9e48 100644 --- a/public/app/features/alerting/unified/utils/rules.ts +++ b/public/app/features/alerting/unified/utils/rules.ts @@ -9,6 +9,7 @@ import { CombinedRule, CombinedRuleGroup, CombinedRuleWithLocation, + EditableRuleIdentifier, GrafanaRuleIdentifier, PromRuleWithLocation, PrometheusRuleIdentifier, @@ -19,7 +20,6 @@ import { RuleNamespace, RuleWithLocation, RulesSource, - EditableRuleIdentifier, } from 'app/types/unified-alerting'; import { GrafanaAlertState, @@ -81,10 +81,6 @@ export function isGrafanaRulerRule(rule?: RulerRuleDTO | PostableRuleDTO): rule return typeof rule === 'object' && 'grafana_alert' in rule; } -export function isGrafanaRecordingRulerRule(rule?: RulerRuleDTO) { - return typeof rule === 'object' && 'grafana_alert' in rule && 'record' in rule.grafana_alert; -} - export function isCloudRulerRule(rule?: RulerRuleDTO | PostableRuleDTO): rule is RulerCloudRuleDTO { return typeof rule === 'object' && !isGrafanaRulerRule(rule); }