← All posts
AI / LLM Strategy

LLM Observability in 2026: Why Your AI Stack Is Flying Blind (And How to Fix It in Two Sprints)

Your AI feature ships to users every hour and you have almost no visibility into what it is actually doing. That is the default state of most SaaS teams in 2026. Here is the fractional CTO's playbook for tracing, evals, and cost telemetry — the third leg of the production AI infrastructure stool, alongside gateways and agent identity.

Craig Hoffmeyer10 min read

A founder I have been working with for eight months called me on a Tuesday in early April. His team ships a RAG-powered research assistant into a compliance-heavy B2B workflow. Six weeks earlier, one of his engineers had swapped the retrieval model from a Cohere reranker to a cheaper open-weights one to shave a few thousand dollars a month off the bill. Tests passed. Nothing obvious broke. Product shipped. Then the monthly churn number came in and it was ugly. Not catastrophic, but clearly off. He could not tell me why. He could not tell me whether answer quality had degraded, whether the swap was implicated, which customers had been affected, or which queries had gotten worse. His team had logs. His team had Datadog. His team did not have a single trace of an end-to-end LLM request with the inputs, the retrieved chunks, the model call, the output, and a quality signal attached. They were flying blind. By the time we dug through raw API logs and recreated what had happened, the damage was done and three enterprise accounts were in renewal conversations they should not have been in.

This is the third leg of the production AI infrastructure stool that most teams still have not built. I have written recently about the other two — AI gateways for routing and cost control, and agent identity for authentication and delegation. Observability is the leg that determines whether you can actually operate what you built. In April 2026, shipping an LLM feature without proper tracing, evaluation, and cost telemetry is the rough equivalent of running production databases without logs or metrics in 2010. You can get away with it until you cannot, and when you cannot the damage is outsized because nobody on your team can see what the agent is doing.

Why "we have Datadog" is not an answer

Traditional APM was built around requests, responses, status codes, and latency. That model breaks for LLM workloads in four places at once.

The first is that a single user action is almost never a single model call. A typical agentic workflow in 2026 is four or five model calls, three tool invocations, a retrieval step with re-ranking, a guardrail check, and an output parsing step. If your only telemetry is "the outer HTTP request took 8.4 seconds and returned 200," you do not know which of the twelve things that happened was slow, broken, or wrong. You need distributed tracing at the step level, where every LLM call, every tool use, every retrieval is a span with inputs, outputs, token counts, model name, and cost attached. This is exactly what the OpenTelemetry GenAI semantic conventions now specify, and it is what LLM-native observability vendors were built around before OTel caught up.

The second is that status codes lie. An LLM call can return a clean 200 and still produce garbage. Your error rate dashboard will show zero problems while 12% of your users are getting wrong answers. The only way to catch this is to score outputs — either with a smaller judge model, a rule-based check, a reference comparison, or user feedback — and to emit those scores as a first-class telemetry signal you can alert on, slice by prompt version, and regression-test across deploys. This is the eval layer, and in most teams it does not exist outside of a Jupyter notebook that was run once before launch.

The third is cost. Traditional APM tracks CPU, memory, and request count. LLM workloads are priced on input and output tokens at rates that vary by two orders of magnitude across providers, and a single runaway loop in an agent can put a hole in your monthly budget before lunch. If you cannot slice cost by feature, by model, by customer, by prompt version, and by tenant, you cannot run an AI product. "How much does this one enterprise account cost us to serve?" is a question every founder will be asked by a board member in 2026 and most teams cannot answer it today.

The fourth is prompts themselves. The thing that changes most often in an LLM product is the prompt. It ships outside your normal deploy pipeline, gets A/B tested, versions pile up, and the team stops being able to answer "which version of the prompt did this customer hit three weeks ago when they complained?" Proper LLM observability treats prompts as a first-class versioned artifact, linked to every trace, so you can diff behavior across versions.

The 2026 stack, with actual opinions

I will not give you a feature matrix. Every vendor blog has one and they all lie by omission. Here is how I actually categorize the market when a client asks me to pick a tool.

