Skip to content

Commit 3c8b0bb

Browse files
roggenkemperandrewshie-sentry
authored andcommitted
fix(detectors): Filter "filtered" spans from http overhead detection (#97104)
1 parent aabddcd commit 3c8b0bb

File tree

3 files changed

+51
-0
lines changed

3 files changed

+51
-0
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
{
2+
"event_id": "5d6401994d7949d2ac3474f472564370",
3+
"platform": "php",
4+
"message": "",
5+
"datetime": "2025-05-12T22:42:38.642986+00:00",
6+
"request": {
7+
"url": "http://localhost:3001/test",
8+
"method": "GET"
9+
},
10+
"_meta": {
11+
"spans": {
12+
"0": {
13+
"data": {
14+
"url": "http://[Filtered]/test"
15+
}
16+
}
17+
}
18+
},
19+
"spans": [
20+
{
21+
"timestamp": 1747089758.637715,
22+
"start_timestamp": 1747089758.572,
23+
"exclusive_time": 65.715075,
24+
"op": "http.client",
25+
"span_id": "4703181ac343f71a",
26+
"parent_span_id": "91fa92ff0205967d",
27+
"trace_id": "375a86eca09a4a4e91903838dd771f50",
28+
"status": "ok",
29+
"data": {
30+
"url": "http://[Filtered]/test",
31+
"network.protocol.version": "1.1",
32+
"http.request.request_start": 1747089758.572
33+
}
34+
}
35+
]
36+
}

src/sentry/performance_issues/detectors/http_overhead_detector.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,16 @@ def _is_span_eligible(self, span: Span) -> bool:
113113

114114
if not span_op or not span_op == "http.client" or not protocol_version == "1.1":
115115
return False
116+
117+
# Check if any spans have filtered URLs
118+
event_spans = self._event.get("spans", [])
119+
span_index = str(event_spans.index(span) if span in event_spans else -1)
120+
meta = self._event.get("_meta", {}).get("spans", {})
121+
if span_index in meta:
122+
has_filtered_url = meta[span_index].get("data", {}).get("url", {})
123+
if has_filtered_url:
124+
return False
125+
116126
return True
117127

118128
def _store_performance_problem(self, location: str) -> None:

tests/sentry/performance_issues/test_http_overhead_detector.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
from sentry.testutils.performance_issues.event_generators import (
1616
PROJECT_ID,
1717
create_span,
18+
get_event,
1819
modify_span_start,
1920
)
2021

@@ -280,3 +281,7 @@ def test_none_request_start(self) -> None:
280281
event["spans"] = [span]
281282

282283
assert self.find_problems(event) == []
284+
285+
def test_filtered_url(self) -> None:
286+
injection_event = get_event("http-overhead-filtered-url")
287+
assert len(self.find_problems(injection_event)) == 0

0 commit comments

Comments
 (0)