Langfuse vs Opik vs Arize Phoenix

Langfuse, Opik and Arize Phoenix all run in your own infrastructure, but their licenses, paid feature gates and databases differ. This page shows which one fits which team.

On this page

Langfuse vs Opik vs Arize Phoenix: which fits your team's situation

A team that must keep LLM traces inside its own network and needs a permissive license should start with Langfuse or Opik, because both core platforms are open source and can run without a commercial license. Choose Langfuse if you want an MIT-licensed core and expect to need the paid Enterprise key later for project-level RBAC, data retention, audit logs or SCIM, since those features are gated. Choose Opik if you want the full platform, including tracing, evaluations and prompt management, under Apache-2.0 with no feature gating described in its README, and you are comfortable operating ClickHouse, MySQL and Redis. Phoenix fits teams that want no feature limits on self-hosting but can accept a source-available license.

Langfuse's MIT core covers its open source features, while the code under its ee directories falls under a commercial license. Opik is Apache-2.0 across the full platform and is maintained by Comet. Phoenix is licensed under the Elastic License 2.0, which is source-available rather than OSI-approved, and it says self-hosting carries no feature limits, license fees or usage limits. Its authentication covers OAuth2, LDAP and local accounts with role-based permissions, and it starts on SQLite by default with PostgreSQL as an option. Note that the ELv2 forbids providing Phoenix to third parties as a hosted or managed service, so a DeployOpen-run engagement for a client is fine, but offering it as a service to others is not.

No one platform wins on every criterion. Langfuse has the most mature enterprise gating model to review, Opik has the most permissive full-platform license, and Phoenix has the simplest storage start but the most restrictive license wording. Before shortlisting, confirm which identity and access controls you need on day one, check the current license terms with each vendor, and test the storage footprint of your expected trace volume in a non-production environment.

Which platform fits which scenario

This table maps common team situations to the platform that fits each one best, with the reason and the point to confirm before committing. Read each row against your own deployment model, identity requirements and data layer. The main takeaway is that licensing and the database footprint often decide the choice before features do.

ScenarioBest fitWhyWhat to confirm
Single-team pilot on one VMLangfuse or OpikLangfuse documents Docker Compose on a single VM for testing, and Opik self-hosts with Docker Compose through its opik.sh script for local use.Whether the VM can host the ClickHouse, PostgreSQL and Redis footprint each tool needs, and whether the pilot is expected to become production.
Production on KubernetesLangfuse or OpikLangfuse documents Kubernetes with Helm or Terraform on AWS, Azure and GCP for production, and Opik provides Helm charts for production.Your cluster's storage classes, backup approach and who will operate ClickHouse. Phoenix also deploys on Kubernetes with Helm, so confirm the production fit for your team.
Offering LLM observability as a hosted service to customersLangfuse or OpikElastic License 2.0 forbids providing Phoenix to third parties as a hosted or managed service, while Langfuse core is MIT and Opik is Apache-2.0.Your counsel's reading of each license for your exact service model, and whether any Langfuse enterprise directories are in scope.
Need for SSO and RBAC without payingPhoenix or OpikSelf-hosted Phoenix supports OAuth2, LDAP and local accounts with role-based permissions, and Opik's full platform is available without a commercial license.Whether Opik's access controls meet your requirements, since Langfuse project-level RBAC and SCIM sit behind an Enterprise license key.
Lightweight local evaluation with SQLiteArize PhoenixPhoenix starts with a file-based SQLite database by default and runs with no feature limits in self-hosted mode.Whether SQLite stays adequate once trace volume grows, since Phoenix also supports PostgreSQL through PHOENIX_SQL_DATABASE_URL.
OpenTelemetry-first instrumentationArize Phoenix or LangfusePhoenix uses OpenInference on OpenTelemetry, and Langfuse documents OpenTelemetry ingestion. Opik also supports OpenTelemetry alongside its native framework integrations.Which span attributes your frameworks emit and whether your existing collector pipeline needs changes for each tool.
Existing ClickHouse estateLangfuse or OpikBoth Langfuse and Opik store analytics in ClickHouse, so an existing cluster can be reused, provided capacity and version requirements are met.Langfuse v4 requires ClickHouse 25.12 or later (26.4 recommended), and Opik's schema and sizing needs against your current cluster.

What each license allows and what is paid

