diff --git a/public/app/features/gops/configuration-tracker/Analytics.ts b/public/app/features/gops/configuration-tracker/Analytics.ts index 89013b74e52..901c2430fca 100644 --- a/public/app/features/gops/configuration-tracker/Analytics.ts +++ b/public/app/features/gops/configuration-tracker/Analytics.ts @@ -4,11 +4,13 @@ export enum IRMInteractionNames { ViewIRMMainPage = 'grafana_irm_configuration_tracker_main_page_view', OpenEssentials = 'grafana_irm_configuration_tracker_essentials_open', CloseEssentials = 'grafana_irm_configuration_tracker_essentials_closed', + ClickDataSources = 'grafana_irm_configuration_tracker_data_sources_clicked', } export interface ConfigurationTrackerContext { essentialStepsDone: number; essentialStepsToDo: number; + dataSourceCompatibleWithAlerting: boolean; } export function trackIrmConfigurationTrackerEvent( interactionName: IRMInteractionNames, diff --git a/public/app/features/gops/configuration-tracker/components/ConfigureIRM.tsx b/public/app/features/gops/configuration-tracker/components/ConfigureIRM.tsx index de024df258a..bb596a1e7ad 100644 --- a/public/app/features/gops/configuration-tracker/components/ConfigureIRM.tsx +++ b/public/app/features/gops/configuration-tracker/components/ConfigureIRM.tsx @@ -41,14 +41,6 @@ export function ConfigureIRM() { const styles = useStyles2(getStyles); const history = useHistory(); - // track only once when the component is mounted - useEffect(() => { - trackIrmConfigurationTrackerEvent(IRMInteractionNames.ViewIRMMainPage, { - essentialStepsDone: 0, - essentialStepsToDo: 0, - }); - }, []); - // get all the configuration data const dataSourceConfigurationData = useGetDataSourceConfiguration(); const essentialsConfigurationData = useGetEssentialsConfiguration(); @@ -57,9 +49,23 @@ export function ConfigureIRM() { essentialsConfigurationData, }); + // track only once when the component is mounted + useEffect(() => { + trackIrmConfigurationTrackerEvent(IRMInteractionNames.ViewIRMMainPage, { + essentialStepsDone: 0, + essentialStepsToDo: 0, + dataSourceCompatibleWithAlerting: dataSourceConfigurationData.dataSourceCompatibleWithAlerting, + }); + }, [dataSourceConfigurationData.dataSourceCompatibleWithAlerting]); + const [essentialsOpen, setEssentialsOpen] = useState(false); const handleActionClick = (configID: number, isDone?: boolean) => { + trackIrmConfigurationTrackerEvent(IRMInteractionNames.ClickDataSources, { + essentialStepsDone: essentialsConfigurationData.stepsDone, + essentialStepsToDo: essentialsConfigurationData.totalStepsToDo, + dataSourceCompatibleWithAlerting: dataSourceConfigurationData.dataSourceCompatibleWithAlerting, + }); switch (configID) { case ConfigurationStepsEnum.CONNECT_DATASOURCE: if (isDone) { @@ -73,6 +79,7 @@ export function ConfigureIRM() { trackIrmConfigurationTrackerEvent(IRMInteractionNames.OpenEssentials, { essentialStepsDone: essentialsConfigurationData.stepsDone, essentialStepsToDo: essentialsConfigurationData.totalStepsToDo, + dataSourceCompatibleWithAlerting: dataSourceConfigurationData.dataSourceCompatibleWithAlerting, }); break; default: @@ -85,6 +92,7 @@ export function ConfigureIRM() { trackIrmConfigurationTrackerEvent(IRMInteractionNames.CloseEssentials, { essentialStepsDone: essentialsConfigurationData.stepsDone, essentialStepsToDo: essentialsConfigurationData.totalStepsToDo, + dataSourceCompatibleWithAlerting: dataSourceConfigurationData.dataSourceCompatibleWithAlerting, }); }