OpenTelemetry Inputs
Use one validated OpenTelemetry span JSON object as an Evidence Bridge source, then explicitly map it to AI Execution or Operational Execution evidence.
OpenTelemetry is a source format, not an evidence type. Choose AI Execution or Operational Execution separately.
OpenTelemetry V1 input contract
V1 accepts exactly one recognizable OpenTelemetry span JSON object per request.
{
"traceId": "4bf92f3577b34da6a3ce929d0e0e4736",
"spanId": "00f067aa0ba902b7",
"parentSpanId": "7a1f4c2d9e8b1234",
"name": "chat completion",
"startTime": "2026-09-11T10:15:00.000Z",
"endTime": "2026-09-11T10:15:01.200Z",
"attributes": {
"gen_ai.system": "openai",
"gen_ai.request.model": "gpt-4.1",
"gen_ai.input": { "prompt": "Summarize this complaint." },
"gen_ai.output": { "summary": "The customer requests a refund." },
"gen_ai.request.temperature": 0.2,
"gen_ai.request.max_tokens": 250,
"gen_ai.request.top_p": 0.9,
"gen_ai.request.seed": 7,
"gen_ai.execution.role": "advisory"
},
"resource": { "service.name": "support-agent" },
"scope": { "name": "example.ai.instrumentation", "version": "1.0.0" },
"status": { "code": "OK" }
}Requirements
traceIdMUST be a non-zero 32-character hexadecimal identifier.spanIdMUST be a non-zero 16-character hexadecimal identifier.parentSpanId, when present, MUST be a valid non-zero span identifier.startTimeand optionalendTimeMUST be ISO 8601.attributes,resource,scopeandstatus, when present, MUST be objects.
Rejected inputs
- arrays of spans and multiple-span requests
resourceSpans,scopeSpansorspansbatch envelopes- protobuf and OTLP/gRPC
- collector or exporter infrastructure
- arbitrary JSON that is not a recognizable span
- all-zero trace or span identifiers
Auto-map behavior
Auto-map recognizes approved exact paths for:
spanIdandstartTimeattributes["gen_ai.system"]attributes["gen_ai.request.model"]attributes["gen_ai.input"]andattributes["gen_ai.output"]- approved generation parameters and
attributes["gen_ai.execution.role"] traceIdandresource["service.name"]
Unknown attributes, nested lookalikes, HTTP fields, database statements, authorization headers, webhook payloads, exception data and vendor-specific lookalikes remain unmapped unless a user adds explicit reviewed rules.
Use a logical event identifier for idempotency. For span-based events, traceId:spanIdis safer than traceId alone.
Create an OpenTelemetry profile, or review profile authoring first.