The open-source, full-platform default is Langfuse. MIT-licensed, 19K+ GitHub stars, covers tracing, evals, prompt management, datasets, and human annotation in one place. ClickHouse acquired Langfuse on January 16, 2026 alongside a $400M Series D — which is a vote of confidence in the architecture and explicitly did not change the licensing or self-hosting story. Self-hosting requires Postgres, ClickHouse, Redis, and S3-compatible storage, which is non-trivial but documented. Cloud pricing is usage-based: free Hobby tier at 50K units per month, Core at $29 base, and $8 per additional 100K units. This is the one I default to for clients who want control, want to avoid lock-in, and want a real open-source community behind the tool.

The LangChain-native choice is LangSmith. If your team is already deep in LangChain or LangGraph, the automatic instrumentation and debugging affordances are genuinely better than anything else on the market, because the tool understands the framework's internals. Pricing starts around $39/user/month, which becomes interesting math at ten engineers versus Langfuse's per-unit pricing. Downside: it is the LangChain company's product, so lock-in into that ecosystem is a real consideration. If you are not on LangChain, skip it.

The fastest time-to-value option is Helicone. A proxy-based architecture gives you a one-line integration — change your OpenAI base URL and you start getting traces, costs, and caching. That simplicity is a superpower for teams who need visibility today and cannot afford to instrument deeply. It doubles as a lightweight gateway, which is a nice overlap with the routing article. The tradeoff is that a proxy sees what passes through it; if you want eval loops, agent-graph visualization, and complex RAG telemetry, you will outgrow it.

The research-and-eval-heavy option is Arize Phoenix. Completely free to self-host under the Elastic License 2.0, excellent drift detection, visual RAG quality plots, and deep integration with the OTel GenAI semantic conventions. If your product is heavily retrieval-based and your biggest risk is silent quality drift, Phoenix is the sharpest knife in the drawer. It is less opinionated about the rest of the lifecycle than Langfuse, so you may end up pairing it with a prompt management tool.

The enterprise-already-on-our-stack option is Datadog LLM Observability. Datadog added native support for OpenTelemetry GenAI semantic conventions in Agent v1.37, so you can emit standard OTel GenAI spans and see them alongside your existing traces. If your org runs on Datadog and your AI workload is the newcomer, this is the path of least organizational resistance. Pricing is $8 per 10K requests, which gets expensive fast at LLM volumes but may be acceptable if it means not introducing a new vendor.

The portable, standards-first answer is OpenTelemetry itself. As of March 2026, the OTel GenAI semantic conventions are still experimental but widely adopted: Datadog, Grafana, Langfuse, Phoenix, and most of the major platforms either ingest or emit them. Auto-instrumentation packages exist for OpenAI, Anthropic, LangChain, and LlamaIndex. If your future is multi-vendor, multi-region, or enterprise-sold, instrumenting to OTel GenAI and then choosing a backend is the play that ages best. You are betting on the standard rather than the vendor.

For most early-stage SaaS teams I advise in 2026, the answer is one of two defaults: Langfuse if you want a full platform with an opinion on evals and prompts, Helicone if you need observability in production this week and will upgrade later. Both have free tiers. Both let you migrate.

A concrete example — the trace that saves the account

Back to the founder I opened with. Here is what the fix looked like.

We instrumented every request into the research assistant as a single OpenTelemetry trace with GenAI semantic attributes, emitting to a self-hosted Langfuse. Every span carried the user ID, the tenant ID, the prompt version, and the feature flag state. The outer span was the user-visible request. Child spans captured: query rewrite (LLM call), retrieval (tool span with the actual chunks and scores), re-ranking (model call with top-k results and new scores), synthesis (main LLM call with the full assembled context), and a post-hoc eval (a small judge model scoring the output against four rubrics — factuality, citation accuracy, completeness, and tone). Every span had input tokens, output tokens, and computed cost.

