Skip to content

ref(analytics): Transform analytics events for TET-832 #95212

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 5 additions & 8 deletions src/sentry/analytics/events/codeowners_assignment.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
from sentry import analytics


@analytics.eventclass("codeowners.assignment")
class CodeownersAssignment(analytics.Event):
type = "codeowners.assignment"

attributes = (
analytics.Attribute("organization_id"),
analytics.Attribute("project_id"),
analytics.Attribute("group_id"),
analytics.Attribute("updated_assignment"),
)
organization_id: str
project_id: str
group_id: str
updated_assignment: str


analytics.register(CodeownersAssignment)
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
from sentry import analytics


@analytics.eventclass("cron_monitor_broken_status.recovery")
class CronMonitorBrokenStatusRecovery(analytics.Event):
type = "cron_monitor_broken_status.recovery"

attributes = (
analytics.Attribute("organization_id"),
analytics.Attribute("project_id"),
analytics.Attribute("monitor_id"),
analytics.Attribute("monitor_env_id"),
)
organization_id: str
project_id: str
monitor_id: str
monitor_env_id: str


analytics.register(CronMonitorBrokenStatusRecovery)
17 changes: 7 additions & 10 deletions src/sentry/analytics/events/eventuser_equality_check.py
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
from sentry import analytics


@analytics.eventclass("eventuser_equality.check")
class EventUserEqualityCheck(analytics.Event):
type = "eventuser_equality.check"

attributes = (
analytics.Attribute("event_id"),
analytics.Attribute("project_id"),
analytics.Attribute("group_id"),
analytics.Attribute("snuba_eventuser_equality", type=bool),
analytics.Attribute("event_eventuser_equality", type=bool),
analytics.Attribute("snuba_event_equality", type=bool),
)
event_id: str
project_id: str
group_id: str
snuba_eventuser_equality: bool
event_eventuser_equality: bool
snuba_event_equality: bool


analytics.register(EventUserEqualityCheck)
11 changes: 4 additions & 7 deletions src/sentry/analytics/events/first_user_context_sent.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
from sentry import analytics


@analytics.eventclass("first_user_context.sent")
class FirstUserContextSentEvent(analytics.Event):
type = "first_user_context.sent"

attributes = (
analytics.Attribute("user_id"),
analytics.Attribute("organization_id"),
analytics.Attribute("project_id"),
)
user_id: str
organization_id: str
project_id: str


analytics.register(FirstUserContextSentEvent)
Original file line number Diff line number Diff line change
@@ -1,17 +1,14 @@
from sentry import analytics


@analytics.eventclass("integrations.failed_to_fetch_commit_context")
class IntegrationsFailedToFetchCommitContext(analytics.Event):
type = "integrations.failed_to_fetch_commit_context"

attributes = (
analytics.Attribute("organization_id"),
analytics.Attribute("project_id"),
analytics.Attribute("code_mapping_id"),
analytics.Attribute("group_id"),
analytics.Attribute("provider", type=str),
analytics.Attribute("error_message", type=str),
)
organization_id: str
project_id: str
code_mapping_id: str
group_id: str
provider: str
error_message: str


analytics.register(IntegrationsFailedToFetchCommitContext)
15 changes: 6 additions & 9 deletions src/sentry/analytics/events/integration_pipeline_step.py
Original file line number Diff line number Diff line change
@@ -1,16 +1,13 @@
from sentry import analytics


@analytics.eventclass("integrations.pipeline_step")
class IntegrationPipelineStep(analytics.Event):
type = "integrations.pipeline_step"

attributes = (
analytics.Attribute("user_id"),
analytics.Attribute("organization_id"),
analytics.Attribute("integration"),
analytics.Attribute("step_index"),
analytics.Attribute("pipeline_type"),
)
user_id: str
organization_id: str
integration: str
step_index: str
pipeline_type: str


analytics.register(IntegrationPipelineStep)
13 changes: 5 additions & 8 deletions src/sentry/analytics/events/issueowners_assignment.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,12 @@
from sentry import analytics


@analytics.eventclass("issueowners.assignment")
class IssueOwnersAssignment(analytics.Event):
type = "issueowners.assignment"

attributes = (
analytics.Attribute("organization_id"),
analytics.Attribute("project_id"),
analytics.Attribute("group_id"),
analytics.Attribute("updated_assignment"),
)
organization_id: str
project_id: str
group_id: str
updated_assignment: str


analytics.register(IssueOwnersAssignment)
11 changes: 4 additions & 7 deletions src/sentry/analytics/events/join_request_created.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
from sentry import analytics


@analytics.eventclass("join_request.created")
class JoinRequestCreatedEvent(analytics.Event):
type = "join_request.created"

attributes = (
analytics.Attribute("member_id"),
analytics.Attribute("organization_id"),
analytics.Attribute("referrer", required=False),
)
member_id: str
organization_id: str
referrer: str | None = None


