mirror of https://github.com/grafana/grafana.git
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 }) {
|
export function trackRulesListViewChange(payload: { view: string }) {
|
||||||
reportInteraction('grafana_alerting_rules_list_mode', { ...payload });
|
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 = {
|
export type AlertRuleTrackingProps = {
|
||||||
user_id: number;
|
user_id: number;
|
||||||
|
|
|
||||||
|
|
@ -37,6 +37,8 @@ import { backendSrv } from '../../../../core/services/backend_srv';
|
||||||
import {
|
import {
|
||||||
logInfo,
|
logInfo,
|
||||||
LogMessages,
|
LogMessages,
|
||||||
|
trackSwitchToPoliciesRouting,
|
||||||
|
trackSwitchToSimplifiedRouting,
|
||||||
withPerformanceLogging,
|
withPerformanceLogging,
|
||||||
withPromRulesMetadataLogging,
|
withPromRulesMetadataLogging,
|
||||||
withRulerRulesMetadataLogging,
|
withRulerRulesMetadataLogging,
|
||||||
|
|
@ -79,7 +81,7 @@ import { makeAMLink } from '../utils/misc';
|
||||||
import { AsyncRequestMapSlice, withAppEvents, withSerializedError } from '../utils/redux';
|
import { AsyncRequestMapSlice, withAppEvents, withSerializedError } from '../utils/redux';
|
||||||
import * as ruleId from '../utils/rule-id';
|
import * as ruleId from '../utils/rule-id';
|
||||||
import { getRulerClient } from '../utils/rulerClient';
|
import { getRulerClient } from '../utils/rulerClient';
|
||||||
import { getAlertInfo, isRulerNotSupportedResponse } from '../utils/rules';
|
import { getAlertInfo, isGrafanaRulerRule, isRulerNotSupportedResponse } from '../utils/rules';
|
||||||
import { safeParseDurationstr } from '../utils/time';
|
import { safeParseDurationstr } from '../utils/time';
|
||||||
|
|
||||||
function getDataSourceConfig(getState: () => unknown, rulesSourceName: string) {
|
function getDataSourceConfig(getState: () => unknown, rulesSourceName: string) {
|
||||||
|
|
@ -452,6 +454,7 @@ export const saveRuleFormAction = createAsyncThunk(
|
||||||
const rulerConfig = getDataSourceRulerConfig(thunkAPI.getState, GRAFANA_RULES_SOURCE_NAME);
|
const rulerConfig = getDataSourceRulerConfig(thunkAPI.getState, GRAFANA_RULES_SOURCE_NAME);
|
||||||
const rulerClient = getRulerClient(rulerConfig);
|
const rulerClient = getRulerClient(rulerConfig);
|
||||||
identifier = await rulerClient.saveGrafanaRule(values, evaluateEvery, existing);
|
identifier = await rulerClient.saveGrafanaRule(values, evaluateEvery, existing);
|
||||||
|
reportSwitchingRoutingType(values, existing);
|
||||||
await thunkAPI.dispatch(fetchRulerRulesAction({ rulesSourceName: GRAFANA_RULES_SOURCE_NAME }));
|
await thunkAPI.dispatch(fetchRulerRulesAction({ rulesSourceName: GRAFANA_RULES_SOURCE_NAME }));
|
||||||
} else {
|
} else {
|
||||||
throw new Error('Unexpected rule form type');
|
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(
|
export const fetchGrafanaNotifiersAction = createAsyncThunk(
|
||||||
'unifiedalerting/fetchGrafanaNotifiers',
|
'unifiedalerting/fetchGrafanaNotifiers',
|
||||||
(): Promise<NotifierDTO[]> => withSerializedError(fetchNotifiers())
|
(): Promise<NotifierDTO[]> => withSerializedError(fetchNotifiers())
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue