diff --git a/public/app/features/alerting/unified/home/Insights.tsx b/public/app/features/alerting/unified/home/Insights.tsx index b172d360094..44f70e04703 100644 --- a/public/app/features/alerting/unified/home/Insights.tsx +++ b/public/app/features/alerting/unified/home/Insights.tsx @@ -17,6 +17,7 @@ import { VariableValueSelectors, } from '@grafana/scenes'; +import { config } from '../../../../core/config'; import { SectionFooter } from '../insights/SectionFooter'; import { SectionSubheader } from '../insights/SectionSubheader'; import { getGrafanaInstancesByStateScene } from '../insights/grafana/AlertsByStateScene'; @@ -95,6 +96,10 @@ export const PANEL_STYLES = { minHeight: 300 }; const THIS_WEEK_TIME_RANGE = new SceneTimeRange({ from: 'now-1w', to: 'now' }); +const namespace = config.bootData.settings.namespace; + +export const INSTANCE_ID = namespace.includes('stack-') ? namespace.replace('stack-', '') : undefined; + export function getInsightsScenes() { const dataSourceSrv = getDataSourceSrv(); diff --git a/public/app/features/alerting/unified/insights/grafana/AlertsByStateScene.tsx b/public/app/features/alerting/unified/insights/grafana/AlertsByStateScene.tsx index 2d3703dfed4..96de8f16a2e 100644 --- a/public/app/features/alerting/unified/insights/grafana/AlertsByStateScene.tsx +++ b/public/app/features/alerting/unified/insights/grafana/AlertsByStateScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneDataTransformer, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getGrafanaInstancesByStateScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by(state) (grafanacloud_grafana_instance_alerting_alerts{id="${INSTANCE_ID}"})` + : 'sum by (state) (grafanacloud_grafana_instance_alerting_alerts)'; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_alerts)', + expr, range: true, legendFormat: '{{state}}', }, diff --git a/public/app/features/alerting/unified/insights/grafana/EvalSuccessVsFailuresScene.tsx b/public/app/features/alerting/unified/insights/grafana/EvalSuccessVsFailuresScene.tsx index 51f8acabf87..9382f40a671 100644 --- a/public/app/features/alerting/unified/insights/grafana/EvalSuccessVsFailuresScene.tsx +++ b/public/app/features/alerting/unified/insights/grafana/EvalSuccessVsFailuresScene.tsx @@ -3,22 +3,30 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getGrafanaEvalSuccessVsFailuresScene(datasource: DataSourceRef, panelTitle: string) { + const exprA = INSTANCE_ID + ? `sum(grafanacloud_grafana_instance_alerting_rule_evaluations_total:rate5m{id="${INSTANCE_ID}"}) - sum(grafanacloud_grafana_instance_alerting_rule_evaluation_failures_total:rate5m{id="${INSTANCE_ID}"})` + : `sum(grafanacloud_grafana_instance_alerting_rule_evaluations_total:rate5m) - sum(grafanacloud_grafana_instance_alerting_rule_evaluation_failures_total:rate5m)`; + + const exprB = INSTANCE_ID + ? `sum(grafanacloud_grafana_instance_alerting_rule_evaluation_failures_total:rate5m{id="${INSTANCE_ID}"})` + : `sum(grafanacloud_grafana_instance_alerting_rule_evaluation_failures_total:rate5m)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum(grafanacloud_grafana_instance_alerting_rule_evaluations_total:rate5m) - sum(grafanacloud_grafana_instance_alerting_rule_evaluation_failures_total:rate5m)', + exprA, range: true, legendFormat: 'success', }, { refId: 'B', - expr: 'sum(grafanacloud_grafana_instance_alerting_rule_evaluation_failures_total:rate5m)', + exprB, range: true, legendFormat: 'failed', }, diff --git a/public/app/features/alerting/unified/insights/grafana/Firing.tsx b/public/app/features/alerting/unified/insights/grafana/Firing.tsx index bbe6070be4a..cdf154979c8 100644 --- a/public/app/features/alerting/unified/insights/grafana/Firing.tsx +++ b/public/app/features/alerting/unified/insights/grafana/Firing.tsx @@ -4,17 +4,21 @@ import { ThresholdsMode } from '@grafana/data'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef } from '@grafana/schema'; -import { PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getFiringGrafanaAlertsScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{state="active", id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{state="active"})`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', instant: true, - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{state="active"})', + expr, }, ], }); diff --git a/public/app/features/alerting/unified/insights/grafana/InstanceStatusScene.tsx b/public/app/features/alerting/unified/insights/grafana/InstanceStatusScene.tsx index 3600fd336f8..b561a30f39d 100644 --- a/public/app/features/alerting/unified/insights/grafana/InstanceStatusScene.tsx +++ b/public/app/features/alerting/unified/insights/grafana/InstanceStatusScene.tsx @@ -3,7 +3,7 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef } from '@grafana/schema'; -import { overrideToFixedColor } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getInstanceStatByStatusScene( datasource: DataSourceRef, @@ -11,13 +11,17 @@ export function getInstanceStatByStatusScene( panelDescription: string, status: 'alerting' | 'pending' | 'nodata' | 'normal' | 'error' ) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_alerts{state="${status}", id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_alerts{state="${status}"})`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', instant: true, - expr: `sum by (state) (grafanacloud_grafana_instance_alerting_alerts{state="${status}"})`, + expr, legendFormat: '{{state}}', }, ], diff --git a/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx b/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx index 2055c5002dd..1b37c2f2783 100644 --- a/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx +++ b/public/app/features/alerting/unified/insights/grafana/MissedIterationsScene.tsx @@ -11,16 +11,17 @@ import { } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; 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 query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (rule_group) (grafanacloud_instance_rule_group_iterations_missed_total:rate5m)', + expr, range: true, legendFormat: '{{rule_group}}', }, diff --git a/public/app/features/alerting/unified/insights/grafana/Paused.tsx b/public/app/features/alerting/unified/insights/grafana/Paused.tsx index 5dcab79b5be..9d5b9a58c4e 100644 --- a/public/app/features/alerting/unified/insights/grafana/Paused.tsx +++ b/public/app/features/alerting/unified/insights/grafana/Paused.tsx @@ -4,17 +4,21 @@ import { ThresholdsMode } from '@grafana/data'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef } from '@grafana/schema'; -import { PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getPausedGrafanaAlertsScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{state="paused", id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{state="paused"})`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', instant: true, - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{state="paused"})', + expr, }, ], }); diff --git a/public/app/features/alerting/unified/insights/grafana/RulesByEvaluation.tsx b/public/app/features/alerting/unified/insights/grafana/RulesByEvaluation.tsx index c331bc01927..c5726fb77b2 100644 --- a/public/app/features/alerting/unified/insights/grafana/RulesByEvaluation.tsx +++ b/public/app/features/alerting/unified/insights/grafana/RulesByEvaluation.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getGrafanaRulesByEvaluationScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules)', + expr, range: true, legendFormat: '{{state}} evaluation', }, diff --git a/public/app/features/alerting/unified/insights/grafana/RulesByEvaluationPercentage.tsx b/public/app/features/alerting/unified/insights/grafana/RulesByEvaluationPercentage.tsx index 826b3461206..0749765c30f 100644 --- a/public/app/features/alerting/unified/insights/grafana/RulesByEvaluationPercentage.tsx +++ b/public/app/features/alerting/unified/insights/grafana/RulesByEvaluationPercentage.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getGrafanaRulesByEvaluationPercentageScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules{id="${INSTANCE_ID}"}) / ignoring(state) group_left sum(grafanacloud_grafana_instance_alerting_rule_group_rules{id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules) / ignoring(state) group_left sum(grafanacloud_grafana_instance_alerting_rule_group_rules)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_rule_group_rules) / ignoring(state) group_left sum(grafanacloud_grafana_instance_alerting_rule_group_rules)', + expr, range: true, legendFormat: '{{state}} evaluation', }, diff --git a/public/app/features/alerting/unified/insights/grafana/alertmanager/AlertsByState.tsx b/public/app/features/alerting/unified/insights/grafana/alertmanager/AlertsByState.tsx index 7f9162fa503..6ee7175abd6 100644 --- a/public/app/features/alerting/unified/insights/grafana/alertmanager/AlertsByState.tsx +++ b/public/app/features/alerting/unified/insights/grafana/alertmanager/AlertsByState.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getAlertsByStateScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_alertmanager_alerts{id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_alertmanager_alerts)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_alertmanager_alerts)', + expr, range: true, legendFormat: '{{state}}', }, diff --git a/public/app/features/alerting/unified/insights/grafana/alertmanager/SilencesByStateScene.tsx b/public/app/features/alerting/unified/insights/grafana/alertmanager/SilencesByStateScene.tsx index b29b5894550..e710b591fb3 100644 --- a/public/app/features/alerting/unified/insights/grafana/alertmanager/SilencesByStateScene.tsx +++ b/public/app/features/alerting/unified/insights/grafana/alertmanager/SilencesByStateScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getGrafanaAlertmanagerSilencesScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_grafana_instance_alerting_silences{id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_grafana_instance_alerting_silences)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_grafana_instance_alerting_silences)', + expr, range: true, legendFormat: '{{state}}', }, diff --git a/public/app/features/alerting/unified/insights/mimir/AlertsByState.tsx b/public/app/features/alerting/unified/insights/mimir/AlertsByState.tsx index 1f3ebb7deea..b0b725f6bba 100644 --- a/public/app/features/alerting/unified/insights/mimir/AlertsByState.tsx +++ b/public/app/features/alerting/unified/insights/mimir/AlertsByState.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getAlertsByStateScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_instance_alertmanager_alerts{id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_instance_alertmanager_alerts)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_instance_alertmanager_alerts)', + expr, range: true, legendFormat: '{{state}}', }, diff --git a/public/app/features/alerting/unified/insights/mimir/InvalidConfig.tsx b/public/app/features/alerting/unified/insights/mimir/InvalidConfig.tsx index 401c5303965..5705fd0ff84 100644 --- a/public/app/features/alerting/unified/insights/mimir/InvalidConfig.tsx +++ b/public/app/features/alerting/unified/insights/mimir/InvalidConfig.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { BigValueGraphMode, DataSourceRef } from '@grafana/schema'; -import { PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getInvalidConfigScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (cluster)(grafanacloud_instance_alertmanager_invalid_config{id="${INSTANCE_ID}"})` + : `sum by (cluster)(grafanacloud_instance_alertmanager_invalid_config)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (cluster)(grafanacloud_instance_alertmanager_invalid_config)', + expr, range: true, legendFormat: '{{cluster}}', }, diff --git a/public/app/features/alerting/unified/insights/mimir/Notifications.tsx b/public/app/features/alerting/unified/insights/mimir/Notifications.tsx index 933107dd599..d7cc629dcbe 100644 --- a/public/app/features/alerting/unified/insights/mimir/Notifications.tsx +++ b/public/app/features/alerting/unified/insights/mimir/Notifications.tsx @@ -3,22 +3,30 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getNotificationsScene(datasource: DataSourceRef, panelTitle: string) { + const exprA = INSTANCE_ID + ? `sum by(cluster)(grafanacloud_instance_alertmanager_notifications_per_second{id="${INSTANCE_ID}"}) - sum by (cluster)(grafanacloud_instance_alertmanager_notifications_failed_per_second{id="${INSTANCE_ID}"})` + : `sum by(cluster)(grafanacloud_instance_alertmanager_notifications_per_second) - sum by (cluster)(grafanacloud_instance_alertmanager_notifications_failed_per_second)`; + + const exprB = INSTANCE_ID + ? `sum by(cluster)(grafanacloud_instance_alertmanager_notifications_failed_per_second{id="${INSTANCE_ID}"})` + : `sum by(cluster)(grafanacloud_instance_alertmanager_notifications_failed_per_second)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by(cluster)(grafanacloud_instance_alertmanager_notifications_per_second) - sum by (cluster)(grafanacloud_instance_alertmanager_notifications_failed_per_second)', + exprA, range: true, legendFormat: 'success', }, { refId: 'B', - expr: 'sum by(cluster)(grafanacloud_instance_alertmanager_notifications_failed_per_second)', + exprB, range: true, legendFormat: 'failed', }, diff --git a/public/app/features/alerting/unified/insights/mimir/Silences.tsx b/public/app/features/alerting/unified/insights/mimir/Silences.tsx index 416c51061d4..97398bcf404 100644 --- a/public/app/features/alerting/unified/insights/mimir/Silences.tsx +++ b/public/app/features/alerting/unified/insights/mimir/Silences.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { PANEL_STYLES } from '../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../home/Insights'; import { InsightsRatingModal } from '../RatingModal'; export function getSilencesScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum by (state) (grafanacloud_instance_alertmanager_silences{id="${INSTANCE_ID}"})` + : `sum by (state) (grafanacloud_instance_alertmanager_silences)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum by (state) (grafanacloud_instance_alertmanager_silences)', + expr, range: true, legendFormat: '{{state}}', }, diff --git a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationIntervalRatioScene.tsx b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationIntervalRatioScene.tsx index 9292de7952a..b80b17779cb 100644 --- a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationIntervalRatioScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationIntervalRatioScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, ThresholdsMode, TooltipDisplayMode } from '@grafana/schema'; -import { PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getRuleGroupEvaluationDurationIntervalRatioScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `grafanacloud_instance_rule_group_last_duration_seconds{rule_group="$rule_group", id="${INSTANCE_ID}"} / grafanacloud_instance_rule_group_interval_seconds{rule_group="$rule_group", id="${INSTANCE_ID}"}` + : `grafanacloud_instance_rule_group_last_duration_seconds{rule_group="$rule_group"} / grafanacloud_instance_rule_group_interval_seconds{rule_group="$rule_group"}`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: `grafanacloud_instance_rule_group_last_duration_seconds{rule_group="$rule_group"} / grafanacloud_instance_rule_group_interval_seconds{rule_group="$rule_group"}`, + expr, range: true, legendFormat: 'duration / interval', }, diff --git a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationScene.tsx b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationScene.tsx index b183efc9eda..86761697725 100644 --- a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationDurationScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getRuleGroupEvaluationDurationScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `grafanacloud_instance_rule_group_last_duration_seconds{rule_group="$rule_group", id="${INSTANCE_ID}"}` + : `grafanacloud_instance_rule_group_last_duration_seconds{rule_group="$rule_group"}`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: `grafanacloud_instance_rule_group_last_duration_seconds{rule_group="$rule_group"}`, + expr, range: true, legendFormat: '{{rule_group}}', }, diff --git a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationsScene.tsx b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationsScene.tsx index b35ac1d113b..33a0fea7c45 100644 --- a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationsScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupEvaluationsScene.tsx @@ -3,22 +3,30 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getRuleGroupEvaluationsScene(datasource: DataSourceRef, panelTitle: string) { + const exprA = INSTANCE_ID + ? `grafanacloud_instance_rule_evaluations_total:rate5m{rule_group="$rule_group", id="${INSTANCE_ID}} - grafanacloud_instance_rule_evaluation_failures_total:rate5m{rule_group=~"$rule_group", id="${INSTANCE_ID}}` + : `grafanacloud_instance_rule_evaluations_total:rate5m{rule_group="$rule_group"} - grafanacloud_instance_rule_evaluation_failures_total:rate5m{rule_group=~"$rule_group"}`; + + const exprB = INSTANCE_ID + ? `grafanacloud_instance_rule_evaluation_failures_total:rate5m{rule_group=~"$rule_group", id="${INSTANCE_ID}}` + : `grafanacloud_instance_rule_evaluation_failures_total:rate5m{rule_group=~"$rule_group"}`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: `grafanacloud_instance_rule_evaluations_total:rate5m{rule_group="$rule_group"} - grafanacloud_instance_rule_evaluation_failures_total:rate5m{rule_group=~"$rule_group"}`, + exprA, range: true, legendFormat: 'success', }, { refId: 'B', - expr: `grafanacloud_instance_rule_evaluation_failures_total:rate5m{rule_group=~"$rule_group"}`, + exprB, range: true, legendFormat: 'failed', }, diff --git a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupIntervalScene.tsx b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupIntervalScene.tsx index 524e597e6a2..a576a6f9429 100644 --- a/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupIntervalScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/perGroup/RuleGroupIntervalScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { BigValueGraphMode, DataSourceRef } from '@grafana/schema'; -import { PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getRuleGroupIntervalScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `grafanacloud_instance_rule_group_interval_seconds{rule_group="$rule_group", id="${INSTANCE_ID}"}` + : `grafanacloud_instance_rule_group_interval_seconds{rule_group="$rule_group"}`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: `grafanacloud_instance_rule_group_interval_seconds{rule_group="$rule_group"}`, + expr, range: true, legendFormat: 'interval', }, diff --git a/public/app/features/alerting/unified/insights/mimir/perGroup/RulesPerGroupScene.tsx b/public/app/features/alerting/unified/insights/mimir/perGroup/RulesPerGroupScene.tsx index 3be05e4debe..437366c9550 100644 --- a/public/app/features/alerting/unified/insights/mimir/perGroup/RulesPerGroupScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/perGroup/RulesPerGroupScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { BigValueGraphMode, DataSourceRef } from '@grafana/schema'; -import { PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getRulesPerGroupScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum(grafanacloud_instance_rule_group_rules{rule_group="$rule_group", id="${INSTANCE_ID}"})` + : `sum(grafanacloud_instance_rule_group_rules{rule_group="$rule_group"})`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: `sum(grafanacloud_instance_rule_group_rules{rule_group="$rule_group"})`, + expr, range: true, legendFormat: 'number of rules', }, diff --git a/public/app/features/alerting/unified/insights/mimir/rules/EvalSuccessVsFailuresScene.tsx b/public/app/features/alerting/unified/insights/mimir/rules/EvalSuccessVsFailuresScene.tsx index 792445ec767..363c39364be 100644 --- a/public/app/features/alerting/unified/insights/mimir/rules/EvalSuccessVsFailuresScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/rules/EvalSuccessVsFailuresScene.tsx @@ -3,22 +3,30 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getEvalSuccessVsFailuresScene(datasource: DataSourceRef, panelTitle: string) { + const exprA = INSTANCE_ID + ? `sum(grafanacloud_instance_rule_evaluations_total:rate5m{id="${INSTANCE_ID}) - sum(grafanacloud_instance_rule_evaluation_failures_total:rate5m{id="${INSTANCE_ID})` + : `sum(grafanacloud_instance_rule_evaluations_total:rate5m) - sum(grafanacloud_instance_rule_evaluation_failures_total:rate5m)`; + + const exprB = INSTANCE_ID + ? `sum(grafanacloud_instance_rule_evaluation_failures_total:rate5m{id="${INSTANCE_ID})` + : `sum(grafanacloud_instance_rule_evaluation_failures_total:rate5m)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum(grafanacloud_instance_rule_evaluations_total:rate5m) - sum(grafanacloud_instance_rule_evaluation_failures_total:rate5m)', + exprA, range: true, legendFormat: 'success', }, { refId: 'B', - expr: 'sum(grafanacloud_instance_rule_evaluation_failures_total:rate5m)', + exprB, range: true, legendFormat: 'failed', }, diff --git a/public/app/features/alerting/unified/insights/mimir/rules/MissedIterationsScene.tsx b/public/app/features/alerting/unified/insights/mimir/rules/MissedIterationsScene.tsx index 16d32fa5941..eb8b4d37dcb 100644 --- a/public/app/features/alerting/unified/insights/mimir/rules/MissedIterationsScene.tsx +++ b/public/app/features/alerting/unified/insights/mimir/rules/MissedIterationsScene.tsx @@ -3,16 +3,20 @@ import React from 'react'; import { PanelBuilders, SceneFlexItem, SceneQueryRunner } from '@grafana/scenes'; import { DataSourceRef, GraphDrawStyle, TooltipDisplayMode } from '@grafana/schema'; -import { overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; +import { INSTANCE_ID, overrideToFixedColor, PANEL_STYLES } from '../../../home/Insights'; import { InsightsRatingModal } from '../../RatingModal'; export function getMissedIterationsScene(datasource: DataSourceRef, panelTitle: string) { + const expr = INSTANCE_ID + ? `sum(grafanacloud_instance_rule_group_iterations_missed_total:rate5m{id="${INSTANCE_ID}"})` + : `sum(grafanacloud_instance_rule_group_iterations_missed_total:rate5m)`; + const query = new SceneQueryRunner({ datasource, queries: [ { refId: 'A', - expr: 'sum(grafanacloud_instance_rule_group_iterations_missed_total:rate5m)', + expr, range: true, legendFormat: 'missed', },