Langfuse uses an open-core model. Code outside the ee directories is MIT licensed, and the Langfuse documentation states that all core features and APIs are available in the open source version without limits. Code inside the ee directories falls under a separate enterprise license, and several administrative features need an Enterprise license key on a self-hosted instance.

  • Internal platform use: Your teams can run the MIT edition inside your own infrastructure for internal workloads with no license fee for the core product.
  • Enterprise key features: Project-level RBAC roles, protected prompt labels, data retention policies, audit logs, server-side data masking, UI customization, organization creators, and the org management API with SCIM require a license key.
  • Self-Hosted Enterprise plan: The custom-priced plan adds a named support engineer, solutions architect access and a support SLA. Ask for the written terms, since the price is not published.
  • Customer-facing services: The MIT terms cover the core code, but confirm with Langfuse how the enterprise directories and key terms apply if you embed the product in a product you sell.

Before you commit, list which of the key-gated features your audit or access control requirements depend on, then confirm with Langfuse what happens to those features if the key is removed.

How each platform stores traces and what databases it needs

Langfuse, Opik and Phoenix all keep traces in your own infrastructure, but they differ sharply in how many stateful services you run to do it. A self-hosted Langfuse deployment runs two application containers, Langfuse Web and Langfuse Worker, backed by PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible blob storage. Opik runs on ClickHouse, MySQL and Redis, with its application services on top. Phoenix starts with a file-based SQLite database by default and can use PostgreSQL through PHOENIX_SQL_DATABASE_URL or separate connection variables. The practical question is not which store is fastest, but how many engines your team must patch, monitor, back up and restore.

For backup, each store needs its own plan. In Langfuse, PostgreSQL holds transactional data while ClickHouse holds the analytical event data, and blob storage holds uploaded objects, so a restore test must cover all three, and the Redis or Valkey layer is generally treated as queue and cache state. Opik's split between ClickHouse and MySQL works the same way. A single SQLite file in Phoenix is the simplest to copy, but it is a single writer on one host, so moving to PostgreSQL is the usual step once more than one person or service depends on it. Confirm the backup tooling, retention and point-in-time recovery options for each engine with your DBA and with each vendor's documentation before you commit.

Scaling follows the storage choice. Langfuse's scaling guide lists minimum resources for each component, including 2 CPU and 8 GiB for ClickHouse and at least 16 GiB of ClickHouse memory for larger deployments, and recommends scaling worker containers on CPU load. Opik's README states it handles 40M+ traces per day, which is the only throughput figure we can cite for it, so you should run a load test that reflects your own trace volume rather than assume that number applies to your workload. Phoenix's SQLite default suits local work, while a PostgreSQL-backed Phoenix still runs as a single service, so plan for that before you treat it as production-scale. Ask each vendor for sizing guidance that matches your expected ingestion rate and retention window.

What drives the running cost of each platform

Running any of these three tools in your own infrastructure costs more than the software line item. The cost comes from the stateful services behind each tool, the storage headroom those services need, the license or Enterprise key terms, the staff time spent on upgrades, and the hosted alternative you could buy instead. Work through these drivers before you compare quotes.

Stateful services to run and patch

Langfuse needs PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible blob storage alongside its web and worker containers. Opik needs ClickHouse, MySQL and Redis. Phoenix starts on SQLite and can use PostgreSQL. Each stateful service you run adds backups, patching, monitoring and on-call coverage that recur every month. Ask each vendor or partner which services a production deployment requires and who owns patching for each.

ClickHouse memory and disk headroom

Langfuse's scaling guide lists 2 CPU and 8 GiB for ClickHouse, with at least 16 GiB of memory for larger deployments. Langfuse's v3 to v4 guide advises about 3x ClickHouse disk headroom when backfilling historic data, so a migration can need far more disk than steady-state traffic. Opik also depends on ClickHouse for traces. Ask for sizing against your expected trace volume and retention, and for the disk plan for any backfill.

License fees and Enterprise key costs

Opik and Phoenix are free to self-host under Apache-2.0 and Elastic License 2.0 respectively, with no feature limits in the self-hosted edition according to their documentation. Langfuse's core features are MIT licensed without limits, but project-level RBAC, retention policies, audit logs, masking and SCIM need an Enterprise license key, and the Self-Hosted Enterprise plan is custom-priced. This is a recurring cost if you need those controls. Ask for the key scope, renewal terms and what happens to features if the key lapses.

Staff time for upgrades

Langfuse applies database migrations automatically at startup for minor updates, but major upgrades such as v3 to v4 follow dedicated guides with ClickHouse 25.12 or later and PostgreSQL 15 or later. Phoenix and Opik release frequently, so upgrade cadence matters as much as the size of each change. Staff time for testing, rollback planning and dependency upgrades recurs for every version you adopt. Ask any implementation partner for a fixed-scope upgrade plan and a retainer option for ongoing patching.

