Browse Source

chore(capman): add more tenant_ids to tests (#48121)

Just updating some tests to be in line with snuba allocation policy
requirements. no functional changes

Allows https://github.com/getsentry/snuba/pull/4098 to be merged
volokluev 1 year ago
parent
commit
6e3331d248

+ 37 - 5
src/sentry/tsdb/base.py

@@ -447,7 +447,14 @@ class BaseTSDB(Service):
             self.record(model, key, values, timestamp, environment_id=environment_id)
 
     def get_distinct_counts_series(
-        self, model, keys, start, end=None, rollup=None, environment_id=None
+        self,
+        model,
+        keys,
+        start,
+        end=None,
+        rollup=None,
+        environment_id=None,
+        tenant_ids=None,
     ):
         """
         Fetch counts of distinct items for each rollup interval within the range.
@@ -473,7 +480,14 @@ class BaseTSDB(Service):
         raise NotImplementedError
 
     def get_distinct_counts_union(
-        self, model, keys, start, end=None, rollup=None, environment_id=None
+        self,
+        model,
+        keys,
+        start,
+        end=None,
+        rollup=None,
+        environment_id=None,
+        tenant_ids=None,
     ):
         """
         Count the total number of distinct items across multiple counters
@@ -508,7 +522,15 @@ class BaseTSDB(Service):
         raise NotImplementedError
 
     def get_most_frequent(
-        self, model, keys, start, end=None, rollup=None, limit=None, environment_id=None
+        self,
+        model,
+        keys,
+        start,
+        end=None,
+        rollup=None,
+        limit=None,
+        environment_id=None,
+        tenant_ids=None,
     ):
         """
         Retrieve the most frequently seen items in a frequency table.
@@ -522,7 +544,15 @@ class BaseTSDB(Service):
         raise NotImplementedError
 
     def get_most_frequent_series(
-        self, model, keys, start, end=None, rollup=None, limit=None, environment_id=None
+        self,
+        model,
+        keys,
+        start,
+        end=None,
+        rollup=None,
+        limit=None,
+        environment_id=None,
+        tenant_ids=None,
     ):
         """
         Retrieve the most frequently seen items in a frequency table for each
@@ -553,7 +583,9 @@ class BaseTSDB(Service):
         """
         raise NotImplementedError
 
-    def get_frequency_totals(self, model, items, start, end=None, rollup=None, environment_id=None):
+    def get_frequency_totals(
+        self, model, items, start, end=None, rollup=None, environment_id=None, tenant_ids=None
+    ):
         """
         Retrieve the total frequency of known items in a table over time.
 

+ 28 - 5
src/sentry/tsdb/snuba.py

@@ -760,7 +760,7 @@ class SnubaTSDB(BaseTSDB):
         return {k: sorted(result[k].items()) for k in result}
 
     def get_distinct_counts_series(
-        self, model, keys, start, end=None, rollup=None, environment_id=None
+        self, model, keys, start, end=None, rollup=None, environment_id=None, tenant_ids=None
     ):
         result = self.get_data(
             model,
@@ -771,6 +771,7 @@ class SnubaTSDB(BaseTSDB):
             [environment_id] if environment_id is not None else None,
             aggregation="uniq",
             group_on_time=True,
+            tenant_ids=tenant_ids,
         )
         # convert
         #    {group:{timestamp:count, ...}}
@@ -806,7 +807,7 @@ class SnubaTSDB(BaseTSDB):
         )
 
     def get_distinct_counts_union(
-        self, model, keys, start, end=None, rollup=None, environment_id=None
+        self, model, keys, start, end=None, rollup=None, environment_id=None, tenant_ids=None
     ):
         return self.get_data(
             model,
@@ -817,10 +818,19 @@ class SnubaTSDB(BaseTSDB):
             [environment_id] if environment_id is not None else None,
             aggregation="uniq",
             group_on_model=False,
+            tenant_ids=tenant_ids,
         )
 
     def get_most_frequent(
-        self, model, keys, start, end=None, rollup=None, limit=10, environment_id=None
+        self,
+        model,
+        keys,
+        start,
+        end=None,
+        rollup=None,
+        limit=10,
+        environment_id=None,
+        tenant_ids=None,
     ):
         aggregation = f"topK({limit})"
         result = self.get_data(
@@ -831,6 +841,7 @@ class SnubaTSDB(BaseTSDB):
             rollup,
             [environment_id] if environment_id is not None else None,
             aggregation=aggregation,
+            tenant_ids=tenant_ids,
         )
         # convert
         #    {group:[top1, ...]}
@@ -843,7 +854,15 @@ class SnubaTSDB(BaseTSDB):
         return result
 
     def get_most_frequent_series(
-        self, model, keys, start, end=None, rollup=None, limit=10, environment_id=None
+        self,
+        model,
+        keys,
+        start,
+        end=None,
+        rollup=None,
+        limit=10,
+        environment_id=None,
+        tenant_ids=None,
     ):
         aggregation = f"topK({limit})"
         result = self.get_data(
@@ -855,6 +874,7 @@ class SnubaTSDB(BaseTSDB):
             [environment_id] if environment_id is not None else None,
             aggregation=aggregation,
             group_on_time=True,
+            tenant_ids=tenant_ids,
         )
         # convert
         #    {group:{timestamp:[top1, ...]}}
@@ -888,7 +908,9 @@ class SnubaTSDB(BaseTSDB):
         #    {group: [(timestamp, {agg: count, ...}), ...]}
         return {k: sorted(result[k].items()) for k in result}
 
-    def get_frequency_totals(self, model, items, start, end=None, rollup=None, environment_id=None):
+    def get_frequency_totals(
+        self, model, items, start, end=None, rollup=None, environment_id=None, tenant_ids=None
+    ):
         return self.get_data(
             model,
             items,
@@ -897,6 +919,7 @@ class SnubaTSDB(BaseTSDB):
             rollup,
             [environment_id] if environment_id is not None else None,
             aggregation="count()",
+            tenant_ids=tenant_ids,
         )
 
     def flatten_keys(self, items):

+ 0 - 1
src/sentry/utils/snuba.py

@@ -817,7 +817,6 @@ def _apply_cache_and_build_results(
     validate_referrer(referrer)
     if referrer:
         headers["referer"] = referrer
-
     # Store the original position of the query so that we can maintain the order
     query_param_list = list(enumerate(snuba_param_list))
 

+ 92 - 0
tests/sentry/snuba/test_discover_query.py

@@ -67,6 +67,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             query="",
             params=self.params,
             orderby="project",
+            referrer="discover",
         )
 
         data = result["data"]
@@ -182,6 +183,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             result = discover.query(
                 selected_columns=[column],
                 query=query,
+                referrer="discover",
                 params=self.params,
             )
             data = result["data"]
@@ -203,6 +205,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 selected_columns=["issue", "issue.id"],
                 query=query,
                 params=self.params,
+                referrer="discover",
             )
             data = result["data"]
             assert len(data) == 1
@@ -347,6 +350,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     query="",
                     params=self.params,
                     orderby=f"{direction}{column}",
+                    referrer="discover",
                 )
                 data = result["data"]
                 assert len(data) == 2
@@ -896,6 +900,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -963,6 +968,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 selected_columns=["transaction"] + col,
                 query=query,
                 orderby="transaction",
