Tool deep diveObservability

Arize Phoenix: open-source tracing and evals on OpenInference

Arize's self-hosted platform for tracing, LLM evaluations, datasets, experiments and a prompt playground, built on OpenTelemetry and OpenInference. One container, free to self-host under the Elastic License 2.0.

Checked 13 Oct 20269 min read

Vendor
Arize AI
Licence
Elastic License 2.0 (OpenInference, phoenix-otel and phoenix-client are Apache-2.0)
Latest release
20.21.1 · 12 Oct 2026 · Release notes (opens in a new tab)

Best for

Free self-hosted tracing, evals, experiments and prompt iteration, from a laptop to a Postgres-backed team server

Avoid when

You want to offer it to customers as a hosted service, or you need managed online evals, monitors and alerts

Learn it hands-onArize Phoenix: open-source tracing and evals on OpenInference is taught in AI Observability: Traces, Sessions and Cost, with machine-verified labs.
On this page
  1. What it is and where it sits
  2. When to pick it
  3. How it works
  4. Members only: Set it up
  5. Members only: Production configuration
  6. Members only: Wiring it into the stack
  7. Members only: Operating it
  8. Members only: Alternatives compared
  9. Members only: Learn it hands-on

Phoenix is Arize AI's open-source workbench for tracing and evaluating LLM applications and agents. Version 20.21.1 shipped on 12 October 2026. The server, the evals library, the OpenTelemetry helper and the client SDKs all release from one repository on their own version numbers.

What it is and where it sits#

Phoenix is one container that does four jobs:

  • Collects traces. It accepts OpenTelemetry (OTLP) over HTTP at /v1/traces on port 6006 and over gRPC on port 4317, and serves the UI on 6006.
  • Evaluates. A Python and TypeScript evals library runs LLM-as-a-judge and code evaluators over traces, datasets or any dataframe, and logs the results back onto spans as annotations. Evaluators can also live on the server and score every experiment automatically.
  • Runs experiments. Datasets of examples, tasks run against them, scores compared run against run.
  • Iterates prompts. Versioned, taggable prompts, a playground that compares prompts and models side by side, and span replay that reopens a real production call with different inputs.

In the stack it is the observability and evaluation layer, and the most self-contained one: SQLite by default, Postgres for teams, nothing else to run.

1. Your code emits spans two ways: the SDK calls you add, and OpenTelemetry auto-instrumentation that wraps model and database calls. 2. The OpenTelemetry Collector redacts personal data: the email in a prompt becomes [redacted]. 3. It samples: every error span is kept, plus a share of the healthy ones. 4. It exports the same spans to several backends, such as Langfuse, Arize Phoenix and Helicone. 5. An eval job scores a trace, faithfulness 0.92, and the score attaches to that trace. 6. Dashboards chart latency and cost, and an alert fires when p95 latency passes 2 seconds.SDK in your codespans you addAuto-instrumentedOpenTelemetryOTel Collector1 Redactemail: [email protected]email: [redacted]2 Sampleevery span arrivesLangfusetraces, evalsArize Phoenixtraces, evalsHeliconerequests, costEvalsscore tracesDashboards and alertsAlert: p95 over 2 sfaithful 0.92

Phoenix speaks OpenInference, Arize's open semantic conventions for AI traces (llm.*, input.value, openinference.span.kind), with auto-instrumentors for most frameworks and providers. Spans that follow the OpenTelemetry GenAI conventions (gen_ai.*) also arrive, but the docs say they do not get the same UI treatment as OpenInference spans.

The server and the evals library use the Elastic License 2.0. You may self-host it free on your own infrastructure with no feature gates. You may not offer it to third parties as a hosted or managed service, or circumvent licence-key functionality. The instrumentation (OpenInference), arize-phoenix-otel and the client SDKs are Apache-2.0. Arize sells a separate managed platform, Arize AX, built on the same standards.

When to pick it#

