Skip to content

Commit 1ac72ed

Browse files
feat(quick-start): Add analytics code to the backend to track quick start completion (#79089)
1 parent c257ab6 commit 1ac72ed

File tree

3 files changed

+33
-1
lines changed

3 files changed

+33
-1
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
from sentry import analytics
2+
3+
4+
class OnboardingCompleteEvent(analytics.Event):
5+
type = "onboarding.complete"
6+
7+
attributes = (
8+
analytics.Attribute("user_id"),
9+
analytics.Attribute("organization_id"),
10+
analytics.Attribute("referrer"),
11+
)
12+
13+
14+
analytics.register(OnboardingCompleteEvent)

src/sentry/onboarding_tasks/backends/organization_onboarding_task.py

+10
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
from django.db.models import Q
33
from django.utils import timezone
44

5+
from sentry import analytics
56
from sentry.models.options.organization_option import OrganizationOption
7+
from sentry.models.organization import Organization
68
from sentry.models.organizationonboardingtask import (
79
OnboardingTaskStatus,
810
OrganizationOnboardingTask,
@@ -45,5 +47,13 @@ def try_mark_onboarding_complete(self, organization_id):
4547
key="onboarding:complete",
4648
value={"updated": json.datetime_to_str(timezone.now())},
4749
)
50+
51+
organization = Organization.objects.get(id=organization_id)
52+
analytics.record(
53+
"onboarding.complete",
54+
user_id=organization.default_owner_id,
55+
organization_id=organization_id,
56+
referrer="onboarding_tasks",
57+
)
4858
except IntegrityError:
4959
pass

tests/sentry/receivers/test_onboarding.py

+9-1
Original file line numberDiff line numberDiff line change
@@ -398,7 +398,8 @@ def test_metric_added(self):
398398
)
399399
assert task is not None
400400

401-
def test_onboarding_complete(self):
401+
@patch("sentry.analytics.record")
402+
def test_onboarding_complete(self, record_analytics):
402403
now = timezone.now()
403404
user = self.create_user(email="[email protected]")
404405
project = self.create_project(first_event=now)
@@ -505,6 +506,13 @@ def test_onboarding_complete(self):
505506
== 1
506507
)
507508

509+
record_analytics.assert_called_with(
510+
"onboarding.complete",
511+
user_id=self.organization.default_owner_id,
512+
organization_id=self.organization.id,
513+
referrer="onboarding_tasks",
514+
)
515+
508516
@patch("sentry.analytics.record")
509517
def test_first_event_without_minified_stack_trace_received(self, record_analytics):
510518
"""

0 commit comments

Comments
 (0)