Browse Source

ref(metrics) Update to latest SDK (#58440)

This allows using the `totals` parameter in the `Rollup` class to get
back an
extra value in the result that is the total across all the grouped by
values.
Evan Hicks 1 year ago
parent
commit
7068ddff51
4 changed files with 34 additions and 3 deletions
  1. 1 1
      requirements-base.txt
  2. 1 1
      requirements-dev-frozen.txt
  3. 1 1
      requirements-frozen.txt
  4. 31 0
      tests/snuba/test_metrics_layer.py

+ 1 - 1
requirements-base.txt

@@ -63,7 +63,7 @@ sentry-kafka-schemas>=0.1.32
 sentry-redis-tools>=0.1.7
 sentry-relay>=0.8.32
 sentry-sdk>=1.31.0
-snuba-sdk>=2.0.4
+snuba-sdk>=2.0.5
 simplejson>=3.17.6
 sqlparse>=0.4.4
 statsd>=3.3

+ 1 - 1
requirements-dev-frozen.txt

@@ -178,7 +178,7 @@ sentry-usage-accountant==0.0.10
 simplejson==3.17.6
 six==1.16.0
 sniffio==1.2.0
-snuba-sdk==2.0.4
+snuba-sdk==2.0.5
 sortedcontainers==2.4.0
 soupsieve==2.3.2.post1
 sqlparse==0.4.4

+ 1 - 1
requirements-frozen.txt

@@ -118,7 +118,7 @@ sentry-sdk==1.31.0
 sentry-usage-accountant==0.0.10
 simplejson==3.17.6
 six==1.16.0
-snuba-sdk==2.0.4
+snuba-sdk==2.0.5
 soupsieve==2.3.2.post1
 sqlparse==0.4.4
 statsd==3.3

+ 31 - 0
tests/snuba/test_metrics_layer.py

@@ -315,3 +315,34 @@ class SnQLTest(TestCase, BaseMetricsTestCase):
 
         with pytest.raises(InvalidParams):
             run_query(request)
+
+    def test_interval_with_totals(self) -> None:
+        query = MetricsQuery(
+            query=Timeseries(
+                metric=Metric(
+                    "transaction.duration",
+                    TransactionMRI.DURATION.value,
+                ),
+                aggregate="max",
+                filters=[Condition(Column("status_code"), Op.EQ, "200")],
+                groupby=[Column("transaction")],
+            ),
+            start=self.hour_ago,
+            end=self.now,
+            rollup=Rollup(interval=60, totals=True, granularity=60),
+            scope=MetricsScope(
+                org_ids=[self.org_id],
+                project_ids=[self.project.id],
+                use_case_id=UseCaseID.TRANSACTIONS.value,
+            ),
+        )
+
+        request = Request(
+            dataset="generic_metrics",
+            app_id="tests",
+            query=query,
+            tenant_ids={"referrer": "metrics.testing.test", "organization_id": self.org_id},
+        )
+        result = run_query(request)
+        assert len(result["data"]) == 54
+        assert result["totals"]["aggregate_value"] == 59