Problem or motivation
The OTel GenAI semantic conventions churn across releases. Our extraction is written against the latest attribute names, so traces emitted against older or newer spec versions can silently under-extract. We currently ignore the schemaUrl that identifies which version a span was emitted or normalized to.
Proposed solution
Make extraction version-aware, probably via schema_url as a hint:
- Capture
scopeSpans.schemaUrl at ingest
- Resolve
gen_ai.* attributes through a small alias table (canonical/newest key + older aliases) so latest-name extraction still reads older traces
- Use it in
GenAIExtractor to make extraction more robust, and expose the resolved semconv version for run metadata
We should degrade gracefully when schemaUrl is missing.
Alternatives considered
No response
Additional context
No response
Human confirmation
Problem or motivation
The OTel GenAI semantic conventions churn across releases. Our extraction is written against the latest attribute names, so traces emitted against older or newer spec versions can silently under-extract. We currently ignore the
schemaUrlthat identifies which version a span was emitted or normalized to.Proposed solution
Make extraction version-aware, probably via
schema_urlas a hint:scopeSpans.schemaUrlat ingestgen_ai.*attributes through a small alias table (canonical/newest key + older aliases) so latest-name extraction still reads older tracesGenAIExtractorto make extraction more robust, and expose the resolved semconv version for run metadataWe should degrade gracefully when
schemaUrlis missing.Alternatives considered
No response
Additional context
No response
Human confirmation