analytics.register(JoinRequestCreatedEvent)
5 changes: 2 additions & 3 deletions src/sentry/analytics/events/join_request_link_viewed.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,9 @@
from sentry import analytics


@analytics.eventclass("join_request.link_viewed")
class JoinRequestLinkViewedEvent(analytics.Event):
type = "join_request.link_viewed"

attributes = (analytics.Attribute("organization_id"),)
organization_id: str


analytics.register(JoinRequestLinkViewedEvent)
6 changes: 2 additions & 4 deletions src/sentry/analytics/events/missing_members_nudge.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,9 @@
from sentry import analytics


@analytics.eventclass("missing_members_nudge.sent")
class MissingMembersNudgeEvent(analytics.Event, abc.ABC):
type = "missing_members_nudge.sent"
attributes = [
analytics.Attribute("organization_id"),
]
organization_id: str


analytics.register(MissingMembersNudgeEvent)
11 changes: 4 additions & 7 deletions src/sentry/analytics/events/quick_trace_connected_services.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
from sentry import analytics


@analytics.eventclass("quick_trace.connected_services")
class QuickTraceConnectedServices(analytics.Event):
type = "quick_trace.connected_services"

attributes = (
analytics.Attribute("trace_id"),
analytics.Attribute("organization_id"),
analytics.Attribute("projects"),
)
trace_id: str
organization_id: str
projects: str


analytics.register(QuickTraceConnectedServices)
11 changes: 4 additions & 7 deletions src/sentry/analytics/events/user_created.py
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
from sentry import analytics


@analytics.eventclass("user.created")
class UserCreatedEvent(analytics.Event):
type = "user.created"

attributes = (
analytics.Attribute("id"),
analytics.Attribute("username"),
analytics.Attribute("email"),
)
id: str
username: str
email: str


analytics.register(UserCreatedEvent)
64 changes: 26 additions & 38 deletions src/sentry/api/analytics.py
Original file line number Diff line number Diff line change
@@ -1,54 +1,42 @@
from sentry import analytics


@analytics.eventclass("organization_saved_search.created")
class OrganizationSavedSearchCreatedEvent(analytics.Event):
type = "organization_saved_search.created"

attributes = (
analytics.Attribute("org_id"),
analytics.Attribute("search_type"),
analytics.Attribute("query"),
)
org_id: str
search_type: str
query: str


@analytics.eventclass("organization_saved_search.deleted")
class OrganizationSavedSearchDeletedEvent(analytics.Event):
type = "organization_saved_search.deleted"

attributes = (
analytics.Attribute("org_id"),
analytics.Attribute("search_type"),
analytics.Attribute("query"),
)
org_id: str
search_type: str
query: str


@analytics.eventclass("group_similar_issues_embeddings.count")
class GroupSimilarIssuesEmbeddingsCountEvent(analytics.Event):
type = "group_similar_issues_embeddings.count"

attributes = (
analytics.Attribute("organization_id"),
analytics.Attribute("project_id"),
analytics.Attribute("group_id"),
analytics.Attribute("user_id"),
analytics.Attribute("count_over_threshold", required=False),
)
organization_id: str
project_id: str
group_id: str
user_id: str
count_over_threshold: str | None = None


@analytics.eventclass("devtoolbar.api_request")
class DevToolbarApiRequestEvent(analytics.Event):
type = "devtoolbar.api_request"

attributes = (
analytics.Attribute("view_name"),
analytics.Attribute("route"),
analytics.Attribute("query_string", required=False),
analytics.Attribute("origin", required=False),
analytics.Attribute("method"),
analytics.Attribute("status_code", type=int),
analytics.Attribute("organization_id", type=int, required=False),
analytics.Attribute("organization_slug", required=False),
analytics.Attribute("project_id", type=int, required=False),
analytics.Attribute("project_slug", required=False),
analytics.Attribute("user_id", type=int, required=False),
)
view_name: str
route: str
query_string: str | None = None
origin: str | None = None
method: str
status_code: int
organization_id: int | None = None
organization_slug: str | None = None
project_id: int | None = None
project_slug: str | None = None
user_id: int | None = None


analytics.register(OrganizationSavedSearchCreatedEvent)
Expand Down
10 changes: 6 additions & 4 deletions src/sentry/api/endpoints/organization_search_details.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from rest_framework.response import Response

from sentry import analytics
from sentry.api.analytics import OrganizationSavedSearchDeletedEvent
from sentry.api.api_owners import ApiOwner
from sentry.api.api_publish_status import ApiPublishStatus
from sentry.api.base import region_silo_endpoint
Expand Down Expand Up @@ -103,9 +104,10 @@ def delete(self, request: Request, organization: Organization, search: SavedSear
"""
search.delete()
analytics.record(
"organization_saved_search.deleted",
search_type=SearchType(search.type).name,
org_id=organization.id,
query=search.query,
OrganizationSavedSearchDeletedEvent(
search_type=SearchType(search.type).name,
org_id=organization.id,
query=search.query,
)
)
return Response(status=204)
Loading
Loading