Skip to content

Commit 8045f36

Browse files
DominikB2014andrewshie-sentry
authored andcommitted
fix(eap-spans): formulas should not have labels within them (#89477)
It appears that if we use the same label names between multiple expressions, even within child labels (labelA and labelC in the example below), snuba will treat those expressions as the same. We could dynamically create labels to avoid duplicates, but as I can't seem to see any benefit to "child" labels. This PR removes all child labels within formulas. ```python Expression( formula=Expression.BinaryFormula( left=Expression(..., label="labelA") # Label A must be completely unique across all expressions in the request op=divide right=Expression(..., label="labelB") # Label B must be completely unique across all expressions in the request ) label="labelC" # Label C must be completely unique across all expressions in the request ) ```
1 parent c5132c6 commit 8045f36

File tree

2 files changed

+2
-14
lines changed

2 files changed

+2
-14
lines changed

src/sentry/search/eap/spans/formulas.py

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ def get_total_span_count(settings: ResolverSettings) -> Column:
4949
aggregation=AttributeAggregation(
5050
aggregate=Function.FUNCTION_COUNT,
5151
key=AttributeKey(type=AttributeKey.TYPE_DOUBLE, name="sentry.exclusive_time_ms"),
52-
label="total",
5352
extrapolation_mode=extrapolation_mode,
5453
)
5554
)
@@ -60,9 +59,9 @@ def division(args: ResolvedArguments, _: ResolverSettings) -> Column.BinaryFormu
6059
divisor = cast(AttributeKey, args[1])
6160

6261
return Column.BinaryFormula(
63-
left=Column(key=dividend, label="dividend"),
62+
left=Column(key=dividend),
6463
op=Column.BinaryFormula.OP_DIVIDE,
65-
right=Column(key=divisor, label="divisor"),
64+
right=Column(key=divisor),
6665
)
6766

6867

@@ -143,7 +142,6 @@ def failure_rate(_: ResolvedArguments, settings: ResolverSettings) -> Column.Bin
143142
),
144143
)
145144
),
146-
label="trace_status_count",
147145
extrapolation_mode=extrapolation_mode,
148146
),
149147
),
@@ -274,7 +272,6 @@ def http_response_rate(args: ResolvedArguments, settings: ResolverSettings) -> C
274272
),
275273
)
276274
),
277-
label="error_request_count",
278275
extrapolation_mode=extrapolation_mode,
279276
),
280277
),
@@ -286,7 +283,6 @@ def http_response_rate(args: ResolvedArguments, settings: ResolverSettings) -> C
286283
name="sentry.status_code",
287284
type=AttributeKey.TYPE_STRING,
288285
),
289-
label="total_request_count",
290286
extrapolation_mode=extrapolation_mode,
291287
),
292288
),
@@ -318,7 +314,6 @@ def trace_status_rate(args: ResolvedArguments, settings: ResolverSettings) -> Co
318314
),
319315
)
320316
),
321-
label="trace_status_count",
322317
extrapolation_mode=extrapolation_mode,
323318
),
324319
),
@@ -350,7 +345,6 @@ def cache_miss_rate(_: ResolvedArguments, settings: ResolverSettings) -> Column.
350345
),
351346
)
352347
),
353-
label="cache_miss_count",
354348
extrapolation_mode=extrapolation_mode,
355349
),
356350
),
@@ -362,7 +356,6 @@ def cache_miss_rate(_: ResolvedArguments, settings: ResolverSettings) -> Column.
362356
name="cache.hit",
363357
type=AttributeKey.TYPE_BOOLEAN,
364358
),
365-
label="total_cache_count",
366359
extrapolation_mode=extrapolation_mode,
367360
),
368361
),
@@ -386,7 +379,6 @@ def ttfd_contribution_rate(
386379
value=AttributeValue(val_str="ttfd"),
387380
)
388381
),
389-
label="ttfd_count",
390382
extrapolation_mode=extrapolation_mode,
391383
),
392384
),
@@ -412,7 +404,6 @@ def ttid_contribution_rate(
412404
value=AttributeValue(val_str="ttid"),
413405
)
414406
),
415-
label="ttid_count",
416407
extrapolation_mode=extrapolation_mode,
417408
),
418409
),

tests/snuba/api/endpoints/test_organization_events_stats_span_indexed.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1727,9 +1727,6 @@ def test_http_response_rate(self):
17271727
assert data["data"][1][1][0]["count"] == 0.5
17281728
assert data["data"][2][1][0]["count"] == 0.75
17291729

1730-
@pytest.mark.xfail(
1731-
reason="raw sql is is not querying for 5xx's, https://github.com/getsentry/eap-planning/issues/242"
1732-
)
17331730
def test_http_response_rate_multiple_series(self):
17341731
self.store_spans(
17351732
[

0 commit comments

Comments
 (0)