fix(clickhouse): don't write /v1/traces ingest requests as spend rows

This commit is contained in:
Ishaan Jaff 2026-09-30 06:50:26 -07:00
parent 379ec2d3e8
commit af40ccd7c3
No known key found for this signature in database

View file

@ -24,6 +24,7 @@ _CACHE_HIT_SUFFIX: Final = re.compile(r"_cache_hit[0-9.]*$")
_TRACEPARENT: Final = re.compile(r"^[0-9a-f]{2}-([0-9a-f]{32})-([0-9a-f]{16})-[0-9a-f]{2}$")
_INVALID_TRACE_ID: Final = "0" * 32
_INVALID_SPAN_ID: Final = "0" * 16
TRACE_INGEST_ROUTE: Final = "/v1/traces"
def strip_cache_hit_suffix(request_id: str) -> str:
@ -83,6 +84,11 @@ def _session_id(payload: StandardLoggingPayload, kwargs: Mapping[str, Any]) -> s
return str(payload.get("session_id") or request_metadata.get("session_id") or payload.get("trace_id") or "")
def _is_trace_ingest(payload: StandardLoggingPayload) -> bool:
"""OTLP exports to POST /v1/traces are not LLM requests; don't write them as spend rows."""
return str(payload.get("call_type") or "").startswith(TRACE_INGEST_ROUTE)
def spend_log_row_from_payload(payload: StandardLoggingPayload, kwargs: Mapping[str, Any]) -> SpendLogRecord:
metadata: Mapping[str, Any] = payload.get("metadata") or {}
hidden_params: Mapping[str, Any] = payload.get("hidden_params") or {}
@ -142,7 +148,7 @@ class ClickHouseSpendLogger(ClickHouseBatchLogger):
def _log(self, kwargs: Mapping[str, Any]) -> None:
try:
payload = kwargs.get("standard_logging_object")
if payload is None:
if payload is None or _is_trace_ingest(payload):
return
self.enqueue([dict(spend_log_row_from_payload(payload, kwargs))])
except Exception as e: