Skip to main content

Documentation Index

Fetch the complete documentation index at: https://arizeai-433a7140.mintlify.app/llms.txt

Use this file to discover all available pages before exploring further.

Available in arize-phoenix 15.10.0+ Phoenix now automatically converts OpenTelemetry GenAI semantic convention attributes (gen_ai.*) to OpenInference format when spans arrive. Traces produced by OTel-native instrumentations — such as the OpenAI, Anthropic, and Google GenAI contrib packages — now render in Phoenix with full message I/O, tool definitions, retrieval documents, and token counts without any code changes.

What gets converted

OTel GenAI attributeOpenInference output
gen_ai.input.messagesllm.input_messages.* (role, content, tool calls)
gen_ai.output.messagellm.output_messages.*
gen_ai.system_instructionsSynthetic system message prepended to inputs
Tool definitions and call resultsllm.tools.*, tool.*
Retrieval documentsretrieval.documents.*
gen_ai.usage.*llm.token_count.prompt, llm.token_count.completion
gen_ai.system / gen_ai.request.modelllm.provider, llm.model_name
gen_ai.operation.namellm.invocation_parameters
If a span already has OpenInference attributes (e.g., from openinference-instrumentation-*), those values take precedence — conversion only fills in what’s missing.

No code changes required

Send OTel-native traces directly to Phoenix and the conversion happens at ingest time. Install any OTel GenAI contrib package, point it at Phoenix’s OTLP endpoint, and spans appear with the full Phoenix trace detail view.
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace.export import SimpleSpanProcessor
from openai.contrib.instrumentation import OpenAIInstrumentor  # example

provider = TracerProvider()
provider.add_span_processor(
    SimpleSpanProcessor(
        OTLPSpanExporter(endpoint="http://localhost:6006/v1/traces")
    )
)
OpenAIInstrumentor().instrument(tracer_provider=provider)
Spans emitted this way now show message I/O, tool calls, and token counts in the Phoenix UI exactly as they would from OpenInference-native instrumentation.