mirror of
https://github.com/grafana/grafana.git
synced 2025-02-14 01:23:32 -06:00
Alerting: Track when switching from simplified routing to policies routing or vice versa (#83108)
Track when switching from simplified routing to policies routing or vice versa
This commit is contained in:
parent
57df3b84dc
commit
7a741a31bd
@ -225,6 +225,13 @@ export function trackRulesSearchComponentInteraction(filter: keyof RulesFilter)
|
||||
export function trackRulesListViewChange(payload: { view: string }) {
|
||||
reportInteraction('grafana_alerting_rules_list_mode', { ...payload });
|
||||
}
|
||||
export function trackSwitchToSimplifiedRouting() {
|
||||
reportInteraction('grafana_alerting_switch_to_simplified_routing');
|
||||
}
|
||||
|
||||
export function trackSwitchToPoliciesRouting() {
|
||||
reportInteraction('grafana_alerting_switch_to_policies_routing');
|
||||
}
|
||||
|
||||
export type AlertRuleTrackingProps = {
|
||||
user_id: number;
|
||||
|
@ -37,6 +37,8 @@ import { backendSrv } from '../../../../core/services/backend_srv';
|
||||
import {
|
||||
logInfo,
|
||||
LogMessages,
|
||||
trackSwitchToPoliciesRouting,
|
||||
trackSwitchToSimplifiedRouting,
|
||||
withPerformanceLogging,
|
||||
withPromRulesMetadataLogging,
|
||||
withRulerRulesMetadataLogging,
|
||||
@ -79,7 +81,7 @@ import { makeAMLink } from '../utils/misc';
|
||||
import { AsyncRequestMapSlice, withAppEvents, withSerializedError } from '../utils/redux';
|
||||
import * as ruleId from '../utils/rule-id';
|
||||
import { getRulerClient } from '../utils/rulerClient';
|
||||
import { getAlertInfo, isRulerNotSupportedResponse } from '../utils/rules';
|
||||
import { getAlertInfo, isGrafanaRulerRule, isRulerNotSupportedResponse } from '../utils/rules';
|
||||
import { safeParseDurationstr } from '../utils/time';
|
||||
|
||||
function getDataSourceConfig(getState: () => unknown, rulesSourceName: string) {
|
||||
@ -452,6 +454,7 @@ export const saveRuleFormAction = createAsyncThunk(
|
||||
const rulerConfig = getDataSourceRulerConfig(thunkAPI.getState, GRAFANA_RULES_SOURCE_NAME);
|
||||
const rulerClient = getRulerClient(rulerConfig);
|
||||
identifier = await rulerClient.saveGrafanaRule(values, evaluateEvery, existing);
|
||||
reportSwitchingRoutingType(values, existing);
|
||||
await thunkAPI.dispatch(fetchRulerRulesAction({ rulesSourceName: GRAFANA_RULES_SOURCE_NAME }));
|
||||
} else {
|
||||
throw new Error('Unexpected rule form type');
|
||||
@ -486,6 +489,24 @@ export const saveRuleFormAction = createAsyncThunk(
|
||||
)
|
||||
);
|
||||
|
||||
function reportSwitchingRoutingType(values: RuleFormValues, existingRule: RuleWithLocation<RulerRuleDTO> | undefined) {
|
||||
// track if the user switched from simplified routing to policies routing or vice versa
|
||||
if (isGrafanaRulerRule(existingRule?.rule)) {
|
||||
const ga = existingRule?.rule.grafana_alert;
|
||||
const existingWasUsingSimplifiedRouting = Boolean(ga?.notification_settings?.receiver);
|
||||
const newValuesUsesSimplifiedRouting = values.manualRouting;
|
||||
const shouldTrackSwitchToSimplifiedRouting = !existingWasUsingSimplifiedRouting && newValuesUsesSimplifiedRouting;
|
||||
const shouldTrackSwitchToPoliciesRouting = existingWasUsingSimplifiedRouting && !newValuesUsesSimplifiedRouting;
|
||||
|
||||
if (shouldTrackSwitchToSimplifiedRouting) {
|
||||
trackSwitchToSimplifiedRouting();
|
||||
}
|
||||
if (shouldTrackSwitchToPoliciesRouting) {
|
||||
trackSwitchToPoliciesRouting();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export const fetchGrafanaNotifiersAction = createAsyncThunk(
|
||||
'unifiedalerting/fetchGrafanaNotifiers',
|
||||
(): Promise<NotifierDTO[]> => withSerializedError(fetchNotifiers())
|
||||
|
Loading…
Reference in New Issue
Block a user