Skip to content

Commit 652a851

Browse files
authored
feat(Replay): Add Flag for EAP Query for Replay Details Page (#103278)
In this [previous PR](#102416), a new helper function for querying EAP for replay details given a replay ID was added to the organization details file. This PR calls this new function behind a new feature flag organizations:replay-details-eap-query. Relates To: https://linear.app/getsentry/issue/REPLAY-825/add-flag-for-reading-from-eap-for-replay-details
1 parent 39ba245 commit 652a851

File tree

2 files changed

+22
-9
lines changed

2 files changed

+22
-9
lines changed

src/sentry/features/temporary.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,8 @@ def register_temporary_features(manager: FeatureManager) -> None:
359359
manager.add("organizations:replay-ai-summaries-mobile", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
360360
# Enable replay AI summaries for web replays
361361
manager.add("organizations:replay-ai-summaries", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
362+
# Enable reading replay details using EAP query
363+
manager.add("organizations:replay-details-eap-query", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=False)
362364
# Enable version 2 of release serializer
363365
manager.add("organizations:releases-serializer-v2", OrganizationFeature, FeatureHandlerStrategy.FLAGPOLE, api_expose=True)
364366
# Enable version 2 of reprocessing (completely distinct from v1)

src/sentry/replays/endpoints/organization_replay_details.py

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ def query_replay_instance_eap(
3030
start: datetime,
3131
end: datetime,
3232
organization_id: int,
33-
request_user_id: int,
33+
request_user_id: int | None,
3434
referrer: str = "replays.query.details_query",
3535
):
3636
select = [
@@ -159,14 +159,25 @@ def get(self, request: Request, organization: Organization, replay_id: str) -> R
159159
projects = self.get_projects(request, organization, include_all_accessible=True)
160160
project_ids = [project.id for project in projects]
161161

162-
snuba_response = query_replay_instance(
163-
project_id=project_ids,
164-
replay_id=replay_id,
165-
start=filter_params["start"],
166-
end=filter_params["end"],
167-
organization=organization,
168-
request_user_id=request.user.id,
169-
)
162+
# Use EAP query if feature flag is enabled
163+
if features.has("organizations:replay-details-eap-query", organization):
164+
snuba_response = query_replay_instance_eap(
165+
project_ids=project_ids,
166+
replay_ids=[replay_id],
167+
start=filter_params["start"],
168+
end=filter_params["end"],
169+
organization_id=organization.id,
170+
request_user_id=request.user.id,
171+
)["data"]
172+
else:
173+
snuba_response = query_replay_instance(
174+
project_id=project_ids,
175+
replay_id=replay_id,
176+
start=filter_params["start"],
177+
end=filter_params["end"],
178+
organization=organization,
179+
request_user_id=request.user.id,
180+
)
170181

171182
response = process_raw_response(
172183
snuba_response,

0 commit comments

Comments
 (0)