Skip to content
API Reference

OTLP attributes reference ​

The authoritative mapping of OpenTelemetry span attributes to Boidra Platform's stored fields. Boidra Platform follows the OpenTelemetry GenAI semantic conventions and reads the keys below (first match wins where fallbacks are listed).

Span classification ​

gen_ai.operation.name decides the span type. Span-name prefixes/suffixes are used as a fallback when the attribute is absent.

Value / patternStored span_type
invoke_agent (or name starts invoke_agent)invoke_agent
execute_tool (or name starts execute_tool)execute_tool
chat / text_completion (or name starts chat)chat
name ends with _toolexecute_tool
anything else(span skipped)

Non-GenAI spans (e.g. HTTP client spans), framework "workflow" wrappers (traceloop.span.kind = "workflow"), and zero-duration empty invoke_agent wrappers are dropped so only meaningful agent/LLM/tool spans are kept.

Field mapping ​

Stored fieldAttribute (first match wins)
agent_namegen_ai.agent.name → agent_name → gen_ai.request.model; for invoke_agent, falls back to resource service.name
tool_namegen_ai.tool.name → tool_name (or the span name if it ends _tool)
tool_typegen_ai.tool.type → tool_type (defaults to function when a tool name is present)
modelgen_ai.request.model → gen_ai.response.model → model
input_tokensgen_ai.usage.input_tokens → gen_ai.usage.prompt_tokens
output_tokensgen_ai.usage.output_tokens → gen_ai.usage.completion_tokens
context_idgen_ai.conversation.id → a2a.context_id → conversation_id → context_id (kept only on invoke_agent spans, when it's a valid conversation id)
tenant_idsap.tenancy.tenant_id → tenant_id
user_iduser.id → user_id
extension_nameextension_name → sap.extension.name
extension_typeextension_type
prompt_textgen_ai.prompt → prompt_text → gen_ai.input.messages

Timing & status ​

Stored fieldSource
duration_msendTimeUnixNano − startTimeUnixNano (nanoseconds → ms)
timestampstartTimeUnixNano (ISO 8601)
statusERROR if OTel span status is ERROR (code 2) or error = true or outcome = "error"; otherwise OK
error_messageerror.message → OTel span status message

Identity fields ​

Stored fieldSource
span_idspan spanId (hex)
trace_idspan traceId (hex)
parent_span_idspan parentSpanId (hex), or null

Notes ​

  • Every attribute is also preserved verbatim (JSON) and viewable in the span detail pane.
  • Tokens in OTLP/JSON are integers sent as string intValue — Boidra Platform parses them numerically.
  • Cost is not an attribute you send: Boidra Platform computes it from model + token counts using the editable price table on the Settings page.

Boidra — multi-agent AI systems in the SAP ecosystem.