mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Hide some fields in the details tab (view page) when it's a grafana recording rule
This commit is contained in:
parent
4f024d94d8
commit
5439d99d07
@ -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) => {
|
||||
)}
|
||||
</MetaText>
|
||||
<MetaText direction="column">
|
||||
{!isRecordingRulerRule(rule.rulerRule) && (
|
||||
{!isRecordingRulerRule(rule.rulerRule) && !isGrafanaRecordingRule(rule.rulerRule) && (
|
||||
<>
|
||||
Pending period
|
||||
<Text color="primary">{rule.rulerRule?.for ?? '0s'}</Text>
|
||||
@ -116,7 +119,7 @@ const Details = ({ rule }: DetailsProps) => {
|
||||
</div>
|
||||
|
||||
{/* annotations go here */}
|
||||
{annotations && (
|
||||
{annotations && !isRecordingRulerRule(rule.rulerRule) && !isGrafanaRecordingRule(rule.rulerRule) && (
|
||||
<>
|
||||
<Text variant="h4">Annotations</Text>
|
||||
{Object.keys(annotations).length === 0 ? (
|
||||
|
@ -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);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user