Skip to content

Commit ec72485

Browse files
authored
Standardize PH events (supabase#31067)
* Standardize PH events * Prettier * Reinstate send events for sign in and sign up
1 parent dd4f3d3 commit ec72485

File tree

27 files changed

+138
-287
lines changed

27 files changed

+138
-287
lines changed

apps/studio/components/interfaces/App/FeaturePreview/FeaturePreviewModal.tsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { useEffect, useState } from 'react'
44

55
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
66
import { useFlag } from 'hooks/ui/useFlag'
7-
import { TELEMETRY_EVENTS } from 'lib/constants/telemetry'
7+
import { TelemetryActions } from 'lib/constants/telemetry'
88
import { useAppStateSnapshot } from 'state/app-state'
99
import { Badge, Button, Modal, ScrollArea, cn } from 'ui'
1010
import { FEATURE_PREVIEWS, useFeaturePreviewContext } from './FeaturePreviewContext'
@@ -37,9 +37,10 @@ const FeaturePreviewModal = () => {
3737
const toggleFeature = () => {
3838
onUpdateFlag(selectedFeatureKey, !isSelectedFeatureEnabled)
3939
sendEvent({
40-
action: TELEMETRY_EVENTS.FEATURE_PREVIEWS,
41-
label: selectedFeatureKey,
42-
value: isSelectedFeatureEnabled ? 'disabled' : 'enabled',
40+
action: isSelectedFeatureEnabled
41+
? TelemetryActions.FEATURE_PREVIEW_DISABLED
42+
: TelemetryActions.FEATURE_PREVIEW_ENABLED,
43+
properties: { feature: selectedFeatureKey },
4344
})
4445
}
4546

apps/studio/components/interfaces/Connect/DatabaseConnectionString.tsx

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ import { usePoolingConfigurationQuery } from 'data/database/pooling-configuratio
1010
import { useReadReplicasQuery } from 'data/read-replicas/replicas-query'
1111
import { useProjectAddonsQuery } from 'data/subscriptions/project-addons-query'
1212
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
13+
import { TelemetryActions } from 'lib/constants/telemetry'
1314
import { pluckObjectFields } from 'lib/helpers'
1415
import { useDatabaseSelectorStateSnapshot } from 'state/database-selector'
1516
import {
@@ -93,11 +94,10 @@ export const DatabaseConnectionString = () => {
9394
const connectionInfo = pluckObjectFields(selectedDatabase || emptyState, DB_FIELDS)
9495

9596
const handleCopy = (id: string) => {
96-
const labelValue = DATABASE_CONNECTION_TYPES.find((type) => type.id === id)?.label
97+
const connectionType = DATABASE_CONNECTION_TYPES.find((type) => type.id === id)?.label
9798
sendEvent({
98-
category: 'settings',
99-
action: 'copy_connection_string',
100-
label: labelValue ?? '',
99+
action: TelemetryActions.CONNECTION_STRING_COPIED,
100+
properties: { connectionType },
101101
})
102102
}
103103

apps/studio/components/interfaces/Integrations/CronJobs/CreateCronJobSheet.tsx

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import { CronJob, useCronJobsQuery } from 'data/database-cron-jobs/database-cron
1515
import { useDatabaseExtensionsQuery } from 'data/database-extensions/database-extensions-query'
1616
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
1717
import { useCheckPermissions } from 'hooks/misc/useCheckPermissions'
18-
import { TELEMETRY_EVENTS, TELEMETRY_VALUES } from 'lib/constants/telemetry'
18+
import { TelemetryActions } from 'lib/constants/telemetry'
1919
import {
2020
Button,
2121
Form_Shadcn_,
@@ -264,16 +264,13 @@ export const CreateCronJobSheet = ({
264264
toast.success(`Successfully created cron job ${name}`)
265265
}
266266

267-
// We should allow sending custom properties with events
268267
sendEvent({
269-
action: TELEMETRY_EVENTS.CRON_JOBS,
270-
value: isEditing
271-
? TELEMETRY_VALUES.CRON_JOB_UPDATED
272-
: TELEMETRY_VALUES.CRON_JOB_CREATED,
273-
label: isEditing ? 'Cron job was updated' : 'Cron job was created',
268+
action: isEditing
269+
? TelemetryActions.CRON_JOB_UPDATED
270+
: TelemetryActions.CRON_JOB_CREATED,
274271
properties: {
275-
cron_job_type: values.type,
276-
cron_job_schedule: schedule,
272+
type: values.type,
273+
schedule: schedule,
277274
},
278275
})
279276

apps/studio/components/interfaces/Integrations/CronJobs/CronJobCard.tsx

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectConte
99
import { CronJob } from 'data/database-cron-jobs/database-cron-jobs-query'
1010
import { useDatabaseCronJobToggleMutation } from 'data/database-cron-jobs/database-cron-jobs-toggle-mutation'
1111
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
12-
import { TELEMETRY_EVENTS, TELEMETRY_VALUES } from 'lib/constants/telemetry'
12+
import { TelemetryActions } from 'lib/constants/telemetry'
1313
import {
1414
Button,
1515
DropdownMenu,
@@ -78,11 +78,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
7878
type="default"
7979
icon={<History />}
8080
onClick={() => {
81-
sendEvent({
82-
action: TELEMETRY_EVENTS.CRON_JOBS,
83-
value: TELEMETRY_VALUES.CRON_JOBS_VIEW_PREVIOUS_RUNS,
84-
label: 'User clicked view previous runs button',
85-
})
81+
sendEvent({ action: TelemetryActions.CRON_JOBS_VIEW_PREVIOUS_RUNS_CLICKED })
8682
}}
8783
>
8884
<Link href={`/project/${ref}/integrations/cron/jobs/${job.jobname}`}>History</Link>
@@ -94,11 +90,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
9490
<DropdownMenuContent align="end" className="w-36">
9591
<DropdownMenuItem
9692
onClick={() => {
97-
sendEvent({
98-
action: TELEMETRY_EVENTS.CRON_JOBS,
99-
value: TELEMETRY_VALUES.CRON_JOB_UPDATE_CLICKED,
100-
label: 'User clicked edit cron job button',
101-
})
93+
sendEvent({ action: TelemetryActions.CRON_JOB_UPDATE_CLICKED })
10294
onEditCronJob(job)
10395
}}
10496
>
@@ -107,11 +99,7 @@ export const CronJobCard = ({ job, onEditCronJob, onDeleteCronJob }: CronJobCard
10799
<DropdownMenuSeparator />
108100
<DropdownMenuItem
109101
onClick={() => {
110-
sendEvent({
111-
action: TELEMETRY_EVENTS.CRON_JOBS,
112-
value: TELEMETRY_VALUES.CRON_JOB_DELETE_CLICKED,
113-
label: 'User clicked delete cron job button',
114-
})
102+
sendEvent({ action: TelemetryActions.CRON_JOB_DELETE_CLICKED })
115103
onDeleteCronJob(job)
116104
}}
117105
>

apps/studio/components/interfaces/Integrations/CronJobs/CronJobsTab.tsx

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { GenericSkeletonLoader } from 'components/ui/ShimmeringLoader'
88
import { CronJob, useCronJobsQuery } from 'data/database-cron-jobs/database-cron-jobs-query'
99
import { useDatabaseExtensionsQuery } from 'data/database-extensions/database-extensions-query'
1010
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
11-
import { TELEMETRY_EVENTS, TELEMETRY_VALUES } from 'lib/constants/telemetry'
11+
import { TelemetryActions } from 'lib/constants/telemetry'
1212
import { Button, Input, Sheet, SheetContent } from 'ui'
1313
import { CronJobCard } from './CronJobCard'
1414
import { DeleteCronJob } from './DeleteCronJob'
@@ -63,11 +63,7 @@ export const CronjobsTab = () => {
6363
const filteredCronJobs = (cronJobs ?? []).filter((cj) => cj?.jobname?.includes(searchQuery || ''))
6464

6565
const onOpenCreateJobSheet = () => {
66-
sendEvent({
67-
action: TELEMETRY_EVENTS.CRON_JOBS,
68-
value: TELEMETRY_VALUES.CRON_JOB_CREATE_CLICKED,
69-
label: 'User clicked create job',
70-
})
66+
sendEvent({ action: TelemetryActions.CRON_JOB_CREATE_CLICKED })
7167
setCreateCronJobSheetShown(true)
7268
}
7369

apps/studio/components/interfaces/Integrations/CronJobs/DeleteCronJob.tsx

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@ import { toast } from 'sonner'
33
import { useProjectContext } from 'components/layouts/ProjectLayout/ProjectContext'
44
import { useDatabaseCronJobDeleteMutation } from 'data/database-cron-jobs/database-cron-jobs-delete-mutation'
55
import { CronJob } from 'data/database-cron-jobs/database-cron-jobs-query'
6-
import TextConfirmModal from 'ui-patterns/Dialogs/TextConfirmModal'
76
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
8-
import { TELEMETRY_EVENTS, TELEMETRY_VALUES } from 'lib/constants/telemetry'
7+
import { TelemetryActions } from 'lib/constants/telemetry'
8+
import TextConfirmModal from 'ui-patterns/Dialogs/TextConfirmModal'
99

1010
interface DeleteCronJobProps {
1111
cronJob: CronJob
@@ -19,11 +19,7 @@ export const DeleteCronJob = ({ cronJob, visible, onClose }: DeleteCronJobProps)
1919
const { mutate: sendEvent } = useSendEventMutation()
2020
const { mutate: deleteDatabaseCronJob, isLoading } = useDatabaseCronJobDeleteMutation({
2121
onSuccess: () => {
22-
sendEvent({
23-
action: TELEMETRY_EVENTS.CRON_JOBS,
24-
value: TELEMETRY_VALUES.CRON_JOB_DELETED,
25-
label: 'User deleted cron job',
26-
})
22+
sendEvent({ action: TelemetryActions.CRON_JOB_DELETED })
2723
toast.success(`Successfully removed cron job ${cronJob.jobname}`)
2824
onClose()
2925
},

apps/studio/components/interfaces/Realtime/Inspector/ChooseChannelPopover/index.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import {
2121
} from 'ui'
2222
import { RealtimeConfig } from '../useRealtimeMessages'
2323
import { DocsButton } from 'components/ui/DocsButton'
24+
import { TelemetryActions } from 'lib/constants/telemetry'
2425

2526
interface ChooseChannelPopoverProps {
2627
config: RealtimeConfig
@@ -51,11 +52,7 @@ export const ChooseChannelPopover = ({ config, onChangeConfig }: ChooseChannelPo
5152

5253
const onSubmit = () => {
5354
setOpen(false)
54-
sendEvent({
55-
category: 'realtime_inspector',
56-
action: 'started_listening_to_channel_in_input_channel_popover',
57-
label: 'realtime_inspector_config',
58-
})
55+
sendEvent({ action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED })
5956
onChangeConfig({
6057
...config,
6158
channelName: form.getValues('channel'),

apps/studio/components/interfaces/Realtime/Inspector/Header.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ import { PlayCircle, StopCircle } from 'lucide-react'
33
import { Dispatch, SetStateAction } from 'react'
44

55
import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
6+
import { TelemetryActions } from 'lib/constants/telemetry'
67
import { Button } from 'ui'
78
import { ChooseChannelPopover } from './ChooseChannelPopover'
89
import { RealtimeFilterPopover } from './RealtimeFilterPopover'
@@ -34,11 +35,7 @@ export const Header = ({ config, onChangeConfig }: HeaderProps) => {
3435
onChangeConfig({ ...config, enabled: !config.enabled })
3536
if (!config.enabled) {
3637
// the user has clicked to start listening
37-
sendEvent({
38-
category: 'realtime_inspector',
39-
action: 'started_listening',
40-
label: 'realtime_inspector_config',
41-
})
38+
sendEvent({ action: TelemetryActions.REALTIME_INSPECTOR_LISTEN_CHANNEL_CLICKED })
4239
}
4340
}}
4441
>

apps/studio/components/interfaces/Realtime/Inspector/MessageSelection.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ import { useSendEventMutation } from 'data/telemetry/send-event-mutation'
66
import { Button, cn } from 'ui'
77
import type { LogData } from './Messages.types'
88
import { SelectedRealtimeMessagePanel } from './SelectedRealtimeMessagePanel'
9+
import { TelemetryActions } from 'lib/constants/telemetry'
910

1011
export interface MessageSelectionProps {
1112
log: LogData | null
@@ -73,11 +74,7 @@ const MessageSelection = ({ log, onClose }: MessageSelectionProps) => {
7374
type="default"
7475
title="Copy log to clipboard"
7576
onClick={() => {
76-
sendEvent({
77-
category: 'realtime_inspector',
78-
action: 'copied_message',
79-
label: 'realtime_inspector_results',
80-
})
77+
sendEvent({ action: TelemetryActions.REALTIME_INSPECTOR_COPY_MESSAGE_CLICKED })
8178
}}
8279
/>
8380
</div>

apps/studio/components/interfaces/Realtime/Inspector/MessagesTable.tsx

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import type { LogData } from './Messages.types'
1313
import NoChannelEmptyState from './NoChannelEmptyState'
1414
import { ColumnRenderer } from './RealtimeMessageColumnRenderer'
1515
import { DocsButton } from 'components/ui/DocsButton'
16+
import { TelemetryActions } from 'lib/constants/telemetry'
1617

1718
export const isErrorLog = (l: LogData) => {
1819
return l.message === 'SYSTEM' && l.metadata?.status === 'error'
@@ -177,11 +178,7 @@ const MessagesTable = ({
177178
isRowSelected={false}
178179
selectedCellIdx={undefined}
179180
onClick={() => {
180-
sendEvent({
181-
category: 'realtime_inspector',
182-
action: 'focused-specific-message',
183-
label: 'realtime_inspector_results',
184-
})
181+
sendEvent({ action: TelemetryActions.REALTIME_INSPECTOR_MESSAGE_CLICKED })
185182
setFocusedLog(row)
186183
}}
187184
/>

0 commit comments

Comments
 (0)