Skip to content

Commit f5ab3c9

Browse files
feat(CapMan): Replays queries now have tenant_ids (#45885)
### Overview - Added org ID per Snuba request for Replays queries - More context #44788
1 parent a9991cc commit f5ab3c9

File tree

6 files changed

+16
-0
lines changed

6 files changed

+16
-0
lines changed

src/sentry/eventstore/snuba/backend.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -233,6 +233,7 @@ def get_event_by_id(self, project_id, event_id, group_id=None):
233233
filter_keys={"project_id": [project_id], "event_id": [event_id]},
234234
limit=1,
235235
referrer="eventstore.get_event_by_id_nodestore",
236+
tenant_ids={"organization_id": event.project.organization_id},
236237
**raw_query_kwargs,
237238
)
238239
except snuba.QueryOutsideRetentionError:
@@ -338,6 +339,7 @@ def __get_event_id_from_filter(
338339
referrer="eventstore.get_next_or_prev_event_id",
339340
orderby=orderby,
340341
dataset=dataset,
342+
tenant_ids=tenant_ids,
341343
)
342344
except (snuba.QueryOutsideRetentionError, snuba.QueryOutsideGroupActivityError):
343345
# This can happen when the date conditions for paging

src/sentry/replays/endpoints/organization_replay_count.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ def get(self, request: Request, organization: Organization) -> Response:
6565
start=snuba_params.start,
6666
end=snuba_params.end,
6767
replay_ids=list(replay_ids_mapping.keys()),
68+
tenant_ids={"organization_id": organization.id},
6869
)
6970

7071
if request.GET.get("returnIds"):

src/sentry/replays/endpoints/organization_replay_index.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ def data_fn(offset, limit):
6161
limit=limit,
6262
offset=offset,
6363
search_filters=search_filters,
64+
tenant_ids={"organization_id": organization.id},
6465
)
6566

6667
return self.paginate(

src/sentry/replays/endpoints/project_replay_details.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ def get(self, request: Request, project: Project, replay_id: str) -> Response:
4545
replay_id=replay_id,
4646
start=filter_params["start"],
4747
end=filter_params["end"],
48+
tenant_ids={"organization_id": project.organization_id},
4849
)
4950

5051
response = process_raw_response(

src/sentry/replays/query.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ def query_replays_collection(
5252
limit: Optional[str],
5353
offset: Optional[str],
5454
search_filters: List[SearchFilter],
55+
tenant_ids: dict[str, Any] | None = None,
5556
) -> dict:
5657
"""Query aggregated replay collection."""
5758
conditions = []
@@ -75,6 +76,7 @@ def query_replays_collection(
7576
sorting=sort_ordering,
7677
pagination=paginators,
7778
search_filters=search_filters,
79+
tenant_ids=tenant_ids,
7880
)
7981
return response["data"]
8082

@@ -84,6 +86,7 @@ def query_replay_instance(
8486
replay_id: str,
8587
start: datetime,
8688
end: datetime,
89+
tenant_ids: dict[str, Any],
8790
):
8891
"""Query aggregated replay instance."""
8992
response = query_replays_dataset(
@@ -98,6 +101,7 @@ def query_replay_instance(
98101
sorting=[],
99102
pagination=None,
100103
search_filters=[],
104+
tenant_ids=tenant_ids,
101105
)
102106
return response["data"]
103107

@@ -112,6 +116,7 @@ def query_replays_dataset(
112116
sorting: List[OrderBy],
113117
pagination: Optional[Paginators],
114118
search_filters: List[SearchFilter],
119+
tenant_ids: dict[str, Any] | None = None,
115120
):
116121
query_options = {}
117122

@@ -158,6 +163,7 @@ def query_replays_dataset(
158163
granularity=Granularity(3600),
159164
**query_options,
160165
),
166+
tenant_ids=tenant_ids,
161167
)
162168
return raw_snql_query(snuba_request, "replays.query.query_replays_dataset")
163169

@@ -167,6 +173,7 @@ def query_replays_count(
167173
start: datetime,
168174
end: datetime,
169175
replay_ids: List[str],
176+
tenant_ids: dict[str, Any],
170177
):
171178

172179
snuba_request = Request(
@@ -198,6 +205,7 @@ def query_replays_count(
198205
groupby=[Column("replay_id")],
199206
granularity=Granularity(3600),
200207
),
208+
tenant_ids=tenant_ids,
201209
)
202210
return raw_snql_query(
203211
snuba_request, referrer="replays.query.query_replays_count", use_cache=True
@@ -210,6 +218,7 @@ def query_replays_dataset_tagkey_values(
210218
end: datetime,
211219
environment: str | None,
212220
tag_key: str,
221+
tenant_ids: dict[str, Any] | None,
213222
):
214223
"""Query replay tagkey values. Like our other tag functionality, aggregates do not work here."""
215224

@@ -257,6 +266,7 @@ def query_replays_dataset_tagkey_values(
257266
granularity=Granularity(3600),
258267
limit=Limit(1000),
259268
),
269+
tenant_ids=tenant_ids,
260270
)
261271
return raw_snql_query(
262272
snuba_request, referrer="replays.query.query_replays_dataset_tagkey_values", use_cache=True

src/sentry/tagstore/snuba/backend.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1404,6 +1404,7 @@ def get_tag_value_paginator_for_projects(
14041404
end=end,
14051405
environment=filters.get("environment"),
14061406
tag_key=key,
1407+
tenant_ids=tenant_ids,
14071408
)
14081409
results = {
14091410
d["tag_value"]: {

0 commit comments

Comments
 (0)