Pick Phoenix when:

  • You want everything free and self-hosted: tracing, evals, datasets, experiments, prompt management and the playground, with no paid tier inside Phoenix.
  • Data cannot leave your network. Phoenix runs air-gapped: with PHOENIX_ALLOW_EXTERNAL_RESOURCES=false it makes no public-internet requests of its own (fonts, telemetry, sandbox downloads), and evals call only the model endpoints you configure.
  • You work in notebooks and scripts. uvx arize-phoenix serve gives you a full instance in seconds, and evals run over pandas dataframes.
  • Your stack is covered by OpenInference instrumentors: OpenAI, Anthropic, Bedrock, LangChain, LlamaIndex, DSPy, the Claude Agent SDK, the OpenAI Agents SDK, Strands and many more.

Look elsewhere when:

  • You plan to offer it to customers as a hosted service: ELv2 forbids that.
  • You need continuous evals on production traffic with alerting, monitors and dashboards for non-engineers. Arize documents those as Arize AX features.
  • Many teams need isolation inside one deployment. One Phoenix instance is one tenant; the docs say to run several instances, while Langfuse separates organizations and projects in one deployment.

How it works#

Spans and conventions. Every operation is an OpenTelemetry span with an OpenInference span kind: LLM, CHAIN, TOOL, AGENT, RETRIEVER, EMBEDDING, RERANKER, GUARDRAIL, EVALUATOR, PROMPT, DECISION or UNKNOWN. LLM spans carry input and output messages, token counts and model parameters. Traces live in projects; spans that share a session.id form a session, and user.id attributes the work to a user.

Setup is one call. phoenix.otel.register() builds the OpenTelemetry tracer provider and exporter from PHOENIX_COLLECTOR_ENDPOINT and PHOENIX_API_KEY, and auto_instrument=True turns on every installed OpenInference instrumentor. Context managers (using_session, using_user, using_metadata, using_tags, using_attributes) stamp attributes onto every span created inside them. In Python, register() defaults to batch=False, which exports each span as it ends; production code should pass batch=True.

Evals are structured. LLM evaluators call the judge through tool calling, so the judge must pick one of your labels instead of writing free text. Executors retry on rate limits and adjust concurrency, and every evaluator run is itself traced to a Phoenix project, so you can inspect what the judge saw.

Experiments run a task function over a dataset, apply evaluators, and store every output and score so the UI can diff runs. Storage is SQLite under ~/.phoenix (or PHOENIX_WORKING_DIR) by default, or Postgres 14 and later via PHOENIX_SQL_DATABASE_URL. Retention defaults to forever (PHOENIX_DEFAULT_RETENTION_POLICY_DAYS=0) unless you set a policy.

Set it up

Start a local instance, instrument an app, then evaluate what it did. Locally, no API key is needed.

Members only below this line

Get the full Arize Phoenix: open-source tracing and evals on OpenInference deep dive free

What you get on this page:

  • 6 members sections

Free. You also get Stratiflux Weekly: one email a week, unsubscribe anytime.

Also in the members part

  1. Production configuration
  2. Wiring it into the stack
  3. Operating it
  4. Alternatives compared
  5. Learn it hands-on

Sources

Checked against these on 13 Oct 2026.

  1. What is Arize Phoenix (opens in a new tab)arize.com
  2. Phoenix self-hosting configuration and environment variables (opens in a new tab)arize.com
  3. Phoenix architecture (storage, tenancy, scaling) (opens in a new tab)arize.com
  4. Phoenix authentication (opens in a new tab)arize.com
  5. Phoenix licence (opens in a new tab)arize.com
  6. Phoenix OTEL setup (register) (opens in a new tab)arize.com
  7. OpenInference semantic conventions in Phoenix (opens in a new tab)arize.com
  8. Phoenix: evaluating traces (opens in a new tab)arize.com
  9. Phoenix: get started with evaluations and experiments (opens in a new tab)arize.com
  10. Phoenix production guide (opens in a new tab)arize.com
  11. Arize Phoenix or Arize AX (opens in a new tab)arize.com
  12. Arize pricing (opens in a new tab)arize.com
  13. Phoenix LICENSE (Elastic License 2.0) (opens in a new tab)github.com