Langfuse is the observability platform whose whole stack you can operate yourself, which decides the tool when prompts cannot leave your network. Generations carry fields that spans do not, so cost dashboards exist without you computing them.
The one you can run yourself
LLM observability covers what to record and why ordinary telemetry misses it. Several platforms implement that, and the honest way to tell them apart is by what happens when you need to own the deployment.
Langfuse is open source and self-hostable as a whole platform, not as a local development component with a hosted product behind it. Cloud is offered; running the same thing on your own infrastructure is a supported path rather than a trial mode.
That matters when prompts and completions cannot leave your network. As LLM observability argues, the most useful thing to record is the thing you should be most careful about, and for teams under that constraint the hosting question decides the tool before any feature comparison starts.
The data model
Four terms, and they nest.
A trace is one request through your application. Langfuse describes it as capturing "the exact prompt sent, the model's response, token usage, latency, and any tools or retrieval steps."
Observations are the operations inside it, of which spans are the general kind and generations are model calls specifically. The distinction earns its place: a generation carries the fields a span does not, which is what lets cost and token dashboards exist without you computing them.
Sessions, users and tags are how you find a trace again. A session groups a multi-turn conversation, which is the unit a support complaint arrives as.
Tracing is asynchronous and sent in the background, so instrumentation does not sit in your request path.
Getting data in
Three routes, in rough order of how much they ask of you.
Framework integrations, if you already use one. The traces arrive with the structure the framework knows about.
The SDKs, wrapping or decorating your own calls. This is the route for an application that is not built on a framework, which is most of them past the prototype.
OpenTelemetry, since Langfuse is compatible with it. Worth considering if you already emit GenAI semantic-convention spans, because the attribute names are then settled rather than per-tool, and moving later costs less.
Past tracing
Three capabilities that put it alongside a platform rather than a viewer.
Prompt management, so a prompt is a versioned object outside your deploy cycle rather than a string in the codebase.
LLM-as-a-judge evaluation and datasets and experiments, so a trace that went wrong becomes a saved case, and the next change runs against it. This is the loop regression testing describes, and having it in the same tool as the traces removes the export step where these efforts usually die.
Dashboards, scores and alerts over cost, latency, volume and quality.
Choosing between it and the others
The three provider pages here cover tools that overlap a great deal, so the differences that decide it are narrow.
LangSmith is the most natural fit if you are already on LangChain, and works without it. Arize splits a local OpenTelemetry-native open source tool from a hosted platform. Langfuse is the one whose full platform you can operate yourself.
If none of those distinctions binds, the tie-breaker is which one your team will open. An observability tool nobody looks at is a cost centre, and that is a question about interface and habit rather than about features.
Further reading
- Langfuse, Observability overview: the data model, the integrations and what sits on top.
- LLM observability: what to record, and the standard worth following.
- LangSmith and Arize AI: the neighbouring tools.
- Regression testing: the loop these platforms exist to close.
Knowledge check
Question 1 of 3
Sign in to save your progress and pick up where you left off.