nexart.iodocs

    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.

    Single-span JSON
    {
      "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

    • traceId MUST be a non-zero 32-character hexadecimal identifier.
    • spanId MUST be a non-zero 16-character hexadecimal identifier.
    • parentSpanId, when present, MUST be a valid non-zero span identifier.
    • startTime and optional endTime MUST be ISO 8601.
    • attributes, resource, scope and status, when present, MUST be objects.

    Rejected inputs

    • arrays of spans and multiple-span requests
    • resourceSpans, scopeSpans or spans batch 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:

    • spanId and startTime
    • attributes["gen_ai.system"]
    • attributes["gen_ai.request.model"]
    • attributes["gen_ai.input"] and attributes["gen_ai.output"]
    • approved generation parameters and attributes["gen_ai.execution.role"]
    • traceId and resource["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.