Hosted service alternatives

Langfuse Cloud, Opik on Comet.com and Arize AX are priced per usage or plan, which moves the infrastructure and patching cost to the vendor but sends traces outside your environment. Phoenix's ELv2 license also bars offering it to third parties as a hosted service, so a hosted alternative may be the only managed route for some teams. Compare the monthly subscription against your own infrastructure, staff and support cost, and confirm where trace data is stored.

Which instrumentation standard fits your code

The instrumentation layer decides how much of your tracing code is tied to one vendor, so check it before you pick a tool. All three platforms accept OpenTelemetry in some form, but they differ in how they get there. Opik supports OpenTelemetry and also ships native integrations with LangChain, LangGraph, LlamaIndex, CrewAI and 60+ other frameworks, plus a @track decorator for custom code. Phoenix is built on OpenTelemetry with OpenInference semantic conventions, and its README says the same instrumentation works with both Phoenix and the managed Arize AX platform. Langfuse publishes its own OpenTelemetry documentation and its SDKs sit on the same standard. If your stack already emits OpenTelemetry spans, confirm each tool's ingestion path for those spans before you write any vendor-specific code.

The lock-in risk comes from the layer you write into most often. A decorator or framework callback that only one platform understands means every traced function carries that platform's API, and moving later means rewriting those call sites. Plain OpenTelemetry exporters keep the span format in your hands, so switching backends mostly changes an exporter endpoint and a collector configuration. OpenInference adds attribute conventions for LLM calls, retrievals and tools on top of OpenTelemetry, so confirm whether a given tool reads those attributes natively or needs a mapping. Phoenix's statement that the same instrumentation runs against Arize AX is useful evidence of portability, but it does not show that the reverse path, from Arize AX to your own store, is equally simple. Ask each vendor for a written export path.

To keep traces portable, route application telemetry through an OpenTelemetry Collector that you operate, and point exporters at the observability backend rather than calling vendor SDK methods from business logic. Keep prompts, model names and token counts in standard span attributes where possible, and wrap any vendor-only decorator in one internal module so the rest of the codebase never imports it directly. Run a test in a non-production environment: send the same traces to two backends for a few weeks and compare what each one displays. Record the attribute names your team depends on in a short internal schema. That schema, and not the vendor's dashboard, becomes the reference you carry into any future migration.

How a self-hosted rollout of one platform proceeds

This sequence takes one team from a license check to a running, instrumented, upgradable deployment, so that each later decision rests on a tested setup in your own infrastructure.

  1. Confirm license fit with legal

    Before any installation, your legal or procurement team reviews the license of the platform you shortlist. Langfuse is MIT outside its ee directories, Opik is Apache-2.0 and Phoenix is under the Elastic License 2.0, which forbids offering the software to third parties as a hosted or managed service. Ask legal to confirm whether your internal use, any service you run for customers, and any key-gated feature fit your plans. Done when you hold a written license position for each candidate you intend to test.

  2. Pick the deployment target

    Choose where the platform will run. Langfuse documents Docker Compose on a single VM for testing with no high availability, and Kubernetes with Helm or Terraform for production. Opik offers Docker Compose through its opik.sh script for local use and Helm charts for production. Phoenix can run from the terminal, Docker or Kubernetes. Your platform team confirms the target against its cluster standards and its availability needs. Done when the target and its owner are written into the rollout plan.

  3. Provision databases and blob storage

    Platform engineering creates the stores each tool needs. Self-hosted Langfuse uses PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible storage, and its scaling guide lists minimum resources for each. Opik uses ClickHouse, MySQL and Redis. Phoenix starts on SQLite by default and can use PostgreSQL through PHOENIX_SQL_DATABASE_URL. Confirm sizing with the vendor documentation, plus backup and restore for each store. Done when every store is reachable from the application and a restore has been tested.

  4. Configure SSO and RBAC

    Connect the identity provider and assign roles. Self-hosted Phoenix supports OAuth2, LDAP and local accounts with role-based permissions. In self-hosted Langfuse, project-level RBAC roles, audit logs, data retention policies, server-side masking and SCIM provisioning need an Enterprise license key, so confirm whether your access model depends on them before you commit. Check Opik's access controls in its current documentation. Done when a test user from each role signs in and sees only the projects that role allows.

  5. Instrument one application

    Pick one existing LLM application and send its traces to the platform. Langfuse, Opik and Phoenix all support OpenTelemetry, and Phoenix uses OpenInference instrumentation. Opik also offers native integrations with frameworks such as LangChain and LlamaIndex and a @track decorator for custom code. Confirm that the framework and language of your pilot application are supported. Done when traces for real requests appear in the interface with inputs, outputs, latency and token counts that your team can inspect.

  6. Set evaluation and retention rules

    Define which evaluations run on which traces, who owns the prompts, and how long traces are kept. Opik offers LLM-as-a-judge metrics and online evaluation rules, and Phoenix offers LLM-based evaluations, datasets and experiments. In self-hosted Langfuse, data retention policies are an Enterprise feature. Ask your compliance and data owners to confirm retention periods in writing, since the platform does not decide them for you. Done when the evaluation set runs on the pilot traces and the retention settings match the approved policy.

  7. Plan upgrades with migration guides

    Schedule how the platform will be patched and upgraded. Langfuse says updates within a major version are non-disruptive and apply database migrations at startup, while major upgrades follow dedicated guides, such as the v3 to v4 guide that requires ClickHouse 25.12 or later and advises additional ClickHouse disk headroom for backfills. Record the release you deployed, subscribe to its release notes, and confirm the upgrade path and rollback steps with the vendor. Done when a staging upgrade has been rehearsed and the runbook names an owner.

