OpenTelemetry GenAI conventions: what is standard, what is not

Lesson 3 of 5 in Trace Anatomy: Reading an Agent Run Like a Professional.

You could invent your own attribute names. Teams do, and it works beautifully until the day they want a different backend, a managed eval service, or a cost report built by someone else — at which point every dashboard, every judge prompt and every alert has to be rewritten around a new vocabulary.

The alternative is OpenTelemetry: the same tracing standard your HTTP services and databases already emit, extended with a GenAI vocabulary for model calls, tool calls and agent operations. The value is not aesthetic. It is that instrumentation and analysis become separable purchases — you instrument once and point the pipeline at whichever backend you can justify this quarter.

Read that list of operations again, because it is the useful part. The convention is not trying to standardise your architecture — it is naming the handful of operations every agent framework performs, so that a span emitted by one framework means the same thing as a span emitted by another. Invoke agent is the run. Execute tool is the tool call. Plan is the reasoning step. Invoke workflow is the orchestration wrapper around several agents.

Standardising those names buys something concrete: a downstream system can compute cost, count tool failures, or score a trajectory without knowing which framework produced the trace. That is exactly the bet the observability and eval vendors have made.

Portability in practice — what standard traces buy you, as of September 2026
Backend or emitterHow traces moveWhat it does with GenAI attributesWhy you care

Langfuse (open-source core, self-hostable)

Accepts OpenTelemetry traces on an OTLP endpoint (/api/public/otel, HTTP JSON or protobuf; no gRPC as of this check).

States it aims to be compliant with the OTel GenAI semantic conventions and maps gen_ai.* attributes onto its own data model — and also understands OpenLLMetry, OpenLIT, OpenInference and MLflow attribute flavours.

You can point an existing OTel pipeline at it without rewriting instrumentation. That it reads four rival flavours is also the clearest evidence the ecosystem has not converged.

Arize Phoenix (self-hostable, Elastic License 2.0)

Built on OpenTelemetry; auto-instrumentation ships through the companion OpenInference project.

Treats OTel spans as the native unit for tracing, evals, datasets and experiments; vendor-, language- and framework-agnostic by construction.

The same spans that render a waterfall also feed the eval and experiment tooling — no second instrumentation layer.

Amazon Bedrock AgentCore Evaluations

Reads OpenTelemetry traces through AgentCore Observability and CloudWatch.

Scores agent interactions from those traces — LLM-as-a-judge by default — in on-demand, online (sampled production traffic) and batch modes.

Works for agents hosted on or off AgentCore Runtime: a managed eval service whose input is simply your traces. Your span quality becomes your eval quality.

Framework-side emitters (Strands Agents, Pydantic AI)

Emit spans from inside the agent loop: Strands ships OpenTelemetry-based tracing by default; Pydantic AI’s instrumentation is OpenTelemetry-native.

You inherit model, tool and run spans without hand-rolling them — and inherit their attribute choices too.

Framework choice partly decides your trace quality. Check what a framework emits before you build alerts on it.

Myth: “It is a standard, so the attribute names are settled”

Standards have maturity levels. The OTel GenAI documents checked in September 2026 are marked Development — the level that explicitly reserves the right to rename things — and the new dedicated repo has no tagged release yet. Adopt the vocabulary, because the direction of travel is clear and the alternative is a private vocabulary nobody else reads. Just isolate it behind a mapping layer and expect churn.

Myth: “OTel means I can swap observability backends for free”

Transport and attribute names port. Everything built on top of them does not: saved queries, judge prompts keyed to specific fields, alert thresholds, dashboards, retention rules, and the parts of each product that are proprietary by design. Standard traces turn a rewrite into a migration — a real gain, and not the same as free.

Myth: “We should wait for stability before instrumenting”

Waiting means running blind through the period when you understand your agent least. Emit spans now with the conventional names you can find, keep the mapping in one place, and accept a rename later. The cost of a rename is an afternoon; the cost of an unexplainable production failure with no trace is the incident itself.

Fact: the conventions cover more than spans

The dedicated GenAI conventions repo covers spans, metrics, events, MCP, and provider-specific conventions (Anthropic, AWS Bedrock, Azure AI Inference, OpenAI). That matters when you build the operational layer: token and latency metrics aggregate cheaply for dashboards and alerts, while traces stay the per-run forensic record. Use both — metrics to notice, traces to explain.

Interactive checkpoint quiz (2 questions) — open this page in a browser to take it.