+                referrer="discover",
                 params={
                     "start": before_now(minutes=30),
                     "end": before_now(minutes=2),
@@ -1052,6 +1058,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 selected_columns=["transaction"] + col,
                 query=query,
                 orderby="transaction",
+                referrer="discover",
                 params={
                     "start": before_now(minutes=30),
                     "end": before_now(minutes=2),
@@ -1142,6 +1149,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
         for query, expected_user_misery, col, alias in queries:
             result = discover.query(
                 selected_columns=["transaction"] + col,
+                referrer="discover",
                 query=query,
                 orderby="transaction",
                 params={
@@ -1186,6 +1194,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "end": before_now(minutes=2),
                     "project_id": [project.id],
                 },
+                referrer="discover",
                 use_aggregate_conditions=use_aggregate_conditions,
             )
             data = result["data"]
@@ -1233,6 +1242,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
         for i, test_case in enumerate(fields):
             selected, query = test_case
             result = discover.query(
+                referrer="discover",
                 selected_columns=selected,
                 query=query,
                 orderby="transaction",
@@ -1273,6 +1283,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             result = discover.query(
                 selected_columns=["transaction", "last_seen()"],
                 query=query,
+                referrer="discover",
                 orderby="transaction",
                 params={
                     "start": before_now(minutes=10),
@@ -1303,6 +1314,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["transaction", "latest_event()"],
             query="",
             orderby="transaction",
+            referrer="discover",
             params={
                 "start": before_now(minutes=10),
                 "end": before_now(minutes=2),
@@ -1354,6 +1366,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1388,6 +1401,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
 
         for query, expected_length, use_aggregate_conditions in queries:
             result = discover.query(
+                referrer="discover",
                 selected_columns=[
                     "transaction",
                     "percentile(transaction.duration, 0.7)",
@@ -1423,6 +1437,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
 
         for query, expected_length, use_aggregate_conditions in queries:
             result = discover.query(
+                referrer="discover",
                 selected_columns=[
                     "transaction",
                     "p50(transaction.duration)",
@@ -1468,6 +1483,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1501,6 +1517,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1534,6 +1551,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1567,6 +1585,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1609,6 +1628,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1635,6 +1655,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "project_id": [self.project.id],
             },
             use_aggregate_conditions=True,
+            referrer="discover",
         )
         data = result["data"]
 
@@ -1666,6 +1687,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "project_id": [self.project.id],
             },
             use_aggregate_conditions=True,
+            referrer="discover",
         )
         data = result["data"]
 
@@ -1710,6 +1732,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [self.project.id],
                 },
                 use_aggregate_conditions=True,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1740,6 +1763,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "project_id": [self.project.id],
             },
             use_aggregate_conditions=True,
+            referrer="discover",
         )
         data = result["data"]
 
@@ -1787,6 +1811,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1839,6 +1864,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "project_id": [project.id],
                 },
                 use_aggregate_conditions=use_aggregate_conditions,
+                referrer="discover",
             )
             data = result["data"]
 
@@ -1871,6 +1897,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["transaction.status"],
             query="",
             params=self.params,
+            referrer="discover",
         )
         data = result["data"]
         assert len(data) == 3
@@ -1897,6 +1924,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 selected_columns=["transaction.status"],
                 query=query,
                 params=self.params,
+                referrer="discover",
             )
             data = result["data"]
             assert len(data) == len(expected_statuses), message
@@ -1957,6 +1985,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "start": before_now(minutes=12),
                     "end": before_now(minutes=8),
                 },
+                referrer="discover",
             )
 
             data = result["data"]
@@ -1999,6 +2028,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "start": before_now(minutes=12),
                     "end": before_now(minutes=8),
                 },
+                referrer="discover",
             )
             data = result["data"]
 
@@ -2035,6 +2065,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "start": before_now(minutes=12),
                     "end": before_now(minutes=8),
                 },
+                referrer="discover",
             )
 
             data = result["data"]
@@ -2047,6 +2078,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
         result = discover.query(
             selected_columns=["stack.filename"],
             query="stack.filename:[raven.js]",
+            referrer="discover",
             params={
                 "organization_id": self.organization.id,
                 "project_id": [self.project.id],
@@ -2092,6 +2124,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "start": before_now(minutes=12),
                     "end": before_now(minutes=8),
                 },
+                referrer="discover",
             )
             data = result["data"]
             assert len(data) == expected_len
@@ -2129,6 +2162,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "start": before_now(minutes=12),
                     "end": before_now(minutes=8),
                 },
+                referrer="discover",
             )
 
             data = result["data"]
@@ -2176,6 +2210,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "end": before_now(minutes=2),
                     "project_id": [project.id],
                 },
+                referrer="discover",
             )
             data = result["data"]
 
@@ -2186,6 +2221,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["project.id", "user", "release", "timestamp.to_hour"],
             query="",
             params=self.params,
+            referrer="discover",
         )
         data = result["data"]
         assert len(data) == 1
@@ -2209,6 +2245,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["project.id", "user", "user.email"],
             query="",
             params=self.params,
+            referrer="discover",
         )
         data = result["data"]
         assert len(data) == 1
@@ -2229,6 +2266,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             query="",
             params=self.params,
             auto_fields=True,
+            referrer="discover",
         )
         data = result["data"]
         assert len(data) == 1
@@ -2240,6 +2278,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["project.id", "user.email"],
             query="user.email:bruce@example.com",
             params=self.params,
+            referrer="discover",
             auto_fields=True,
         )
         data = result["data"]
@@ -2250,6 +2289,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
     def test_auto_fields_simple_fields(self):
         result = discover.query(
             selected_columns=["user.email", "release"],
+            referrer="discover",
             query="",
             params=self.params,
             auto_fields=True,
@@ -2272,6 +2312,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
     def test_auto_fields_aggregates(self):
         result = discover.query(
             selected_columns=["count_unique(user.email)"],
+            referrer="discover",
             query="",
             params=self.params,
             auto_fields=True,
@@ -2285,6 +2326,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id", "message"],
             query=f"release:{self.create_release(self.project).version}",
             params=self.params,
+            referrer="discover",
         )
         assert len(result["data"]) == 0
 
@@ -2292,6 +2334,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id", "message"],
             query=f"release:{self.release.version}",
             params=self.params,
+            referrer="discover",
         )
         assert len(result["data"]) == 1
         data = result["data"]
@@ -2333,6 +2376,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{SEMVER_ALIAS}:>1.2.3",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             release_2_e_1,
@@ -2344,6 +2388,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{SEMVER_ALIAS}:>=1.2.3",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             release_1_e_1,
@@ -2357,12 +2402,14 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{SEMVER_ALIAS}:<1.2.4",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {release_1_e_1, release_1_e_2}
         result = discover.query(
             selected_columns=["id"],
             query=f"!{SEMVER_ALIAS}:1.2.3",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             self.event.event_id,
@@ -2426,6 +2473,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{RELEASE_STAGE_ALIAS}:{ReleaseStages.ADOPTED}",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             adopted_release_e_1,
@@ -2436,6 +2484,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"!{RELEASE_STAGE_ALIAS}:{ReleaseStages.LOW_ADOPTION}",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             adopted_release_e_1,
@@ -2447,6 +2496,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{RELEASE_STAGE_ALIAS}:[{ReleaseStages.ADOPTED}, {ReleaseStages.REPLACED}]",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             adopted_release_e_1,
@@ -2474,6 +2524,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
 
         result = discover.query(
             selected_columns=["id"],
+            referrer="discover",
             query=f"{SEMVER_PACKAGE_ALIAS}:test",
             params=self.params,
         )
@@ -2484,6 +2535,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
         result = discover.query(
             selected_columns=["id"],
             query=f"{SEMVER_PACKAGE_ALIAS}:test2",
+            referrer="discover",
             params=self.params,
         )
         assert {r["id"] for r in result["data"]} == {
@@ -2511,6 +2563,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{SEMVER_BUILD_ALIAS}:123",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             release_1_e_1,
@@ -2520,6 +2573,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{SEMVER_BUILD_ALIAS}:124",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {
             release_2_e_1,
@@ -2528,6 +2582,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id"],
             query=f"{SEMVER_BUILD_ALIAS}:>=123",
             params=self.params,
+            referrer="discover",
         )
         assert {r["id"] for r in result["data"]} == {release_1_e_1, release_1_e_2, release_2_e_1}
 
@@ -2536,6 +2591,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id", "message"],
             query="release:latest",
             params=self.params,
+            referrer="discover",
         )
         assert len(result["data"]) == 1
         data = result["data"]
