Skip to content

Commit 7dfc9fd

Browse files
mtopo27claude
authored andcommitted
feat(preprod): Add analytics for status check rule CRUD (#109125)
Track create, update, and delete actions for status check rules in the project settings UI to understand feature usage in Amplitude. Co-Authored-By: Claude <noreply@anthropic.com>
1 parent 45518cb commit 7dfc9fd

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

static/app/utils/analytics/preprodBuildAnalyticsEvents.tsx

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import type {PreprodBuildsDisplay} from 'sentry/components/preprod/preprodBuildsDisplay';
22
import type {Organization} from 'sentry/types/organization';
3+
import type {ArtifactType} from 'sentry/views/settings/project/preprod/types';
34

45
type BasePreprodBuildEvent = {
56
organization: Organization;
@@ -9,6 +10,11 @@ type BasePreprodBuildEvent = {
910
project_type?: string | null;
1011
};
1112

13+
type PreprodSettingsEvent = {
14+
organization: Organization;
15+
project_slug: string;
16+
};
17+
1218
export type BuildListPageSource =
1319
| 'preprod_builds_list'
1420
| 'releases_mobile_builds_tab'
@@ -60,6 +66,14 @@ export type PreprodBuildEventParameters = {
6066
'preprod.releases.mobile-builds.tab-clicked': {
6167
organization: Organization;
6268
};
69+
'preprod.settings.status_check_rule_created': PreprodSettingsEvent;
70+
'preprod.settings.status_check_rule_deleted': PreprodSettingsEvent;
71+
'preprod.settings.status_check_rule_updated': PreprodSettingsEvent & {
72+
artifact_type: ArtifactType;
73+
measurement: string;
74+
metric: string;
75+
value: number;
76+
};
6377
};
6478

6579
type PreprodBuildAnalyticsKey = keyof PreprodBuildEventParameters;
@@ -85,4 +99,10 @@ export const preprodBuildEventMap: Record<PreprodBuildAnalyticsKey, string | nul
8599
'preprod.builds.onboarding.docs_clicked': 'Preprod Builds: Onboarding Docs Clicked',
86100
'preprod.releases.mobile-builds.tab-clicked':
87101
'Preprod Releases: Mobile Builds Tab Clicked',
102+
'preprod.settings.status_check_rule_created':
103+
'Preprod Settings: Status Check Rule Created',
104+
'preprod.settings.status_check_rule_deleted':
105+
'Preprod Settings: Status Check Rule Deleted',
106+
'preprod.settings.status_check_rule_updated':
107+
'Preprod Settings: Status Check Rule Updated',
88108
};

static/app/views/settings/project/preprod/statusCheckRules.tsx

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ import PanelBody from 'sentry/components/panels/panelBody';
1313
import PanelHeader from 'sentry/components/panels/panelHeader';
1414
import {IconAdd} from 'sentry/icons';
1515
import {t} from 'sentry/locale';
16+
import {trackAnalytics} from 'sentry/utils/analytics';
1617
import {browserHistory} from 'sentry/utils/browserHistory';
1718
import {useLocation} from 'sentry/utils/useLocation';
1819
import useOrganization from 'sentry/utils/useOrganization';
@@ -45,6 +46,10 @@ export function StatusCheckRules() {
4546
const handleAddRule = () => {
4647
const newRule = createEmptyRule();
4748
addRule(newRule);
49+
trackAnalytics('preprod.settings.status_check_rule_created', {
50+
organization,
51+
project_slug: project.slug,
52+
});
4853
setNewRuleId(newRule.id);
4954
updateExpandedInUrl([...expandedRuleIds, newRule.id]);
5055
};
@@ -117,11 +122,23 @@ export function StatusCheckRules() {
117122
}
118123
onSave={updated => {
119124
updateRule(rule.id, updated);
125+
trackAnalytics('preprod.settings.status_check_rule_updated', {
126+
organization,
127+
project_slug: project.slug,
128+
metric: updated.metric,
129+
measurement: updated.measurement,
130+
artifact_type: updated.artifactType ?? 'all_artifacts',
131+
value: updated.value,
132+
});
120133
if (rule.id === newRuleId) {
121134
setNewRuleId(null);
122135
}
123136
}}
124137
onDelete={() => {
138+
trackAnalytics('preprod.settings.status_check_rule_deleted', {
139+
organization,
140+
project_slug: project.slug,
141+
});
125142
deleteRule(rule.id);
126143
if (rule.id === newRuleId) {
127144
setNewRuleId(null);

0 commit comments

Comments
 (0)