diff --git a/public/app/features/alerting/unified/home/Insights.tsx b/public/app/features/alerting/unified/home/Insights.tsx index 848c2dee9b2..05afaa748ca 100644 --- a/public/app/features/alerting/unified/home/Insights.tsx +++ b/public/app/features/alerting/unified/home/Insights.tsx @@ -289,7 +289,7 @@ function getGrafanaManagedScenes() { new SceneFlexLayout({ children: [ getGrafanaEvalSuccessVsFailuresScene(cloudUsageDs, 'Evaluation success vs failures'), - getGrafanaMissedIterationsScene(cloudUsageDs, 'Iterations missed per evaluation group'), + getGrafanaMissedIterationsScene(cloudUsageDs, 'Iterations missed per alert rule'), ], }), ], diff --git a/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx b/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx index 2bc5e3d426b..276dc5dae3f 100644 --- a/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx +++ b/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx @@ -1,20 +1,11 @@ -import { Observable, map } from 'rxjs'; - -import { DataFrame } from '@grafana/data'; -import { - CustomTransformOperator, - PanelBuilders, - SceneDataTransformer, - SceneFlexItem, - SceneQueryRunner, -} from '@grafana/scenes'; +import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; import { INSTANCE_ID, PANEL_STYLES } from '../../home/Insights'; import { InsightsMenuButton } from '../InsightsMenuButton'; export function getGrafanaMissedIterationsScene(datasource: DataSourceRef, panelTitle: string) { - const expr = `sum by(rule_group) (grafanacloud_instance_rule_group_iterations_missed_total:rate5m{id="${INSTANCE_ID}"})`; + const expr = `sum by(rule_title) (grafanacloud_grafana_instance_alerting_schedule_rule_evaluations_missed_total:rate5m{id="${INSTANCE_ID}"})`; const query = new SceneQueryRunner({ datasource, queries: [ @@ -22,44 +13,17 @@ export function getGrafanaMissedIterationsScene(datasource: DataSourceRef, panel refId: 'A', expr, range: true, - legendFormat: '{{rule_group}}', + legendFormat: '{{rule_title}}', }, ], }); - const legendTransformation: CustomTransformOperator = () => (source: Observable) => { - return source.pipe( - map((data: DataFrame[]) => { - return data.map((frame: DataFrame) => { - return { - ...frame, - fields: frame.fields.map((field) => { - const displayNameFromDs = field.config.displayNameFromDS || ''; - const matches = displayNameFromDs.match(/\/rules\/\d+\/(\w+);(\w+)/); - - if (matches) { - field.config.displayName = `Folder: ${matches[1]} - Group: ${matches[2]}`; - } - - return field; - }), - }; - }); - }) - ); - }; - - const transformation = new SceneDataTransformer({ - $data: query, - transformations: [legendTransformation], - }); - return new SceneFlexItem({ ...PANEL_STYLES, body: PanelBuilders.timeseries() .setTitle(panelTitle) - .setDescription('The number of missed iterations per evaluation group') - .setData(transformation) + .setDescription('The number of missed iterations per alert rule') + .setData(query) .setOption('tooltip', { mode: TooltipDisplayMode.Multi }) .setCustomFieldConfig('drawStyle', GraphDrawStyle.Line) .setHeaderActions([new InsightsMenuButton({ panel: panelTitle })])