On this page
The short answer
Choose an LLM observability tool by testing whether it can reconstruct a real application failure with the data your team is allowed to retain. Compare trace coverage, review workflows, export, operating effort, and privacy controls on the same fixture. Feature lists can create a shortlist; an instrumented trial should decide the fit.
What to take away
- Observe the whole task, including retrieval, tools, retries, and incomplete runs.
- Treat Langfuse, LangSmith, and Phoenix as a shortlist, not a ranked benchmark.
- Verify masking before export and test every telemetry destination.
- Make missing traces and failed exports visible instead of treating silence as success.
Sources checked . Research synthesis and Rubrex recommendations. Examples and local experiments are labeled; they are not client results.
Separate collecting traces from deciding whether a task was correct
A trace records what happened across a request; an evaluation applies a defined check or judgment to the recorded behavior or outcome. Langfuse documents nested request observations and quality scores, LangSmith connects production traces to evaluation datasets, and Phoenix documents traces with code-based, model-based, or human evaluation. Their presence in a product does not validate your scoring rules.
Rubrex recommends writing one investigation question before selecting tooling. For example: can an on-call engineer explain why a support task returned an outdated policy, identify the responsible version, and create a sanitized regression case? That question is more useful than counting dashboards because it names the evidence and handoff your team needs.
Evidence: Langfuse: Observability and Application Tracing [1]LangSmith Observability [2]What is Arize Phoenix? [3]
A documentation-based shortlist checked October 16, 2026
The following entries summarize first-party documentation reviewed for this guide. They identify documented workflows and a question to verify in a trial. They do not report hands-on speed, accuracy, customer outcomes, pricing, or feature parity across hosting plans. Check the exact edition, SDK version, retention terms, and hosting arrangement before committing.
Choose a representative stack for the trial. A framework-specific integration can shorten setup, while a custom tool, background worker, or second runtime may still require manual instrumentation. Treat successful ingestion of one model call as the start of the trial, not evidence that the complete application is covered.
Evidence: Langfuse: Observability and Application Tracing [1]LangSmith Observability [2]What is Arize Phoenix? [3]
| Tool | Documented starting point | Question for your trial |
|---|---|---|
| Langfuse | Application tracing, scores, usage and cost views, datasets and experiments | Can your custom steps and review labels stay connected to a complete task? |
| LangSmith | Tracing integrations, performance monitoring, annotations, and evaluation workflows | Can the team move from a production failure to a reproducible evaluation case? |
| Phoenix | OpenTelemetry and OpenInference tracing, evaluations, datasets and experiments | Do your actual instrumentors preserve the fields and relationships you need? |
Define a minimum trace contract before instrumenting
Specify the fields a reviewer must be able to inspect: task identifier, trace and parent identifiers, application version, prompt version, requested and actual model, retrieval document versions, tool outcomes, attempt count, timing, and final task status. Store references or redacted summaries where raw content is unnecessary. Do not record credentials as diagnostic metadata.
Separate provider-reported usage from estimates and missing usage. Preserve cancellation, timeout, partial output, and refused operations as distinct statuses. If a request crosses a queue or service boundary, test that its causal relationship survives. Otherwise, three disconnected model spans can look like three user tasks instead of retries of one failure.
| Evidence | Why it matters | Example omission to catch |
|---|---|---|
| Version and snapshot IDs | Connect an outcome to a deployable configuration | Cannot identify the index used |
| Parent-child relationships | Reconstruct retries and nested tools | Fallback appears as an unrelated request |
| Final task state | Distinguish usable result from partial output | HTTP success hides an unfinished workflow |
| Usage provenance | Reconcile measured and estimated work | Missing token usage silently becomes zero |
| Review labels and owner | Turn a trace into a follow-up decision | A low score has no explanation or next step |
Test masking at the point data leaves your application
Langfuse’s current masking documentation distinguishes export-stage Python masking from its legacy SDK-attribute hook. It also states that a separate exporter receives its own copy of a span and needs its own masking. Those documented limits make a useful general trial question: which data is transformed, at which point, and for which destinations?
For an illustrative test, insert a unique fake secret marker into input text, a tool result, metadata, and an error message. Inspect exported payloads and every configured destination, then verify that useful task identifiers remain. A pattern that hides an email in the prompt may miss the same value in metadata or an exception. Use only synthetic markers; the objective is to observe the data path.
Record retention, deletion, access roles, and permission to reuse traces for evaluation as separate requirements. Self-hosting does not by itself establish that your deployment meets them. If the trial cannot demonstrate the required boundary, omit the sensitive field or change the collection design before expanding capture.
Evidence: Langfuse: Masking sensitive LLM data [4]
Include telemetry failures and operating work in the decision
Pause the test collector or block its destination in an isolated environment. Observe what happens to application requests, export queues, dropped events, and shutdown flushing. Decide which trace loss is acceptable and how it is reported. A quiet dashboard can mean no failures, no traffic, or no telemetry; your operating procedure must distinguish them.
Measure application latency and resource use with and without the proposed instrumentation under the same controlled workload. Include payload size and the volume of repeated events. This guide makes no claim that asynchronous tracing has zero overhead. Also estimate the work to manage upgrades, storage, access, redaction, and evaluation jobs in the chosen hosting model.
Choose with a short decision record the team can revisit
Use hard gates for required data boundaries, supported runtime coverage, and investigation evidence. Compare remaining candidates on implementation effort, review usability, export quality, and operating cost using the actual trial records. If one tool fits the current workflow, record that bounded conclusion instead of declaring a universal best product.
Retain the fixture, integration versions, screenshots or exported evidence, unresolved gaps, and the person responsible for the next review. Revisit the choice when a new runtime, deployment boundary, or privacy requirement changes the contract. Monitoring production drift and selecting an observability tool are related tasks; the tool trial supplies evidence for the selection, while the monitoring plan defines what the team will do with it.
Limits of the evidence
This comparison is based on official documentation checked on October 16, 2026. No comparative product trial, performance benchmark, price audit, or security certification was conducted. The fixture and selection gates are Rubrex recommendations. Actual features and data controls depend on the configured SDK, integration, edition, and deployment; verify them in your environment.
Common questions
What is the best LLM observability tool?
Select the candidate that passes your data, trace-coverage, investigation, and operating requirements in a shared trial. This documentation review does not establish a universal winner.
Is tracing enough to measure answer quality?
No. Traces supply evidence about a task. Quality still needs defined acceptance criteria, reliable evaluators or reviewers, and representative cases with clear denominators.
Do I need to store complete prompts and responses?
Only collect content your team is permitted to retain and actually needs for the investigation. References, redacted snippets, and structured outcomes can be sufficient for some tasks; test whether they preserve the evidence you require.
Sources & further reading
Primary sources behind this briefing. A source’s findings apply to its own study conditions; publication on arXiv does not establish peer review.
- Langfuse: Observability and Application Tracing Langfuse · Living reference · Maintained documentationReviewed: documented tracing, scores, usage views, and experiment workflows; no hands-on comparison. Accessed October 16, 2026.
- LangSmith Observability LangChain · Living reference · Maintained documentationReviewed: documented tracing, monitoring, annotation, and evaluation workflows; no hands-on comparison. Accessed October 16, 2026.
- What is Arize Phoenix? Arize AI · Living reference · Maintained documentationReviewed: documented OpenTelemetry/OpenInference tracing, evaluations, and experiments; no hands-on comparison. Accessed October 16, 2026.
- Langfuse: Masking sensitive LLM data Langfuse · Living reference · Maintained documentationReviewed: export-stage versus legacy Python masking and scope across exporters; not an implementation audit. Accessed October 16, 2026.
Questions or corrections? Write to Rubrex. Read our editorial approach.