Skip to content

Commit 8143000

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

File tree

6 files changed

+47
-58
lines changed

6 files changed

+47
-58
lines changed
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("eventuser_snuba.for_projects")
45
class EventUserSnubaForProjects(analytics.Event):
5-
type = "eventuser_snuba.for_projects"
6-
7-
attributes = (
8-
analytics.Attribute("project_ids", type=list),
9-
analytics.Attribute("total_tries", type=int),
10-
analytics.Attribute("total_rows_returned", required=True, type=int),
11-
analytics.Attribute("total_time_ms", type=int),
12-
)
6+
project_ids: list
7+
total_tries: int
8+
total_rows_returned: int
9+
total_time_ms: int
1310

1411

1512
analytics.register(EventUserSnubaForProjects)
Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,14 @@
11
from sentry import analytics
22

33

4+
@analytics.eventclass("eventuser_snuba.query")
45
class EventUserSnubaQuery(analytics.Event):
5-
type = "eventuser_snuba.query"
6-
7-
attributes = (
8-
analytics.Attribute("project_ids", type=list),
9-
analytics.Attribute("query"),
10-
analytics.Attribute("query_try", type=int),
11-
analytics.Attribute("count_rows_returned", required=True, type=int),
12-
analytics.Attribute("count_rows_filtered", required=True, type=int),
13-
analytics.Attribute("query_time_ms", type=int),
14-
)
6+
project_ids: list
7+
query: str
8+
query_try: int
9+
count_rows_returned: int
10+
count_rows_filtered: int
11+
query_time_ms: int
1512

1613

1714
analytics.register(EventUserSnubaQuery)
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
from sentry import analytics
22

33

4+
@analytics.eventclass("grouping.experiments.parameterization")
45
class GroupingParameterizationExperiment(analytics.Event):
5-
type = "grouping.experiments.parameterization"
6-
7-
attributes = (
8-
analytics.Attribute("experiment_name"),
9-
analytics.Attribute("project_id"),
10-
analytics.Attribute("event_id"),
11-
)
6+
experiment_name: str
7+
project_id: str
8+
event_id: str
129

1310

1411
analytics.register(GroupingParameterizationExperiment)
Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,11 @@
11
from sentry import analytics
22

33

4+
@analytics.eventclass("notifications.settings_updated")
45
class NotificationSettingsUpdated(analytics.Event):
5-
type = "notifications.settings_updated"
6-
7-
attributes = (
8-
analytics.Attribute("target_type"),
9-
analytics.Attribute("actor_id", required=False),
10-
analytics.Attribute("id"),
11-
)
6+
target_type: str
7+
actor_id: str | None = None
8+
id: str
129

1310

1411
analytics.register(NotificationSettingsUpdated)

src/sentry/mail/analytics.py

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,21 +2,18 @@
22

33

44
# TODO: should have same base class as SlackIntegrationNotificationSent
5+
@analytics.eventclass("integrations.email.notification_sent")
56
class EmailNotificationSent(analytics.Event):
6-
type = "integrations.email.notification_sent"
7-
8-
attributes = (
9-
analytics.Attribute("organization_id"),
10-
analytics.Attribute("project_id", required=False),
11-
analytics.Attribute("category"),
12-
analytics.Attribute("actor_id", required=False),
13-
analytics.Attribute("user_id", required=False),
14-
analytics.Attribute("group_id", required=False),
15-
analytics.Attribute("id"),
16-
analytics.Attribute("actor_type"),
17-
analytics.Attribute("notification_uuid"),
18-
analytics.Attribute("alert_id", required=False),
19-
)
7+
organization_id: str
8+
project_id: str | None = None
9+
category: str
10+
actor_id: str | None = None
11+
user_id: str | None = None
12+
group_id: str | None = None
13+
id: str
14+
actor_type: str
15+
notification_uuid: str
16+
alert_id: str | None = None
2017

2118

2219
analytics.register(EmailNotificationSent)

src/sentry/utils/eventuser.py

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
)
2626

2727
from sentry import analytics
28+
from sentry.analytics.events.eventuser_snuba_for_projects import EventUserSnubaForProjects
29+
from sentry.analytics.events.eventuser_snuba_query import EventUserSnubaQuery
2830
from sentry.eventstore.models import Event, GroupEvent
2931
from sentry.models.project import Project
3032
from sentry.snuba.dataset import Dataset, EntityKey
@@ -233,13 +235,14 @@ def for_projects(
233235
query_end_time = time.time()
234236

235237
analytics.record(
236-
"eventuser_snuba.query",
237-
project_ids=[p.id for p in projects],
238-
query=query.print(),
239-
query_try=tries,
240-
count_rows_returned=len(data_results),
241-
count_rows_filtered=len(data_results) - len(unique_event_users),
242-
query_time_ms=int((query_end_time - query_start_time) * 1000),
238+
EventUserSnubaQuery(
239+
project_ids=[p.id for p in projects],
240+
query=query.print(),
241+
query_try=tries,
242+
count_rows_returned=len(data_results),
243+
count_rows_filtered=len(data_results) - len(unique_event_users),
244+
query_time_ms=int((query_end_time - query_start_time) * 1000),
245+
)
243246
)
244247
tries += 1
245248
if (
@@ -252,11 +255,12 @@ def for_projects(
252255

253256
end_time = time.time()
254257
analytics.record(
255-
"eventuser_snuba.for_projects",
256-
project_ids=[p.id for p in projects],
257-
total_tries=tries,
258-
total_rows_returned=len(full_results),
259-
total_time_ms=int((end_time - start_time) * 1000),
258+
EventUserSnubaForProjects(
259+
project_ids=[p.id for p in projects],
260+
total_tries=tries,
261+
total_rows_returned=len(full_results),
262+
total_time_ms=int((end_time - start_time) * 1000),
263+
)
260264
)
261265

262266
if result_limit:

0 commit comments

Comments
 (0)