Skip to content

Commit ae4fc8a

Browse files
committed
update naming
1 parent 7c86949 commit ae4fc8a

File tree

4 files changed

+25
-19
lines changed

4 files changed

+25
-19
lines changed

src/sentry/seer/sentry_data_models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ class TraceData(BaseModel):
3030
spans: list[Span]
3131

3232

33-
class EvidenceTraceData(BaseModel):
33+
class TraceMetadata(BaseModel):
3434
trace_id: str
3535
transaction_name: str
3636

src/sentry/tasks/llm_issue_detection/detection.py

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from sentry.models.project import Project
1818
from sentry.net.http import connection_from_url
1919
from sentry.seer.models import SeerApiError
20+
from sentry.seer.sentry_data_models import TraceMetadata
2021
from sentry.seer.signed_seer_api import make_signed_seer_api_request
2122
from sentry.tasks.base import instrumented_task
2223
from sentry.tasks.llm_issue_detection.trace_data import (
@@ -58,6 +59,12 @@ class IssueDetectionResponse(BaseModel):
5859
issues: list[DetectedIssue]
5960

6061

62+
class IssueDetectionRequest(BaseModel):
63+
traces: list[TraceMetadata]
64+
organization_id: int
65+
project_id: int
66+
67+
6168
class LLMIssueDetectionError(SeerApiError):
6269
def __init__(
6370
self,
@@ -233,11 +240,12 @@ def detect_llm_issues_for_project(project_id: int) -> None:
233240
# Shuffle to randomize order
234241
random.shuffle(evidence_traces)
235242

236-
seer_request = {
237-
"telemetry": [{**trace.dict(), "kind": "trace"} for trace in evidence_traces],
238-
"organization_id": organization_id,
239-
"project_id": project_id,
240-
}
243+
seer_request = IssueDetectionRequest(
244+
traces=evidence_traces,
245+
organization_id=organization_id,
246+
project_id=project_id,
247+
)
248+
241249
response = make_signed_seer_api_request(
242250
connection_pool=seer_issue_detection_connection_pool,
243251
path=SEER_ANALYZE_ISSUE_ENDPOINT_PATH,

src/sentry/tasks/llm_issue_detection/trace_data.py

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
from sentry.search.eap.types import SearchResolverConfig
1010
from sentry.search.events.types import SnubaParams
1111
from sentry.seer.explorer.utils import normalize_description
12-
from sentry.seer.sentry_data_models import EvidenceTraceData
12+
from sentry.seer.sentry_data_models import TraceMetadata
1313
from sentry.snuba.referrer import Referrer
1414
from sentry.snuba.spans_rpc import Spans
1515

@@ -23,7 +23,7 @@ def get_project_top_transaction_traces_for_llm_detection(
2323
project_id: int,
2424
limit: int,
2525
start_time_delta_minutes: int,
26-
) -> list[EvidenceTraceData]:
26+
) -> list[TraceMetadata]:
2727
"""
2828
Get top transactions by total time spent, return one semi-randomly chosen trace per transaction.
2929
"""
@@ -67,7 +67,7 @@ def _build_snuba_params(start: datetime) -> SnubaParams:
6767
sampling_mode="NORMAL",
6868
)
6969

70-
evidence_traces = []
70+
trace_metadata = []
7171
seen_names = set()
7272

7373
for row in transactions_result.get("data", []):
@@ -101,12 +101,12 @@ def _build_snuba_params(start: datetime) -> SnubaParams:
101101
if not trace_id:
102102
continue
103103

104-
evidence_traces.append(
105-
EvidenceTraceData(
104+
trace_metadata.append(
105+
TraceMetadata(
106106
trace_id=trace_id,
107107
transaction_name=normalized_name,
108108
)
109109
)
110110
seen_names.add(normalized_name)
111111

112-
return evidence_traces
112+
return trace_metadata

tests/sentry/tasks/test_llm_issue_detection.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -241,13 +241,11 @@ def test_detect_llm_issues_full_flow(
241241
request_body = json.loads(seer_call_kwargs["body"].decode("utf-8"))
242242
assert request_body["project_id"] == self.project.id
243243
assert request_body["organization_id"] == self.project.organization_id
244-
assert len(request_body["telemetry"]) == 2
245-
assert request_body["telemetry"][0]["kind"] == "trace"
246-
assert request_body["telemetry"][0]["trace_id"] == "trace_id_1"
247-
assert request_body["telemetry"][0]["transaction_name"] == "POST /some/thing"
248-
assert request_body["telemetry"][1]["kind"] == "trace"
249-
assert request_body["telemetry"][1]["trace_id"] == "trace_id_2"
250-
assert request_body["telemetry"][1]["transaction_name"] == "GET /another/"
244+
assert len(request_body["traces"]) == 2
245+
assert request_body["traces"][0]["trace_id"] == "trace_id_1"
246+
assert request_body["traces"][0]["transaction_name"] == "POST /some/thing"
247+
assert request_body["traces"][1]["trace_id"] == "trace_id_2"
248+
assert request_body["traces"][1]["transaction_name"] == "GET /another/"
251249

252250
assert mock_produce_occurrence.call_count == 2
253251

0 commit comments

Comments
 (0)