Files
compose-anything/src/phoenix/README.md
Sun-ZhenXing aeddac52bf Update MinerU, Gitea, InfluxDB, Phoenix, and Selenium configurations
- Bump MinerU version from 2.7.1 to 2.7.2 in .env.example, Dockerfile, README files, and docker-compose.yaml.
- Update Gitea version from 1.25.2-rootless to 1.25.4-rootless in .env.example and docker-compose.yaml.
- Add InfluxDB configuration files including .env.example, README.md, README.zh.md, and docker-compose.yaml with version 2.8.0.
- Bump Phoenix version from 12.28.1-nonroot to 12.31.2-nonroot in .env.example and docker-compose.yaml, and update README files.
- Introduce Selenium standalone configuration with version 144.0-20260120, including .env.example, README.md, README.zh.md, and docker-compose.yaml.
2026-01-25 22:59:55 +08:00

4.2 KiB

Arize Phoenix

English | 中文

Arize Phoenix is an open-source AI observability platform for LLM applications. It provides tracing, evaluation, datasets, and experiments to help you build and improve AI applications.

Services

  • phoenix: The main Phoenix application server (SQLite version).
  • phoenix-pg: The Phoenix application server configured for PostgreSQL (requires postgres profile).
  • phoenix-db: PostgreSQL database for persistent storage (requires postgres profile).

Profiles

This project supports two modes of operation via Docker Compose profiles:

  1. sqlite (Default): Uses SQLite for storage. Simple and good for local development. Set COMPOSE_PROFILES=sqlite in .env.
  2. postgres (or pg): Uses PostgreSQL for storage. Recommended for production. Set COMPOSE_PROFILES=postgres in .env.

Ports

Port Protocol Description
6006 HTTP UI and OTLP HTTP collector (/v1/traces)
4317 gRPC OTLP gRPC collector
9090 HTTP Prometheus metrics (optional)

Environment Variables

Variable Name Description Default Value
COMPOSE_PROFILES Active profiles (sqlite or postgres) sqlite
PHOENIX_VERSION Phoenix image version 12.31.2-nonroot
PHOENIX_PORT_OVERRIDE Host port for Phoenix UI and HTTP API 6006
PHOENIX_GRPC_PORT_OVERRIDE Host port for OTLP gRPC collector 4317
PHOENIX_PROMETHEUS_PORT_OVERRIDE Host port for Prometheus metrics 9090
PHOENIX_ENABLE_PROMETHEUS Enable Prometheus metrics endpoint false
PHOENIX_SECRET Secret for authentication (optional) ""
POSTGRES_VERSION PostgreSQL image version 17.2-alpine3.21
POSTGRES_USER PostgreSQL username postgres
POSTGRES_PASSWORD PostgreSQL password postgres
POSTGRES_DB PostgreSQL database name phoenix

Volumes

  • phoenix_data: Data volume for SQLite mode (mounted to /data).
  • phoenix_db_data: Data volume for PostgreSQL mode.

Getting Started

  1. Copy the example environment file:

    cp .env.example .env
    
  2. Select your deployment mode by editing .env (default is sqlite).

    For SQLite (Default): Ensure .env contains:

    COMPOSE_PROFILES=sqlite
    

    For PostgreSQL: Change .env to:

    COMPOSE_PROFILES=postgres
    
  3. Start the services:

    docker compose up -d
    
  4. Access Phoenix UI at http://localhost:6006

Sending Traces

Phoenix supports OpenTelemetry-compatible traces. You can send traces using:

HTTP (OTLP)

Send traces to http://localhost:6006/v1/traces

gRPC (OTLP)

Send traces to localhost:4317

Python Example

from phoenix.otel import register

tracer_provider = register(
    project_name="my-llm-app",
    endpoint="http://localhost:6006/v1/traces",
)

Features

  • Tracing: Capture and visualize LLM application traces with OpenTelemetry support.
  • Evaluation: Run evaluations using built-in or custom evaluators.
  • Datasets: Create and manage datasets for testing and evaluation.
  • Experiments: Run experiments to compare model performance.
  • Playground: Test prompts with different models interactively.

Documentation

For more information, visit the official Phoenix documentation.

Security Notes

  • Change default PostgreSQL password in production.
  • Set PHOENIX_SECRET for authentication if exposing Phoenix publicly.
  • Consider using a reverse proxy with SSL/TLS in production.
  • Regularly backup the PostgreSQL database.