Two days later we had dashboards sliced by prompt version, by tenant, and by retrieval pipeline. The smoking gun jumped out: the open-weights reranker was returning a different distribution of chunk scores for a specific class of long-form query from three enterprise customers. The factuality judge score had dropped 14 points for those customers while the rest of the cohort looked fine — which is exactly the kind of silent quality drift that a top-line error rate chart completely misses. We rolled the reranker back for that tenant segment, opened a rebuild ticket for the cheaper alternative, and the founder had a specific story to tell his renewal conversations instead of an apology. Same team. Same model. Same product. Different observability architecture, different outcome.

The counterpoint — when this is overkill

Because I am a fractional CTO and not a vendor, here is the honest counter-case. If you are pre-revenue, shipping a single LLM call per user request, with no retrieval, no tool use, no multi-tenant concerns, and your daily token spend is under $20, installing Langfuse is not the best use of your next sprint. Turn on provider-native logging (OpenAI's dashboard, Anthropic's console), add basic per-request cost logging, and ship features. The complexity of observability should track the complexity of the system you are observing.

The inflection point — and I have seen this threshold land in a dozen client engagements — is any one of four conditions. First, the product does retrieval or tool use (you are now a multi-step system and APM-level logging will not cut it). Second, you are multi-tenant and need to slice behavior by customer. Third, your daily token spend is above $200 and a quiet loop costs you real money. Fourth, you are in a regulated or audited context where "what did the model do on July 14" is a legitimate question. If any one of those is true, you need proper LLM observability. If two or more are true, you needed it last quarter.

Your two-sprint adoption plan

Here is how I actually roll this out with clients.

Sprint one, week one: pick a platform (Langfuse or Helicone is the default). Stand up the self-hosted or cloud instance. Instrument your primary LLM entry point with the OpenTelemetry GenAI auto-instrumentation for your provider SDK. Confirm you can see a trace. Add user ID, tenant ID, and prompt version as span attributes. You now have single-call visibility.

Sprint one, week two: instrument every step of your most important agent or pipeline. Retrieval becomes a span with the query, top-k, and scores. Tool calls become spans. Guardrail checks become spans. Add input tokens, output tokens, and cost to every model span. Build one dashboard: cost per day by feature, by tenant, by model. Add a weekly review to your engineering cadence to actually look at it.

Sprint two, week one: stand up an eval pipeline. Start simple — a small judge model scoring outputs on 3–5 rubrics that match what your customers actually care about. Attach those scores as trace attributes. Create a regression gate in CI that runs your top 50 real user queries through a golden eval and blocks deploys on score regressions above a threshold. You are now measuring quality, not just uptime.

Sprint two, week two: operationalize. Move prompts into your observability tool's prompt management so every trace is linked to a versioned prompt. Wire alerts on cost anomalies, eval score drops, and p99 trace duration. Run a single game-day exercise where you intentionally ship a known-worse prompt version behind a flag and confirm your dashboards and alerts catch it. The exercise is the point; tools without a practiced response are just bills.

That is two sprints to go from flying blind to running a real AI operation. I have done this with six clients in the last year and every one of them found something surprising in their system inside the first week.

The bottom line

AI gateways give you routing, caching, and cost control. Agent identity gives you authentication, delegation, and audit. LLM observability gives you the ability to see what the system is actually doing, catch quality regressions before your customers do, and answer the cost question every board now asks. Those three together are the production AI infrastructure stack for 2026. You can ship features without them. You cannot operate a serious AI product without them.

If you are weighing this tradeoff — which tool, how deep to instrument, whether to self-host, how to build evals that actually catch real regressions — that is exactly the work I do as a fractional CTO. Book a 30-minute call and we will walk through your current stack and scope the two-sprint plan for your team. No feature matrix. Just an operator's take on what will hold up when your next incident arrives.


Related reading: AI Gateways: Why Your LLM Stack Needs a Router in 2026 · Agent Identity Is Your Next Security Problem · Why Your Eval Suite Matters More Than Your Prompt · The Hidden Cost Curve of LLM Features

Shipping AI features without real observability? Let's fix that.

Get in touch →