Browse Source

feat(profiling): add analytics to profiling onboarding (#42253)

## Summary
This PR adds analytic events to the profiling onboarding flow.
Elias Hussary 2 years ago
parent
commit
6f5229d22c

+ 16 - 1
static/app/components/profiling/ProfilingOnboarding/proflingOnboardingSidebar.tsx

@@ -21,6 +21,7 @@ import platforms from 'sentry/data/platforms';
 import {t, tct} from 'sentry/locale';
 import space from 'sentry/styles/space';
 import {Project, SelectValue} from 'sentry/types';
+import trackAdvancedAnalyticsEvent from 'sentry/utils/analytics/trackAdvancedAnalyticsEvent';
 import EventWaiter from 'sentry/utils/eventWaiter';
 import useApi from 'sentry/utils/useApi';
 import useOrganization from 'sentry/utils/useOrganization';
@@ -125,7 +126,17 @@ export function ProfilingOnboardingSidebar(props: CommonSidebarProps) {
   }
 
   return (
-    <TaskSidebar orientation={orientation} collapsed={collapsed} hidePanel={hidePanel}>
+    <TaskSidebar
+      orientation={orientation}
+      collapsed={collapsed}
+      hidePanel={() => {
+        trackAdvancedAnalyticsEvent('profiling_views.onboarding_action', {
+          organization,
+          action: 'dismissed',
+        });
+        hidePanel();
+      }}
+    >
       <TaskSidebarList>
         <Heading>{t('Profile Code')}</Heading>
         <div
@@ -282,6 +293,10 @@ function OnboardingContent({
         project={currentProject}
         eventType="profile"
         onIssueReceived={() => {
+          trackAdvancedAnalyticsEvent('profiling_views.onboarding_action', {
+            organization,
+            action: 'done',
+          });
           setReceived(true);
         }}
       >

+ 4 - 1
static/app/views/profiling/content.tsx

@@ -93,8 +93,11 @@ function ProfilingContent({location, router}: ProfilingContentProps) {
 
   // Open the modal on demand
   const onSetupProfilingClick = useCallback(() => {
+    trackAdvancedAnalyticsEvent('profiling_views.onboarding', {
+      organization,
+    });
     SidebarPanelStore.activatePanel(SidebarPanelKey.ProfilingOnboarding);
-  }, []);
+  }, [organization]);
 
   const shouldShowProfilingOnboardingPanel = useMemo((): boolean => {
     // if it's My Projects or All projects, only show onboarding if we can't