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]

Documented capabilities and a practical verification question
ToolDocumented starting pointQuestion for your trial
LangfuseApplication tracing, scores, usage and cost views, datasets and experimentsCan your custom steps and review labels stay connected to a complete task?
LangSmithTracing integrations, performance monitoring, annotations, and evaluation workflowsCan the team move from a production failure to a reproducible evaluation case?
PhoenixOpenTelemetry and OpenInference tracing, evaluations, datasets and experimentsDo 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.

Proposed trace contract for a small retrieval assistant
EvidenceWhy it mattersExample omission to catch
Version and snapshot IDsConnect an outcome to a deployable configurationCannot identify the index used
Parent-child relationshipsReconstruct retries and nested toolsFallback appears as an unrelated request
Final task stateDistinguish usable result from partial outputHTTP success hides an unfinished workflow
Usage provenanceReconcile measured and estimated workMissing token usage silently becomes zero
Review labels and ownerTurn a trace into a follow-up decisionA low score has no explanation or next step

Run the same synthetic investigation trial in each candidate

Create a fixture with an ordinary success, an outdated retrieved document, one retry, a failed tool, a slow operation, and a task canceled before completion. Give each event a known identifier and expected final state. Use synthetic content and controlled services so the trial does not depend on real customer records or a provider outage.

Ask the same reviewer to answer the same questions in each candidate: what failed, which evidence was used, how many attempts occurred, what remained incomplete, and how to reproduce the case. Record missing evidence, manual work, and time spent as trial observations. Distinguish setup mistakes from unsupported integrations before rejecting a candidate.

Add an export check. Retrieve the fixture’s records in the format you intend to retain, then confirm that identifiers, timestamps, labels, and parent relationships survive. Being able to view a trace does not establish that you can migrate it, join it with outcome records, or rerun its sanitized test case.

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.

  1. 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.
  2. LangSmith Observability LangChain · Living reference · Maintained documentationReviewed: documented tracing, monitoring, annotation, and evaluation workflows; no hands-on comparison. Accessed October 16, 2026.
  3. 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.
  4. 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.

From reading to a repeatable evaluation

Put a quality bar around your use case.

The AI Reliability Sprint covers one use case, a baseline, failure analysis, and one improvement experiment in 10 business days.

Request an evaluation call

See the Sprint deliverables →