@@ -2548,6 +2604,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id", "message"],
             query=f"environment:{self.create_environment(self.project).name}",
             params=self.params,
+            referrer="discover",
         )
         assert len(result["data"]) == 0
 
@@ -2555,6 +2612,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["id", "message"],
             query=f"environment:{self.environment.name}",
             params=self.params,
+            referrer="discover",
         )
         assert len(result["data"]) == 1
         data = result["data"]
@@ -2583,6 +2641,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "end": self.now,
             },
             orderby="message",
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2620,6 +2679,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "end": self.now,
             },
             orderby="release",
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2645,6 +2705,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "end": self.now,
             },
             orderby="title",
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2663,6 +2724,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "end": self.now,
             },
             orderby="title",
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2694,6 +2756,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             },
             orderby="trek",
             use_aggregate_conditions=True,
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2725,6 +2788,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             },
             orderby="trek",
             use_aggregate_conditions=True,
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2738,6 +2802,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 query="(event.type:transaction AND (trek:{} AND (transaction:*{}* AND count():>2)))".format(
                     "b" * 32, "b" * 32
                 ),
+                referrer="discover",
                 params={
                     "project_id": [self.project.id],
                     "start": self.two_min_ago,
@@ -2770,6 +2835,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             },
             orderby="transaction",
             use_aggregate_conditions=True,
+            referrer="discover",
         )
 
         data = results["data"]
@@ -2785,6 +2851,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             selected_columns=["project.id", "user", "release"],
             query="timestamp.to_hour:" + iso_format(event_hour),
             params=self.params,
+            referrer="discover",
         )
         data = result["data"]
         assert len(data) == 1
@@ -2810,6 +2877,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             params=self.params,
             orderby="transaction",
             use_aggregate_conditions=True,
+            referrer="discover",
         )
 
         data = results["data"]
@@ -2831,6 +2899,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             query="",
             params=self.params,
             functions_acl=["array_join"],
+            referrer="discover",
         )
         assert {"fcp", "fp", "lcp"} == {
             row["array_join_measurements_key"] for row in results["data"]
@@ -2847,6 +2916,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                     "start": self.two_min_ago,
                     "end": self.now,
                 },
+                referrer="discover",
             )
 
         # using private functions in an aggregation without access should error
@@ -2861,6 +2931,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                         "end": self.now,
                     },
                     use_aggregate_conditions=True,
+                    referrer="discover",
                 )
 
         # using private functions in an aggregation without access should error
@@ -2875,6 +2946,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                         "start": self.two_min_ago,
                         "end": self.now,
                     },
+                    referrer="discover",
                     auto_aggregations=True,
                     use_aggregate_conditions=True,
                 )
@@ -2894,6 +2966,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             params=self.params,
             # make sure to opt in to gain access to the function
             functions_acl=["sumArray"],
+            referrer="discover",
             # -Array combinator is only supported in SnQL
         )
         assert results["data"][0]["sumArray_measurements_value"] == 3000.0
@@ -2911,6 +2984,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "end": before_now(seconds=1),
                 "project_id": [self.project.id],
             },
+            referrer="discover",
             use_aggregate_conditions=True,
         )
 
@@ -2937,6 +3011,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             orderby="message",
             limit=1,
             offset=1,
+            referrer="discover",
         )
 
         data = result["data"]
@@ -2954,6 +3029,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             query="event.type:transaction",
             params=self.params,
             use_aggregate_conditions=True,
+            referrer="discover",
         )
 
         assert results["meta"]["fields"] == {
@@ -2977,6 +3053,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             ],
             query="event.type:transaction",
             params=self.params,
+            referrer="discover",
         )
 
         data = results["data"]
@@ -3003,6 +3080,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
             ],
             query="event.type:transaction",
             params=self.params,
+            referrer="discover",
         )
 
         data = results["data"]
@@ -3031,6 +3109,7 @@ class QueryIntegrationTest(SnubaTestCase, TestCase):
                 "end": self.now,
             },
             orderby="project",
+            referrer="discover",
         )
         data = result["data"]
         assert len(data) == len(expected)
@@ -3061,6 +3140,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             equations=["spans.http / transaction.duration"],
             query=self.query,
             params=self.params,
+            referrer="discover",
         )
         assert len(results["data"]) == 1
         result = results["data"][0]
@@ -3079,6 +3159,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             ],
             query=self.query,
             params=self.params,
+            referrer="discover",
         )
         assert len(results["data"]) == 1
         result = results["data"][0]
@@ -3097,6 +3178,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
                 equations=["spans.http / transaction.status"],
                 query=self.query,
                 params=self.params,
+                referrer="discover",
             )
 
     def test_invalid_function(self):
@@ -3109,6 +3191,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
                 equations=["p50(transaction.duration) / last_seen()"],
                 query=self.query,
                 params=self.params,
+                referrer="discover",
             )
 
     def test_unselected_field(self):
@@ -3120,6 +3203,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
                 equations=["spans.http / transaction.duration"],
                 query=self.query,
                 params=self.params,
+                referrer="discover",
             )
 
     def test_unselected_function(self):
@@ -3131,6 +3215,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
                 equations=["p50(transaction.duration) / p100(transaction.duration)"],
                 query=self.query,
                 params=self.params,
+                referrer="discover",
             )
 
     def test_orderby_equation(self):
@@ -3154,6 +3239,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             "orderby": ["equation[0]"],
             "query": self.query,
             "params": self.params,
+            "referrer": "discover",
         }
         results = discover.query(**query_params)
         assert len(results["data"]) == 3
@@ -3179,6 +3265,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
                 orderby=["equation[1]"],
                 query=self.query,
                 params=self.params,
+                referrer="discover",
             )
 
     def test_equation_without_field_or_function(self):
@@ -3193,6 +3280,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
                 ],
                 query=self.query,
                 params=self.params,
+                referrer="discover",
             )
 
     def test_aggregate_equation(self):
@@ -3203,6 +3291,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             equations=["p50(transaction.duration) / 2"],
             query=self.query,
             params=self.params,
+            referrer="discover",
         )
         assert len(results["data"]) == 1
         result = results["data"][0]
@@ -3217,6 +3306,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             equations=["p50(transaction.duration) + 2", "p50(transaction.duration) / count()"],
             query=self.query,
             params=self.params,
+            referrer="discover",
         )
         assert len(results["data"]) == 1
         result = results["data"][0]
@@ -3237,6 +3327,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             ],
             query=self.query,
             params=self.params,