Questions buyers ask before choosing and self-hosting

Can Arize Phoenix be offered as a hosted service to our customers?

No. Phoenix is licensed under the Elastic License 2.0, which forbids providing the software to third parties as a hosted or managed service and forbids circumventing license key functionality. Running Phoenix for your own staff inside your infrastructure is the use the license is built for, and the self-hosting docs say it is free to self-host with no feature limitations or usage limits. If your product will expose tracing or dashboards to external tenants, have counsel read the ELv2 terms against your architecture before you commit. Opik (Apache-2.0) and Langfuse's MIT-licensed core carry no comparable hosting restriction, though Langfuse's enterprise directories are under a separate commercial license.

Does self-hosting Langfuse require a paid license key?

Core features do not. Langfuse states that all core features and APIs are available in the MIT-licensed open source version without limits, and self-hosted deployments use the same codebase as Langfuse Cloud. A license key is needed only for listed add-ons: project-level RBAC roles, protected prompt labels, data retention policies, audit logs, server-side data masking, UI customization, organization creators, and the org management API with SCIM and instance management API. If your security or compliance requirements call for any of these, price the Enterprise plan through Langfuse's self-hosted pricing page, and confirm the current terms in writing before you rely on them.

Which of the three platforms is simplest to run on a single VM?

It depends on what you count as simple. Phoenix has the lightest footprint for a single-user or small-team setup: it starts with a file-based SQLite database by default and can run from a terminal, Docker or other supported targets, with PostgreSQL available when you need a shared database. Opik's local setup uses its opik.sh script with Docker Compose, but it runs ClickHouse, MySQL and Redis. Langfuse on one VM uses Docker Compose, which Langfuse documents for testing without high availability, and it runs web, worker, PostgreSQL, ClickHouse, Redis or Valkey and S3-compatible storage. Compose is therefore a test setup for Langfuse, and production needs the Kubernetes path or managed services.

What drives the effort and time for a production rollout?

The main drivers are the number of stateful services you must operate, the trace volume, and the availability target. Langfuse production runs on Kubernetes or Terraform-based deployments and needs sizing for web, worker, PostgreSQL, ClickHouse and Redis or Valkey, with ClickHouse memory increasing for larger deployments in the scaling guide. Opik's production path is Helm on Kubernetes across ClickHouse, MySQL and Redis. Phoenix's production path depends on whether you move from SQLite to PostgreSQL and how you expose it. Ingestion rate, retention needs, SSO and audit requirements, backup design and network controls also add work. Ask any implementation partner for a written, fixed scope that names each component and the acceptance tests, since no duration should be assumed from this page.

What skills does our internal team need to run these platforms?

Plan for people who can operate databases and containers, not only people who can instrument an application. Each platform needs someone who understands backups, upgrades, capacity and access control for its datastores. For Langfuse, that means PostgreSQL, ClickHouse, Redis or Valkey and object storage, plus Kubernetes or Terraform if you go to production. Opik adds MySQL and Helm charts to the ClickHouse and Redis work. Phoenix is the lightest to operate at small scale, but a shared deployment still needs PostgreSQL administration and identity configuration for OAuth2, LDAP or local accounts. Application teams also need OpenTelemetry or SDK instrumentation skills, which is a separate and often larger effort than the infrastructure.

