Skip to content

Commit bb11e64

Browse files
authored
ref(replays): track analytics on chapter and regen click (#95758)
1 parent bfe0320 commit bb11e64

File tree

3 files changed

+27
-2
lines changed

3 files changed

+27
-2
lines changed

static/app/utils/analytics/replayAnalyticsEvents.tsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import type {LayoutKey} from 'sentry/utils/replays/hooks/useReplayLayout';
22
import type {Output} from 'sentry/views/replays/detail/network/details/getOutputType';
33

44
export type ReplayEventParameters = {
5+
'replay.ai-summary.chapter-clicked': {
6+
chapter_type?: 'error' | 'feedback';
7+
};
8+
'replay.ai-summary.regenerate-requested': Record<string, unknown>;
59
'replay.canvas-detected-banner-clicked': {
610
sdk_needs_update?: boolean;
711
};
@@ -130,6 +134,8 @@ export type ReplayEventParameters = {
130134
type ReplayEventKey = keyof ReplayEventParameters;
131135

132136
export const replayEventMap: Record<ReplayEventKey, string | null> = {
137+
'replay.ai-summary.chapter-clicked': 'Clicked Replay AI Summary Chapter',
138+
'replay.ai-summary.regenerate-requested': 'Requested to Regenerate Replay AI Summary',
133139
'replay.canvas-detected-banner-clicked': 'Clicked Canvas Detected in Replay Banner',
134140
'replay.details-data-loaded': 'Replay Details Data Loaded',
135141
'replay.details-has-hydration-error': 'Replay Details Has Hydration Error',

static/app/views/replays/detail/ai/ai.tsx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import {useReplayContext} from 'sentry/components/replays/replayContext';
1010
import {IconSeer, IconSync, IconThumb} from 'sentry/icons';
1111
import {t} from 'sentry/locale';
1212
import {space} from 'sentry/styles/space';
13+
import {trackAnalytics} from 'sentry/utils/analytics';
1314
import {useFeedbackForm} from 'sentry/utils/useFeedbackForm';
1415
import useOrganization from 'sentry/utils/useOrganization';
1516
import useProjectFromId from 'sentry/utils/useProjectFromId';
@@ -147,7 +148,12 @@ function AiContent() {
147148
priority="default"
148149
type="button"
149150
size="xs"
150-
onClick={() => refetch()}
151+
onClick={() => {
152+
refetch();
153+
trackAnalytics('replay.ai-summary.regenerate-requested', {
154+
organization,
155+
});
156+
}}
151157
icon={<IconSync size="xs" />}
152158
>
153159
{t('Regenerate')}

static/app/views/replays/detail/ai/chapterList.tsx

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,9 +8,11 @@ import {useReplayContext} from 'sentry/components/replays/replayContext';
88
import {IconChevron, IconFire, IconMegaphone} from 'sentry/icons';
99
import {t} from 'sentry/locale';
1010
import {space} from 'sentry/styles/space';
11+
import {trackAnalytics} from 'sentry/utils/analytics';
1112
import useCrumbHandlers from 'sentry/utils/replays/hooks/useCrumbHandlers';
1213
import useCurrentHoverTime from 'sentry/utils/replays/playback/providers/useCurrentHoverTime';
1314
import type {ReplayFrame} from 'sentry/utils/replays/types';
15+
import useOrganization from 'sentry/utils/useOrganization';
1416
import BreadcrumbRow from 'sentry/views/replays/detail/breadcrumbs/breadcrumbRow';
1517
import TimestampButton from 'sentry/views/replays/detail/timestampButton';
1618

@@ -107,6 +109,8 @@ function ChapterRow({
107109
const hasOccurred = currentTime >= startOffset;
108110
const isBeforeHover = currentHoverTime === undefined || currentHoverTime >= startOffset;
109111

112+
const organization = useOrganization();
113+
110114
return (
111115
<ChapterWrapper
112116
className={classNames(className, {
@@ -119,7 +123,16 @@ function ChapterRow({
119123
onMouseEnter={() => setIsHovered(true)}
120124
onMouseLeave={() => setIsHovered(false)}
121125
>
122-
<Chapter error={error} feedback={feedback}>
126+
<Chapter
127+
error={error}
128+
feedback={feedback}
129+
onClick={() =>
130+
trackAnalytics('replay.ai-summary.chapter-clicked', {
131+
chapter_type: error ? 'error' : feedback ? 'feedback' : undefined,
132+
organization,
133+
})
134+
}
135+
>
123136
<ChapterIconWrapper>
124137
{error ? (
125138
isHovered ? (

0 commit comments

Comments
 (0)