+            referrer="discover",
         )
         assert len(results["data"]) == 1
         result = results["data"][0]
@@ -3272,6 +3363,7 @@ class ArithmeticTest(SnubaTestCase, TestCase):
             "orderby": ["equation[0]"],
             "query": self.query,
             "params": self.params,
+            "referrer": "discover",
         }
         results = discover.query(**query_params)
         assert len(results["data"]) == 3

+ 238 - 38
tests/snuba/tagstore/test_tagstore_backend.py

@@ -188,7 +188,11 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
     def test_get_group_tag_keys_and_top_values(self):
         result = list(
-            self.ts.get_group_tag_keys_and_top_values(self.proj1group1, [self.proj1env1.id])
+            self.ts.get_group_tag_keys_and_top_values(
+                self.proj1group1,
+                [self.proj1env1.id],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
         )
         tags = [r.key for r in result]
         assert set(tags) == {"foo", "baz", "environment", "sentry:release", "sentry:user", "level"}
@@ -211,6 +215,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 self.proj1group1,
                 [self.proj1env1.id],
                 keys=["environment", "sentry:release"],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
         )
         tags = [r.key for r in result]
@@ -229,7 +234,13 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
     def test_get_group_tag_keys_and_top_values_perf_issue(self):
         perf_group, env = self.perf_group_and_env
 
-        result = list(self.ts.get_group_tag_keys_and_top_values(perf_group, [env.id]))
+        result = list(
+            self.ts.get_group_tag_keys_and_top_values(
+                perf_group,
+                [env.id],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
+        )
         tags = [r.key for r in result]
         assert set(tags) == {"foo", "biz", "environment", "sentry:release", "level", "transaction"}
 
@@ -251,6 +262,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 perf_group,
                 [env.id],
                 keys=["environment", "sentry:release"],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
         )
         tags = [r.key for r in result]
@@ -268,7 +280,13 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         # Just duplicating test with this flag. We can just remove this branch once we're migrated
         with self.feature("organizations:issue-platform-search-perf-issues"):
-            result = list(self.ts.get_group_tag_keys_and_top_values(perf_group, [env.id]))
+            result = list(
+                self.ts.get_group_tag_keys_and_top_values(
+                    perf_group,
+                    [env.id],
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
+                )
+            )
             tags = [r.key for r in result]
             assert set(tags) == {
                 "foo",
@@ -297,6 +315,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                     perf_group,
                     [env.id],
                     keys=["environment", "sentry:release"],
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
                 )
             )
             tags = [r.key for r in result]
@@ -353,7 +372,13 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         # assert False
 
     def test_get_top_group_tag_values(self):
-        resp = self.ts.get_top_group_tag_values(self.proj1group1, self.proj1env1.id, "foo", 1)
+        resp = self.ts.get_top_group_tag_values(
+            self.proj1group1,
+            self.proj1env1.id,
+            "foo",
+            1,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
+        )
         assert len(resp) == 1
         assert resp[0].times_seen == 2
         assert resp[0].key == "foo"
@@ -362,7 +387,13 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
     def test_get_top_group_tag_values_perf(self):
         perf_group, env = self.perf_group_and_env
-        resp = self.ts.get_top_group_tag_values(perf_group, env.id, "foo", 2)
+        resp = self.ts.get_top_group_tag_values(
+            perf_group,
+            env.id,
+            "foo",
+            2,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
+        )
         assert len(resp) == 2
         assert resp[0].times_seen == 1
         assert resp[0].key == "foo"
@@ -374,7 +405,13 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         assert resp[1].group_id == perf_group.id
         # Just duplicating test with this flag. We can just remove this branch once we're migrated
         with self.feature("organizations:issue-platform-search-perf-issues"):