Can our team self-host one of these platforms without outside help?

A team with container and database operations experience can deploy any of the three from its public documentation, especially for a pilot. The harder questions are production hardening, upgrades and evidence for auditors. Langfuse's upgrade path requires checking the v3 to v4 guide, which requires ClickHouse 25.12 or later, PostgreSQL 15 or later and Redis 7.0 or later, and advises about 3x ClickHouse disk headroom when backfilling. Retainers and fixed-scope work from DeployOpen cover planning, implementation, hardening, backups, upgrades and documentation inside your own infrastructure. DeployOpen does not issue audit reports or certifications, so independent auditors still assess the controls.

What does switching from one of these tools to another later involve?

Switching is mostly a data and instrumentation migration. Traces are stored in each platform's own schema, so historical data rarely moves cleanly between tools, and the practical question is how long you need to keep old traces readable. Instrumentation is the lower-risk part when you use OpenTelemetry: Phoenix uses OpenInference on OpenTelemetry, Langfuse documents an OpenTelemetry path, and Opik supports OpenTelemetry alongside its native framework integrations. Plan for prompt and dataset export, evaluation history, dashboards, alert rules and access policies. Keep the old platform read-only for a retention period you choose, and confirm each vendor's export options in its documentation before you start.

What switching between these tools costs later

Trace data lives in each platform's own stores, so the cost of leaving is mostly the cost of moving history. Langfuse keeps traces in ClickHouse with PostgreSQL for transactional data and blob storage for events, Opik keeps its data in ClickHouse, MySQL and Redis, and Phoenix defaults to a file-based SQLite database and can use PostgreSQL. Switching does not carry over years of traces automatically, and the schemas differ. Before committing, ask each vendor and your own platform team what export paths exist (bulk trace export, API pagination limits, database-level dumps) and how long a full export takes at your current volume.

Instrumentation is where switching can be cheap. Opik supports OpenTelemetry and has native integrations with LangChain, LangGraph, LlamaIndex and CrewAI, and Langfuse documents an OpenTelemetry path. Phoenix uses OpenInference instrumentation, and its README says the same OpenTelemetry and OpenInference instrumentation works with both Phoenix and Arize's managed platform. Teams that have instrumented with OpenTelemetry directly and kept vendor SDK calls out of application logic can usually repoint an exporter. Teams using the Opik @track decorator or a vendor SDK wrapper should expect to edit those call sites and test span structure again.

Evaluations, prompts and datasets are the part most likely to fail a one-to-one migration. Judge prompts, scoring rules, online evaluation rules, prompt versions and labels, and versioned datasets are defined inside each product's model, so they often need to be rebuilt by hand. Confirm with each vendor whether prompts, datasets and experiment results can be exported in a usable format, and keep your own copy of evaluation definitions in version control. Also check the feature gating on your target edition: Langfuse keeps items such as data retention policies and audit logs behind an Enterprise license key, so a team that relied on them may find those controls missing after a move.

How DeployOpen helps choose and run an LLM observability stack

DeployOpen plans, implements, integrates, hardens, documents and supports self-hosted open-source platforms inside your own cloud accounts, data centers or air-gapped networks. For LLM observability, that means helping you weigh the three tools against your license rules, data residency needs and operating capacity, then building the one you choose inside your own infrastructure.

How we scope

  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before work starts.
  • We record which Langfuse, Opik or Phoenix features your teams need, and which need a paid edition or license key.
  • We confirm your ClickHouse, PostgreSQL, Redis and blob storage plan, or the SQLite or PostgreSQL choice for Phoenix, before any build.

How we build

  • We deploy the chosen platform in your environment, using Docker Compose for test or Kubernetes for production where appropriate.
  • We wire instrumentation through OpenTelemetry, OpenInference or the native SDK for your agent frameworks and custom code.
  • We configure authentication, role-based access, backups and upgrade procedures, then test trace ingestion and evaluation runs end to end.

How we hand over

  • You receive architecture notes, configuration documentation and a record of the license terms that apply to your deployment.
  • We document which storage, memory and CPU sizing assumptions were used, and what to recheck against vendor guidance.
  • Handover covers operating runbooks for upgrades, including any major-version migration steps the chosen vendor publishes.

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers after handover.
  • Retainers can cover version tracking for the platform and its database dependencies, with changes agreed in writing.
  • Where you move between tools later, we can scope the export, re-instrumentation and parallel-run work as a separate written engagement.

Sources and further reading

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.