Skip to content

Commit

Permalink
chore(dashboards): Add analytics for dashboards view and favourites (#…
Browse files Browse the repository at this point in the history
…83766)

Adding analytics to:
- see if users toggle between table and grid view + see which view they
switch to
- view interaction between the favourite button

Still need to figure out how to add analytics to view how many
dashboards a user has favourited...

Contributes to #83742
  • Loading branch information
nikkikapadia authored Jan 22, 2025
1 parent e1a158a commit 9a02e57
Show file tree
Hide file tree
Showing 5 changed files with 28 additions and 1 deletion.
6 changes: 6 additions & 0 deletions static/app/utils/analytics/dashboardsAnalyticsEvents.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,9 @@ export type DashboardsEventParameters = {
'dashboards_manage.change_sort': {
sort: string;
};
'dashboards_manage.change_view_type': {
view_type: DashboardsLayout;
};
'dashboards_manage.create.start': {};
'dashboards_manage.delete': {dashboard_id: number; view_type: DashboardsLayout};
'dashboards_manage.duplicate': {dashboard_id: number; view_type: DashboardsLayout};
Expand All @@ -61,6 +64,7 @@ export type DashboardsEventParameters = {
'dashboards_manage.templates.toggle': {
show_templates: boolean;
};
'dashboards_manage.toggle_favorite': {dashboard_id: string; favorited: boolean};
'dashboards_views.open_in_discover.opened': {
widget_type: string;
};
Expand Down Expand Up @@ -144,13 +148,15 @@ export const dashboardsEventMap: Record<DashboardsEventKey, string | null> = {
'dashboards_views.widget_library.opened': 'Dashboards2: Add Widget Library opened',
'dashboards_manage.search': 'Dashboards Manager: Search',
'dashboards_manage.change_sort': 'Dashboards Manager: Sort By Changed',
'dashboards_manage.change_view_type': 'Dashboards Manager: View Type Toggled',
'dashboards_manage.create.start': 'Dashboards Manager: Dashboard Create Started',
'dashboards_manage.delete': 'Dashboards Manager: Dashboard Deleted',
'dashboards_manage.duplicate': 'Dashboards Manager: Dashboard Duplicated',
'dashboards_manage.paginate': 'Dashboards Manager: Paginate',
'dashboards_manage.templates.toggle': 'Dashboards Manager: Template Toggle Changed',
'dashboards_manage.templates.add': 'Dashboards Manager: Template Added',
'dashboards_manage.templates.preview': 'Dashboards Manager: Template Previewed',
'dashboards_manage.toggle_favorite': 'Dashboards Manager: Dashboard Favorite Toggled',
'dashboards_views.widget_viewer.edit': 'Widget Viewer: Edit Widget Modal Opened',
'dashboards_views.widget_viewer.open': 'Widget Viewer: Opened',
'dashboards_views.widget_viewer.open_source':
Expand Down
5 changes: 5 additions & 0 deletions static/app/views/dashboards/controls.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -220,6 +220,11 @@ function Controls({
dashboard.id,
!isFavorited
);
trackAnalytics('dashboards_manage.toggle_favorite', {
organization,
dashboard_id: dashboard.id,
favorited: !isFavorited,
});
} catch (error) {
// If the api call fails, revert the state
setIsFavorited(isFavorited);
Expand Down
5 changes: 5 additions & 0 deletions static/app/views/dashboards/manage/dashboardGrid.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -106,6 +106,11 @@ function DashboardGrid({
try {
await updateDashboardFavorite(api, organization.slug, dashboard.id, isFavorited);
onDashboardsChange();
trackAnalytics('dashboards_manage.toggle_favorite', {
organization,
dashboard_id: dashboard.id,
favorited: isFavorited,
});
} catch (error) {
throw error;
}
Expand Down
5 changes: 5 additions & 0 deletions static/app/views/dashboards/manage/dashboardTable.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,11 @@ function FavoriteButton({
setFavorited(!favorited);
await updateDashboardFavorite(api, organization.slug, dashboardId, !favorited);
onDashboardsChange();
trackAnalytics('dashboards_manage.toggle_favorite', {
organization,
dashboard_id: dashboardId,
favorited: !favorited,
});
} catch (error) {
// If the api call fails, revert the state
setFavorited(favorited);
Expand Down
8 changes: 7 additions & 1 deletion static/app/views/dashboards/manage/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,13 @@ function ManageDashboards() {
/>
<Feature features={'organizations:dashboards-table-view'}>
<SegmentedControl<DashboardsLayout>
onChange={setDashboardsLayout}
onChange={newValue => {
setDashboardsLayout(newValue);
trackAnalytics('dashboards_manage.change_view_type', {
organization,
view_type: newValue,
});
}}
size="md"
value={dashboardsLayout}
aria-label={t('Layout Control')}
Expand Down

0 comments on commit 9a02e57

Please sign in to comment.