Browse Source

fix(starfish): Time spent local was always querying light time spent (#52374)

This was because the where condition & groupby was being resolved
after the base query is resolved and the if transaction was in any
of those two things, the fallback to `span.exclusive_time` doesn't
get picked up
Shruthi 1 year ago
parent
commit
4434192d6f

+ 2 - 0
src/sentry/search/events/builder/discover.py

@@ -235,6 +235,8 @@ class QueryBuilder(BaseQueryBuilder):
         self.raw_equations = equations
         self.use_metrics_layer = use_metrics_layer
         self.auto_fields = auto_fields
+        self.query = query
+        self.groupby_columns = groupby_columns
         self.functions_acl = set() if functions_acl is None else functions_acl
         self.equation_config = {} if equation_config is None else equation_config
         self.tips: Dict[str, Set[str]] = {

+ 1 - 5
src/sentry/search/events/datasets/spans_metrics.py

@@ -378,14 +378,10 @@ class SpansMetricsDatasetConfig(DatasetConfig):
             dataset=self.builder.dataset,
             params={},
             snuba_params=self.builder.params,
+            query=self.builder.query if scope == "local" else None,
             selected_columns=["sum(span.self_time)"],
         )
 
-        total_query.columns += self.builder.resolve_groupby()
-
-        if scope == "local":
-            total_query.where = self.builder.where
-
         total_results = total_query.run_query(
             Referrer.API_DISCOVER_TOTAL_SUM_TRANSACTION_DURATION_FIELD.value
         )