Skip to content

Commit 3f9158b

Browse files
committed
ref(analytics): Transform analytics events for TET-838
- Transform event classes to use @analytics.eventclass decorator - Transform analytics.record calls to use event class instances - Update imports as needed Closes TET-838
1 parent 986ceec commit 3f9158b

File tree

6 files changed

+30
-28
lines changed

6 files changed

+30
-28
lines changed
Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,10 @@
11
from sentry import analytics
22

33

4+
@analytics.eventclass("eventuser_endpoint.request")
45
class EventUserEndpointRequest(analytics.Event):
5-
type = "eventuser_endpoint.request"
6-
7-
attributes = (
8-
analytics.Attribute("endpoint", required=True),
9-
analytics.Attribute("project_id", required=False),
10-
)
6+
endpoint: str
7+
project_id: str | None = None
118

129

1310
analytics.register(EventUserEndpointRequest)
Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
from sentry import analytics
22

33

4+
@analytics.eventclass("first_profile.sent")
45
class FirstProfileSentEvent(analytics.Event):
5-
type = "first_profile.sent"
6-
7-
attributes = (
8-
analytics.Attribute("organization_id"),
9-
analytics.Attribute("project_id"),
10-
analytics.Attribute("platform", required=False),
11-
analytics.Attribute("user_id", required=False),
12-
)
6+
organization_id: str
7+
project_id: str
8+
platform: str | None = None
9+
user_id: str | None = None
1310

1411

1512
analytics.register(FirstProfileSentEvent)

src/sentry/api/endpoints/group_tagkey_values.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
from rest_framework.response import Response
44

55
from sentry import analytics, tagstore
6+
from sentry.analytics.events.eventuser_endpoint_request import EventUserEndpointRequest
67
from sentry.api.api_owners import ApiOwner
78
from sentry.api.api_publish_status import ApiPublishStatus
89
from sentry.api.base import region_silo_endpoint
@@ -68,9 +69,10 @@ def get(self, request: Request, group, key) -> Response:
6869
List a Tag's Values
6970
"""
7071
analytics.record(
71-
"eventuser_endpoint.request",
72-
project_id=group.project_id,
73-
endpoint="sentry.api.endpoints.group_tagkey_values.get",
72+
EventUserEndpointRequest(
73+
project_id=group.project_id,
74+
endpoint="sentry.api.endpoints.group_tagkey_values.get",
75+
)
7476
)
7577
lookup_key = tagstore.backend.prefix_reserved_key(key)
7678

src/sentry/api/endpoints/project_users.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
from rest_framework.response import Response
33

44
from sentry import analytics
5+
from sentry.analytics.events.eventuser_endpoint_request import EventUserEndpointRequest
56
from sentry.api.api_publish_status import ApiPublishStatus
67
from sentry.api.base import region_silo_endpoint
78
from sentry.api.bases.project import ProjectAndStaffPermission, ProjectEndpoint
@@ -41,9 +42,10 @@ def get(self, request: Request, project) -> Response:
4142
For example, ``query=email:foo@example.com``
4243
"""
4344
analytics.record(
44-
"eventuser_endpoint.request",
45-
project_id=project.id,
46-
endpoint="sentry.api.endpoints.project_users.get",
45+
EventUserEndpointRequest(
46+
project_id=project.id,
47+
endpoint="sentry.api.endpoints.project_users.get",
48+
)
4749
)
4850
field, identifier = None, None
4951
if request.GET.get("query"):

src/sentry/receivers/onboarding.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
from django.db.models import F
88

99
from sentry import analytics
10+
from sentry.analytics.events.first_profile_sent import FirstProfileSentEvent
1011
from sentry.integrations.base import IntegrationDomain, get_integration_types
1112
from sentry.integrations.services.integration import RpcIntegration, integration_service
1213
from sentry.models.organization import Organization
@@ -182,11 +183,12 @@ def record_first_transaction(project, event, **kwargs):
182183
@first_profile_received.connect(weak=False, dispatch_uid="onboarding.record_first_profile")
183184
def record_first_profile(project, **kwargs):
184185
analytics.record(
185-
"first_profile.sent",
186-
user_id=get_owner_id(project),
187-
organization_id=project.organization_id,
188-
project_id=project.id,
189-
platform=project.platform,
186+
FirstProfileSentEvent(
187+
user_id=get_owner_id(project),
188+
organization_id=project.organization_id,
189+
project_id=project.id,
190+
platform=project.platform,
191+
)
190192
)
191193

192194

src/sentry/tasks/unmerge.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
from django.db.models.base import Model
1212

1313
from sentry import analytics, eventstore, features, similarity, tsdb
14+
from sentry.analytics.events.eventuser_endpoint_request import EventUserEndpointRequest
1415
from sentry.constants import DEFAULT_LOGGER_NAME, LOG_LEVELS_MAP
1516
from sentry.culprit import generate_culprit
1617
from sentry.eventstore.models import BaseEvent
@@ -380,9 +381,10 @@ def repair_group_release_data(caches, project, events):
380381

381382
def get_event_user_from_interface(value, project):
382383
analytics.record(
383-
"eventuser_endpoint.request",
384-
project_id=project.id,
385-
endpoint="sentry.tasks.unmerge.get_event_user_from_interface",
384+
EventUserEndpointRequest(
385+
project_id=project.id,
386+
endpoint="sentry.tasks.unmerge.get_event_user_from_interface",
387+
)
386388
)
387389
return EventUser(
388390
user_ident=value.get("id"),

0 commit comments

Comments
 (0)