mirror of https://github.com/grafana/grafana
UnifiedHistory: add event tracking (#100975)
parent
c28ce47157
commit
2010c66108
@ -0,0 +1,64 @@ |
|||||||
|
import { reportInteraction } from '@grafana/runtime'; |
||||||
|
|
||||||
|
const UNIFIED_HISTORY_ENTRY_CLICKED = 'grafana_unified_history_entry_clicked'; |
||||||
|
const UNIFIED_HISTORY_ENTRY_DUPLICATED = 'grafana_unified_history_duplicated_entry_rendered'; |
||||||
|
const UNIFIED_HISTORY_DRAWER_INTERACTION = 'grafana_unified_history_drawer_interaction'; |
||||||
|
const UNIFIED_HISTORY_DRAWER_SHOW_MORE = 'grafana_unified_history_show_more'; |
||||||
|
|
||||||
|
//Currently just 'timeRange' is supported
|
||||||
|
//in short term, we could add 'templateVariables' for example
|
||||||
|
type subEntryTypes = 'timeRange'; |
||||||
|
|
||||||
|
//Whether the user opens or closes the `HistoryDrawer`
|
||||||
|
type UnifiedHistoryDrawerInteraction = 'open' | 'close'; |
||||||
|
|
||||||
|
interface UnifiedHistoryEntryClicked { |
||||||
|
//We will also work with the current URL but we will get this from Rudderstack data
|
||||||
|
//URL to return to
|
||||||
|
entryURL: string; |
||||||
|
//In the case we want to go back to a specific query param, currently just a specific time range
|
||||||
|
subEntry?: subEntryTypes; |
||||||
|
} |
||||||
|
|
||||||
|
interface UnifiedHistoryEntryDuplicated { |
||||||
|
// Common name of the history entries
|
||||||
|
entryName: string; |
||||||
|
// URL of the last entry
|
||||||
|
lastEntryURL: string; |
||||||
|
// URL of the new entry
|
||||||
|
newEntryURL: string; |
||||||
|
} |
||||||
|
|
||||||
|
//Event triggered when a user clicks on an entry of the `HistoryDrawer`
|
||||||
|
export const logClickUnifiedHistoryEntryEvent = ({ entryURL, subEntry }: UnifiedHistoryEntryClicked) => { |
||||||
|
reportInteraction(UNIFIED_HISTORY_ENTRY_CLICKED, { |
||||||
|
entryURL, |
||||||
|
subEntry, |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
//Event triggered when history entry name matches the previous one
|
||||||
|
//so we keep track of duplicated entries and be able to analyze them
|
||||||
|
export const logDuplicateUnifiedHistoryEntryEvent = ({ |
||||||
|
entryName, |
||||||
|
lastEntryURL, |
||||||
|
newEntryURL, |
||||||
|
}: UnifiedHistoryEntryDuplicated) => { |
||||||
|
reportInteraction(UNIFIED_HISTORY_ENTRY_DUPLICATED, { |
||||||
|
entryName, |
||||||
|
lastEntryURL, |
||||||
|
newEntryURL, |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
//We keep track of users open and closing the drawer
|
||||||
|
export const logUnifiedHistoryDrawerInteractionEvent = ({ type }: { type: UnifiedHistoryDrawerInteraction }) => { |
||||||
|
reportInteraction(UNIFIED_HISTORY_DRAWER_INTERACTION, { |
||||||
|
type, |
||||||
|
}); |
||||||
|
}; |
||||||
|
|
||||||
|
//We keep track of users clicking on the `Show more` button
|
||||||
|
export const logUnifiedHistoryShowMoreEvent = () => { |
||||||
|
reportInteraction(UNIFIED_HISTORY_DRAWER_SHOW_MORE); |
||||||
|
}; |
Loading…
Reference in new issue