-            resp = self.ts.get_top_group_tag_values(perf_group, env.id, "foo", 2)
+            resp = self.ts.get_top_group_tag_values(
+                perf_group,
+                env.id,
+                "foo",
+                2,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
             assert len(resp) == 2
             assert resp[0].times_seen == 1
             assert resp[0].key == "foo"
@@ -395,19 +432,42 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         assert resp[0].group_id == group.id
 
     def test_get_group_tag_value_count(self):
-        assert self.ts.get_group_tag_value_count(self.proj1group1, self.proj1env1.id, "foo") == 2
+        assert (
+            self.ts.get_group_tag_value_count(
+                self.proj1group1,
+                self.proj1env1.id,
+                "foo",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
+            == 2
+        )
 
     def test_get_group_tag_value_count_perf(self):
         perf_group, env = self.perf_group_and_env
 
-        assert self.ts.get_group_tag_value_count(perf_group, env.id, "foo") == 2
+        assert (
+            self.ts.get_group_tag_value_count(
+                perf_group, env.id, "foo", {"referrer": "r", "organization_id": 1234}
+            )
+            == 2
+        )
         with self.feature("organizations:issue-platform-search-perf-issues"):
-            assert self.ts.get_group_tag_value_count(perf_group, env.id, "foo") == 2
+            assert (
+                self.ts.get_group_tag_value_count(
+                    perf_group, env.id, "foo", {"referrer": "r", "organization_id": 1234}
+                )
+                == 2
+            )
 
     def test_get_group_tag_value_count_generic(self):
         group, env = self.generic_group_and_env
 
-        assert self.ts.get_group_tag_value_count(group, env.id, "foo") == 1
+        assert (
+            self.ts.get_group_tag_value_count(
+                group, env.id, "foo", {"referrer": "r", "organization_id": 1234}
+            )
+            == 1
+        )
 
     def test_get_tag_keys(self):
         expected_keys = {
@@ -422,14 +482,19 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         keys = {
             k.key: k
             for k in self.ts.get_tag_keys(
-                project_id=self.proj1.id, environment_id=self.proj1env1.id
+                project_id=self.proj1.id,
+                environment_id=self.proj1env1.id,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
         }
         assert set(keys) == expected_keys
         keys = {
             k.key: k
             for k in self.ts.get_tag_keys(
-                project_id=self.proj1.id, environment_id=self.proj1env1.id, include_values_seen=True
+                project_id=self.proj1.id,
+                environment_id=self.proj1env1.id,
+                include_values_seen=True,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
         }
         assert set(keys) == expected_keys
@@ -446,14 +511,19 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         keys = {
             k.key: k
             for k in self.ts.get_tag_keys(
-                project_id=self.proj1.id, environment_id=self.proj1env1.id, denylist=denylist_keys
+                project_id=self.proj1.id,
+                environment_id=self.proj1env1.id,
+                denylist=denylist_keys,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
         }
         assert set(keys) == expected_keys
         keys = {
             k.key: k
             for k in self.ts.get_tag_keys(
-                project_id=self.proj1.id, environment_id=self.proj1env1.id
+                project_id=self.proj1.id,
+                environment_id=self.proj1env1.id,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
         }
         expected_keys |= {"browser", "sentry:release"}
@@ -465,6 +535,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=self.proj1group1,
                 environment_id=self.proj1env1.id,
                 key="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
         assert (
@@ -472,11 +543,19 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=self.proj1group1,
                 environment_id=self.proj1env1.id,
                 key="foo",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).key
             == "foo"
         )
 
-        keys = {k.key: k for k in self.ts.get_group_tag_keys(self.proj1group1, [self.proj1env1.id])}
+        keys = {
+            k.key: k
+            for k in self.ts.get_group_tag_keys(
+                self.proj1group1,
+                [self.proj1env1.id],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
+        }
         assert set(keys) == {"baz", "environment", "foo", "sentry:release", "sentry:user", "level"}
 
     def test_get_group_tag_key_perf(self):
@@ -487,6 +566,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=perf_group,
                 environment_id=env.id,
                 key="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
         assert (
@@ -494,10 +574,18 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=perf_group,
                 environment_id=self.proj1env1.id,
                 key="foo",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).key
             == "foo"
         )
-        keys = {k.key: k for k in self.ts.get_group_tag_keys(perf_group, [env.id])}
+        keys = {
+            k.key: k
+            for k in self.ts.get_group_tag_keys(
+                perf_group,
+                [env.id],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
+        }
         assert set(keys) == {"biz", "environment", "foo", "sentry:release", "transaction", "level"}
         # Just duplicating test with this flag. We can just remove this branch once we're migrated
         with self.feature("organizations:issue-platform-search-perf-issues"):
@@ -506,10 +594,18 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                     group=perf_group,
                     environment_id=self.proj1env1.id,
                     key="foo",
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
                 ).key
                 == "foo"
             )
-            keys = {k.key: k for k in self.ts.get_group_tag_keys(perf_group, [env.id])}
+            keys = {
+                k.key: k
+                for k in self.ts.get_group_tag_keys(
+                    perf_group,
+                    [env.id],
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
+                )
+            }
             assert set(keys) == {
                 "biz",
                 "environment",
@@ -527,6 +623,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=group,
                 environment_id=env.id,
                 key="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
         assert (
@@ -534,6 +631,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=group,
                 environment_id=self.proj1env1.id,
                 key="foo",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).key
             == "foo"
         )
@@ -549,6 +647,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 environment_id=self.proj1env1.id,
                 key="foo",
                 value="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
         assert (
@@ -556,6 +655,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 group=self.proj1group1,
                 environment_id=self.proj1env1.id,
                 key="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             == set()
         )
@@ -565,6 +665,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 self.ts.get_group_tag_values(
                     group=self.proj1group1,
                     environment_id=self.proj1env1.id,
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
                     key="foo",
                 )
             )[0].value
@@ -578,6 +679,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 environment_id=self.proj1env1.id,
                 key="foo",
                 value="bar",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).value
             == "bar"
         )
@@ -585,7 +687,10 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
     def test_get_tag_key(self):
         with pytest.raises(TagKeyNotFound):
             self.ts.get_tag_key(
-                project_id=self.proj1.id, environment_id=self.proj1env1.id, key="notreal"
+                project_id=self.proj1.id,
+                environment_id=self.proj1env1.id,
+                key="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
     def test_get_tag_value(self):
@@ -595,6 +700,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 environment_id=self.proj1env1.id,
                 key="foo",
                 value="notreal",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
     def test_get_tag_value_label(self):
@@ -610,6 +716,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             project_ids=[self.proj1.id],
             group_ids=[self.proj1group1.id, self.proj1group2.id],
             environment_ids=[self.proj1env1.id],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {self.proj1group1.id: 2, self.proj1group2.id: 1}
 
         # test filtering by date range where there shouldn't be results
@@ -620,6 +727,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 environment_ids=[self.proj1env1.id],
                 start=self.now - timedelta(days=5),
                 end=self.now - timedelta(days=4),
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             == {}
         )
@@ -647,20 +755,26 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             project_ids=[self.proj1.id],
             group_ids=[self.proj1group1.id, self.proj1group2.id],
             environment_ids=None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {self.proj1group1.id: 3, self.proj1group2.id: 1}
 
     def test_get_group_ids_for_users(self):
         assert self.ts.get_group_ids_for_users(
-            [self.proj1.id], [EventUser(project_id=self.proj1.id, ident="user1")]
+            [self.proj1.id],
+            [EventUser(project_id=self.proj1.id, ident="user1")],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {self.proj1group1.id, self.proj1group2.id}
 
         assert self.ts.get_group_ids_for_users(
-            [self.proj1.id], [EventUser(project_id=self.proj1.id, ident="user2")]
+            [self.proj1.id],
+            [EventUser(project_id=self.proj1.id, ident="user2")],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {self.proj1group1.id}
 
     def test_get_group_tag_values_for_users(self):
         result = self.ts.get_group_tag_values_for_users(
-            [EventUser(project_id=self.proj1.id, ident="user1")]
+            [EventUser(project_id=self.proj1.id, ident="user1")],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert len(result) == 2
         assert {v.group_id for v in result} == {self.proj1group1.id, self.proj1group2.id}
@@ -675,7 +789,8 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             assert v.value == "user1"
 
         result = self.ts.get_group_tag_values_for_users(
-            [EventUser(project_id=self.proj1.id, ident="user2")]
+            [EventUser(project_id=self.proj1.id, ident="user2")],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert len(result) == 1
         assert result[0].value == "user2"
@@ -754,7 +869,13 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
     def test_get_group_event_filter(self):
         assert self.ts.get_group_event_filter(
-            self.proj1.id, self.proj1group1.id, [self.proj1env1.id], {"foo": "bar"}, None, None
+            self.proj1.id,
+            self.proj1group1.id,
+            [self.proj1env1.id],
+            {"foo": "bar"},
+            None,
+            None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {"event_id__in": {"1" * 32, "2" * 32}}
 
         assert self.ts.get_group_event_filter(
@@ -764,6 +885,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             {"foo": "bar"},
             (self.now - timedelta(seconds=1)),
             None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {"event_id__in": {"1" * 32}}
 
         assert self.ts.get_group_event_filter(
@@ -773,6 +895,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             {"foo": "bar"},
             None,
             (self.now - timedelta(seconds=1)),
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {"event_id__in": {"2" * 32}}
 
         assert self.ts.get_group_event_filter(
@@ -782,6 +905,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             {"foo": "bar"},
             None,
             None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {"event_id__in": {"1" * 32, "2" * 32, "4" * 32}}
 
         assert self.ts.get_group_event_filter(
@@ -791,6 +915,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             {"foo": "bar", "sentry:release": "200"},  # AND
             None,
             None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {"event_id__in": {"2" * 32}}
 
         assert self.ts.get_group_event_filter(
@@ -800,6 +925,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
             {"browser": "chrome"},
             None,
             None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {"event_id__in": {"3" * 32}}
 
         assert (
@@ -810,6 +936,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 {"browser": "ie"},
                 None,
                 None,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             is None
         )
@@ -819,7 +946,10 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         assert list(
             self.ts.get_tag_value_paginator(
-                self.proj1.id, self.proj1env1.id, "sentry:user"
+                self.proj1.id,
+                self.proj1env1.id,
+                "sentry:user",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             TagValue(
@@ -840,7 +970,11 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         assert list(
             self.ts.get_tag_value_paginator(
-                self.proj1.id, self.proj1env1.id, "sentry:user", query="user1"
+                self.proj1.id,
+                self.proj1env1.id,
+                "sentry:user",
+                query="user1",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             TagValue(
@@ -859,7 +993,12 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         two_days_ago = self.now - timedelta(days=2)
         assert list(
             self.ts.get_tag_value_paginator(
-                self.proj1.id, self.proj1env1.id, "sentry:user", start=day_ago, end=self.now
+                self.proj1.id,
+                self.proj1env1.id,
+                "sentry:user",
+                start=day_ago,
+                end=self.now,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             TagValue(
@@ -882,7 +1021,12 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         assert (
             list(
                 self.ts.get_tag_value_paginator(
-                    self.proj1.id, self.proj1env1.id, "sentry:user", start=two_days_ago, end=day_ago
+                    self.proj1.id,
+                    self.proj1env1.id,
+                    "sentry:user",
+                    start=two_days_ago,
+                    end=day_ago,
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
                 ).get_result(10)
             )
             == []
@@ -893,7 +1037,10 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         assert list(
             self.ts.get_tag_value_paginator(
-                self.proj1.id, self.proj1env1.id, "stack.lineno"
+                self.proj1.id,
+                self.proj1env1.id,
+                "stack.lineno",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             TagValue(
@@ -907,7 +1054,11 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         assert list(
             self.ts.get_tag_value_paginator(
-                self.proj1.id, self.proj1env1.id, "stack.lineno", query="30"
+                self.proj1.id,
+                self.proj1env1.id,
+                "stack.lineno",
+                query="30",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             TagValue(
@@ -923,7 +1074,12 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         from sentry.tagstore.types import GroupTagValue
 
         assert list(
-            self.ts.get_group_tag_value_iter(self.proj1group1, [self.proj1env1.id], "sentry:user")
+            self.ts.get_group_tag_value_iter(
+                self.proj1group1,
+                [self.proj1env1.id],
+                "sentry:user",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
         ) == [
             GroupTagValue(
                 group_id=self.proj1group1.id,
@@ -948,7 +1104,14 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         group, env = self.perf_group_and_env
 
-        assert list(self.ts.get_group_tag_value_iter(group, [env.id], "foo")) == [
+        assert list(
+            self.ts.get_group_tag_value_iter(
+                group,
+                [env.id],
+                "foo",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
+        ) == [
             GroupTagValue(
                 group_id=group.id,
                 key="foo",
@@ -968,7 +1131,14 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         ]
         # Just duplicating test with this flag. We can just remove this branch once we're migrated
         with self.feature("organizations:issue-platform-search-perf-issues"):
-            assert list(self.ts.get_group_tag_value_iter(group, [env.id], "foo")) == [
+            assert list(
+                self.ts.get_group_tag_value_iter(
+                    group,
+                    [env.id],
+                    "foo",
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
+                )
+            ) == [
                 GroupTagValue(
                     group_id=group.id,
                     key="foo",
@@ -992,7 +1162,10 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
         assert list(
             self.ts.get_group_tag_value_paginator(
-                self.proj1group1, [self.proj1env1.id], "sentry:user"
+                self.proj1group1,
+                [self.proj1env1.id],
+                "sentry:user",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             GroupTagValue(
@@ -1019,7 +1192,12 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         group, env = self.perf_group_and_env
 
         assert list(
-            self.ts.get_group_tag_value_paginator(group, [env.id], "foo").get_result(10)
+            self.ts.get_group_tag_value_paginator(
+                group,
+                [env.id],
+                "foo",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            ).get_result(10)
         ) == [
             GroupTagValue(
                 group_id=group.id,
@@ -1042,7 +1220,12 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
         # Just duplicating test with this flag. We can just remove this branch once we're migrated
         with self.feature("organizations:issue-platform-search-perf-issues"):
             assert list(
-                self.ts.get_group_tag_value_paginator(group, [env.id], "foo").get_result(10)
+                self.ts.get_group_tag_value_paginator(
+                    group,
+                    [env.id],
+                    "foo",
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
+                ).get_result(10)
             ) == [
                 GroupTagValue(
                     group_id=group.id,
@@ -1091,6 +1274,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 [self.proj1env1.id],
                 "sentry:user",
                 order_by="-times_seen",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             GroupTagValue(
@@ -1140,6 +1324,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 [env.id],
                 "foo",
                 order_by="-times_seen",
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ).get_result(10)
         ) == [
             GroupTagValue(
@@ -1167,6 +1352,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                     [env.id],
                     "foo",
                     order_by="-times_seen",
+                    tenant_ids={"referrer": "r", "organization_id": 1234},
                 ).get_result(10)
             ) == [
                 GroupTagValue(
@@ -1189,7 +1375,10 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
 
     def test_get_group_seen_values_for_environments(self):
         assert self.ts.get_group_seen_values_for_environments(
-            [self.proj1.id], [self.proj1group1.id], [self.proj1env1.id]
+            [self.proj1.id],
+            [self.proj1group1.id],
+            [self.proj1env1.id],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1group1.id: {
                 "first_seen": self.now - timedelta(seconds=2),
@@ -1206,6 +1395,7 @@ class TagStorageTest(TestCase, SnubaTestCase, SearchIssueTestMixin):
                 [self.proj1env1.id],
                 start=self.now - timedelta(hours=5),
                 end=self.now - timedelta(hours=4),
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             == {}
         )
@@ -1286,9 +1476,13 @@ class PerfTagStorageTest(TestCase, SnubaTestCase, PerfIssueTransactionTestMixin)
             [self.project.id],
             group_ids=[first_group.id, second_group.id],
             environment_ids=[self.environment.id],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {first_group.id: 2, second_group.id: 2}
         assert self.ts.get_perf_groups_user_counts(
-            [self.project.id], group_ids=[first_group.id, second_group.id], environment_ids=None
+            [self.project.id],
+            group_ids=[first_group.id, second_group.id],
+            environment_ids=None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {first_group.id: 3, second_group.id: 3}
         # Just duplicating test with this flag. We can just remove this branch once we're migrated
         with self.feature("organizations:issue-platform-search-perf-issues"):
@@ -1296,9 +1490,13 @@ class PerfTagStorageTest(TestCase, SnubaTestCase, PerfIssueTransactionTestMixin)
                 [self.project.id],
                 group_ids=[first_group.id, second_group.id],
                 environment_ids=[self.environment.id],
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ) == {first_group.id: 2, second_group.id: 2}
             assert self.ts.get_perf_groups_user_counts(
-                [self.project.id], group_ids=[first_group.id, second_group.id], environment_ids=None
+                [self.project.id],
+                group_ids=[first_group.id, second_group.id],
+                environment_ids=None,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             ) == {first_group.id: 3, second_group.id: 3}
 
     def test_get_perf_group_list_tag_value_by_environment(self):
@@ -1328,6 +1526,7 @@ class PerfTagStorageTest(TestCase, SnubaTestCase, PerfIssueTransactionTestMixin)
             [self.environment.id],
             "environment",
             self.environment.name,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
 
         assert group_seen_stats == {
@@ -1348,6 +1547,7 @@ class PerfTagStorageTest(TestCase, SnubaTestCase, PerfIssueTransactionTestMixin)
                 [self.environment.id],
                 "environment",
                 self.environment.name,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
             assert group_seen_stats == {

+ 16 - 3
tests/snuba/tasks/test_unmerge.py

@@ -262,7 +262,12 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
 
         assert {
             (gtv.value, gtv.times_seen)
-            for gtv in tagstore.get_group_tag_values(source, production_environment.id, "color")
+            for gtv in tagstore.get_group_tag_values(
+                source,
+                production_environment.id,
+                "color",
+                tenant_ids={"referrer": "get_tag_values", "organization_id": 1},
+            )
         } == {("red", 6), ("green", 5), ("blue", 5)}
 
         similar_items = features.compare(source)
@@ -318,7 +323,10 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
         assert {
             (gtv.value, gtv.times_seen)
             for gtv in tagstore.get_group_tag_values(
-                destination, production_environment.id, "color"
+                destination,
+                production_environment.id,
+                "color",
+                tenant_ids={"referrer": "get_tag_values", "organization_id": 1},
             )
         } == {("red", 4), ("green", 3), ("blue", 3)}
 
@@ -346,7 +354,10 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
         assert {
             (gtk.value, gtk.times_seen)
             for gtk in tagstore.get_group_tag_values(
-                destination, production_environment.id, "color"
+                destination,
+                production_environment.id,
+                "color",
+                tenant_ids={"referrer": "get_tag_values", "organization_id": 1},
             )
         } == {("red", 4), ("blue", 3), ("green", 3)}
 
@@ -358,6 +369,7 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
             now - timedelta(seconds=rollup_duration),
             time_from_now(17),
             rollup_duration,
+            tenant_ids={"referrer": "get_range", "organization_id": 1},
         )
 
         environment_time_series = tsdb.get_range(
@@ -367,6 +379,7 @@ class UnmergeTestCase(TestCase, SnubaTestCase):
             time_from_now(17),
             rollup_duration,
             environment_ids=[production_environment.id],
+            tenant_ids={"referrer": "get_range", "organization_id": 1},
         )
 
         def get_expected_series_values(rollup, events, function=None):

+ 7 - 1
tests/snuba/test_snql_snuba.py

@@ -57,7 +57,12 @@ class SnQLTest(TestCase, SnubaTestCase):
                 ]
             )
         )
-        request = Request(dataset="events", app_id="tests", query=query)
+        request = Request(
+            dataset="events",
+            app_id="tests",
+            query=query,
+            tenant_ids={"referrer": "testing.test", "organization_id": 1},
+        )
         result = snuba.raw_snql_query(request, referrer="referrer_not_in_enum")
         assert len(result["data"]) == 1
         assert result["data"][0] == {"count": 1, "project_id": self.project.id}
@@ -71,6 +76,7 @@ class SnQLTest(TestCase, SnubaTestCase):
             Request(
                 dataset="events",
                 app_id="tests",
+                tenant_ids={"referrer": "testing.test", "organization_id": 1},
                 query=Query(
                     Entity("events"),
                     select=[Column("event_id")],

+ 6 - 0
tests/snuba/test_snuba.py

@@ -61,6 +61,7 @@ class SnubaTest(TestCase, SnubaTestCase):
             groupby=["project_id"],
             filter_keys={"project_id": [self.project.id]},
             referrer="testing.test",
+            tenant_ids={"referrer": "testing.test", "organization_id": 1},
         ) == {self.project.id: 1}
 
     def test_fail(self) -> None:
@@ -88,6 +89,7 @@ class SnubaTest(TestCase, SnubaTestCase):
                 groupby=["project_id"],
                 filter_keys={"project_id": [self.project.id]},
                 referrer="testing.test",
+                tenant_ids={"referrer": "testing.test", "organization_id": 1},
             )
 
         assert _get_event_count() == {self.project.id: 2}
@@ -129,12 +131,14 @@ class BulkRawQueryTest(TestCase, SnubaTestCase):
                     end=timezone.now(),
                     selected_columns=["event_id", "group_id", "timestamp"],
                     filter_keys={"project_id": [self.project.id], "group_id": [event_1.group.id]},
+                    tenant_ids={"referrer": "testing.test", "organization_id": 1},
                 ),
                 snuba.SnubaQueryParams(
                     start=timezone.now() - timedelta(days=1),
                     end=timezone.now(),
                     selected_columns=["event_id", "group_id", "timestamp"],
                     filter_keys={"project_id": [self.project.id], "group_id": [event_2.group.id]},
+                    tenant_ids={"referrer": "testing.test", "organization_id": 1},
                 ),
             ],
         )
@@ -160,12 +164,14 @@ class BulkRawQueryTest(TestCase, SnubaTestCase):
                 end=timezone.now(),
                 selected_columns=["event_id", "group_id", "timestamp"],
                 filter_keys={"project_id": [self.project.id], "group_id": [event_1.group.id]},
+                tenant_ids={"referrer": "testing.test", "organization_id": 1},
             ),
             snuba.SnubaQueryParams(
                 start=timezone.now() - timedelta(days=1),
                 end=timezone.now(),
                 selected_columns=["event_id", "group_id", "timestamp"],
                 filter_keys={"project_id": [self.project.id], "group_id": [event_2.group.id]},
+                tenant_ids={"referrer": "testing.test", "organization_id": 1},
             ),
         ]
 

+ 127 - 19
tests/snuba/tsdb/test_tsdb_backend.py

@@ -168,7 +168,14 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
         group = groups[0]
 
         dts = [self.now + timedelta(hours=i) for i in range(4)]
-        assert self.db.get_range(TSDBModel.group, [group.id], dts[0], dts[-1], rollup=3600) == {
+        assert self.db.get_range(
+            TSDBModel.group,
+            [group.id],
+            dts[0],
+            dts[-1],
+            rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
+        ) == {
             group.id: [
                 (timestamp(dts[0]), 6 * 2),
                 (timestamp(dts[1]), 6 * 2),
@@ -180,7 +187,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
     def test_range_groups(self):
         dts = [self.now + timedelta(hours=i) for i in range(4)]
         assert self.db.get_range(
-            TSDBModel.group, [self.proj1group1.id], dts[0], dts[-1], rollup=3600
+            TSDBModel.group,
+            [self.proj1group1.id],
+            dts[0],
+            dts[-1],
+            rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1group1.id: [
                 (timestamp(dts[0]), 3),
@@ -197,6 +209,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             dts[0],
             dts[-1],
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1group1.id: [
                 (timestamp(dts[0]), 3),
@@ -217,7 +230,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
     def test_range_releases(self):
         dts = [self.now + timedelta(hours=i) for i in range(4)]
         assert self.db.get_range(
-            TSDBModel.release, [self.release1.id], dts[0], dts[-1], rollup=3600
+            TSDBModel.release,
+            [self.release1.id],
+            dts[0],
+            dts[-1],
+            rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.release1.id: [
                 (timestamp(dts[0]), 0),
@@ -230,7 +248,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
     def test_range_project(self):
         dts = [self.now + timedelta(hours=i) for i in range(4)]
         assert self.db.get_range(
-            TSDBModel.project, [self.proj1.id], dts[0], dts[-1], rollup=3600
+            TSDBModel.project,
+            [self.proj1.id],
+            dts[0],
+            dts[-1],
+            rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1.id: [
                 (timestamp(dts[0]), 6),
@@ -249,6 +272,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             dts[-1],
             rollup=3600,
             environment_ids=[self.env1.id],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1.id: [
                 (timestamp(dts[0]), 6),
@@ -266,6 +290,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             dts[-1],
             rollup=3600,
             environment_ids=[self.env2.id],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1.id: [
                 (timestamp(dts[0]), 0),
@@ -283,6 +308,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             dts[-1],
             rollup=3600,
             environment_ids=[self.defaultenv.id],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1.id: [
                 (timestamp(dts[0]), 0),
@@ -297,7 +323,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
         daystart = self.now.replace(hour=0)  # day buckets start on day boundaries
         dts = [daystart + timedelta(days=i) for i in range(2)]
         assert self.db.get_range(
-            TSDBModel.project, [self.proj1.id], dts[0], dts[-1], rollup=86400
+            TSDBModel.project,
+            [self.proj1.id],
+            dts[0],
+            dts[-1],
+            rollup=86400,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {self.proj1.id: [(timestamp(dts[0]), 24), (timestamp(dts[1]), 0)]}
 
         # Minutely
@@ -306,13 +337,23 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
         expected = [(to_timestamp(d), 1 if i % 10 == 0 else 0) for i, d in enumerate(dts)]
 
         assert self.db.get_range(
-            TSDBModel.project, [self.proj1.id], dts[0], dts[-1], rollup=60
+            TSDBModel.project,
+            [self.proj1.id],
+            dts[0],
+            dts[-1],
+            rollup=60,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {self.proj1.id: expected}
 
     def test_distinct_counts_series_users(self):
         dts = [self.now + timedelta(hours=i) for i in range(4)]
         assert self.db.get_distinct_counts_series(
-            TSDBModel.users_affected_by_group, [self.proj1group1.id], dts[0], dts[-1], rollup=3600
+            TSDBModel.users_affected_by_group,
+            [self.proj1group1.id],
+            dts[0],
+            dts[-1],
+            rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1group1.id: [
                 (timestamp(dts[0]), 1),
@@ -324,7 +365,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
 
         dts = [self.now + timedelta(hours=i) for i in range(4)]
         assert self.db.get_distinct_counts_series(
-            TSDBModel.users_affected_by_project, [self.proj1.id], dts[0], dts[-1], rollup=3600
+            TSDBModel.users_affected_by_project,
+            [self.proj1.id],
+            dts[0],
+            dts[-1],
+            rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1.id: [
                 (timestamp(dts[0]), 1),
@@ -336,7 +382,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
 
         assert (
             self.db.get_distinct_counts_series(
-                TSDBModel.users_affected_by_group, [], dts[0], dts[-1], rollup=3600
+                TSDBModel.users_affected_by_group,
+                [],
+                dts[0],
+                dts[-1],
+                rollup=3600,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             == {}
         )
@@ -388,6 +439,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             self.now,
             self.now + timedelta(hours=4),
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) in [
             {self.proj1.id: [(self.proj1group1.id, 2.0), (self.proj1group2.id, 1.0)]},
             {self.proj1.id: [(self.proj1group2.id, 2.0), (self.proj1group1.id, 1.0)]},
@@ -400,6 +452,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
                 self.now,
                 self.now + timedelta(hours=4),
                 rollup=3600,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             == {}
         )
@@ -415,6 +468,7 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             dts[0],
             dts[-1],
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1group1.id: [
                 (timestamp(dts[0]), {self.group1release1env1.id: 0, self.group1release2env1.id: 0}),
@@ -432,7 +486,12 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
 
         assert (
             self.db.get_frequency_series(
-                TSDBModel.frequent_releases_by_group, {}, dts[0], dts[-1], rollup=3600
+                TSDBModel.frequent_releases_by_group,
+                {},
+                dts[0],
+                dts[-1],
+                rollup=3600,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
             == {}
         )
@@ -446,12 +505,20 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
         dts = [self.now + timedelta(hours=i) for i in range(4)]
 
         results = self.db.get_most_frequent(
-            TSDBModel.frequent_issues_by_project, [project_id], dts[0], dts[0]
+            TSDBModel.frequent_issues_by_project,
+            [project_id],
+            dts[0],
+            dts[0],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, {1: [(1, 1.0)]})
 
         results = self.db.get_most_frequent_series(
-            TSDBModel.frequent_issues_by_project, [project_id], dts[0], dts[0]
+            TSDBModel.frequent_issues_by_project,
+            [project_id],
+            dts[0],
+            dts[0],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, {1: [(1, {1: 1.0})]})
 
@@ -460,30 +527,56 @@ class SnubaTSDBTest(TestCase, SnubaTestCase):
             project_id: (self.proj1group1.id, self.proj1group2.id)
         }
         results = self.db.get_frequency_series(
-            TSDBModel.frequent_issues_by_project, items, dts[0], dts[-1]
+            TSDBModel.frequent_issues_by_project,
+            items,
+            dts[0],
+            dts[-1],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, {1: [(1, {1: 1})]})
 
         results = self.db.get_frequency_totals(
-            TSDBModel.frequent_issues_by_project, items, dts[0], dts[-1]
+            TSDBModel.frequent_issues_by_project,
+            items,
+            dts[0],
+            dts[-1],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, {1: {1: 1}})
 
-        results = self.db.get_range(TSDBModel.project, [project_id], dts[0], dts[-1])
+        results = self.db.get_range(
+            TSDBModel.project,
+            [project_id],
+            dts[0],
+            dts[-1],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
+        )
         assert has_shape(results, {1: [(1, 1)]})
 
         results = self.db.get_distinct_counts_series(
-            TSDBModel.users_affected_by_project, [project_id], dts[0], dts[-1]
+            TSDBModel.users_affected_by_project,
+            [project_id],
+            dts[0],
+            dts[-1],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, {1: [(1, 1)]})
 
         results = self.db.get_distinct_counts_totals(
-            TSDBModel.users_affected_by_project, [project_id], dts[0], dts[-1]
+            TSDBModel.users_affected_by_project,
+            [project_id],
+            dts[0],
+            dts[-1],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, {1: 1})
 
         results = self.db.get_distinct_counts_union(
-            TSDBModel.users_affected_by_project, [project_id], dts[0], dts[-1]
+            TSDBModel.users_affected_by_project,
+            [project_id],
+            dts[0],
+            dts[-1],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert has_shape(results, 1)
 
@@ -592,6 +685,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
                 filter_keys={"project_id": [project.id], "event_id": [res.event_id]},
                 selected_columns=["event_id", "project_id", "group_ids"],
                 aggregations=None,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
             )
 
             assert grouped_by_project["data"][0]["event_id"] == res.event_id
@@ -613,6 +707,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
             filter_keys={"project_id": [project.id]},
             selected_columns=["project_id", "event_id"],
             aggregations=None,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
         assert len(transactions_for_project["data"]) == times
 
@@ -629,6 +724,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
                 ["arrayJoin", ["group_ids"], "group_id"],
                 ["count()", "", "times_seen"],
             ],
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         )
 
         assert transactions_by_group["data"][0]["times_seen"] == times  # 1 + (times % 5)
@@ -639,6 +735,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
             dts[0],
             dts[-1],
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             group.id: [
                 # (timestamp(dts[0]), 1 + (times % 5)),
@@ -675,6 +772,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
             dts[0],
             dts[-1],
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             group.id: [
                 (timestamp(dts[0]), 6),
@@ -715,6 +813,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
             dts[0],
             dts[-1],
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             group.id: [
                 (timestamp(dts[0]), len(ids)),
@@ -733,6 +832,7 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
             dts[0],
             dts[-1],
             rollup=3600,
+            tenant_ids={"referrer": "r", "organization_id": 1234},
         ) == {
             self.proj1group1.id: [
                 (timestamp(dts[0]), 3),
@@ -749,7 +849,15 @@ class SnubaTSDBGroupPerformanceTest(TestCase, SnubaTestCase, PerfIssueTransactio
         }
 
         assert (
-            self.db.get_range(TSDBModel.group_performance, [], dts[0], dts[-1], rollup=3600) == {}
+            self.db.get_range(
+                TSDBModel.group_performance,
+                [],
+                dts[0],
+                dts[-1],
+                rollup=3600,
+                tenant_ids={"referrer": "r", "organization_id": 1234},
+            )
+            == {}
         )