AI Observability — LiteLLM, Helicone, Langfuse
Logging, budgets, traces, evals for your local and hybrid LLM stack.
The "I have a working local AI stack — now I want to know what it's doing, set budgets, and trace bad outputs" tier. LiteLLM, Langfuse, and Helicone are the FOSS / self-host picks. Phoenix (Arize) rounds out the major options.
For the upstream stack see overview; for cloud / API mixed see cost math and cloud rentals. For the broader observability category see observability.
LiteLLM
★ ★ LiteLLM (github.com/BerriAI/litellm, MIT) — multi-provider LLM proxy with logging, budgets, fallback, and rate-limiting.
- OpenAI-compatible proxy — point any OpenAI SDK at LiteLLM; LiteLLM routes to whichever backend (OpenAI, Anthropic, Bedrock, OpenRouter, Ollama, vLLM, anything).
- Per-key budgets and rate-limits. Critical for multi-user / family / team setups.
- Logging — to Postgres, S3, Helicone, Langfuse, etc.
- Model routing — fallback chains ("try Claude, fallback to local Qwen on error").
- Prompt caching for supported providers.
- MIT license; self-host friendly. Also a paid hosted version, but the OSS proxy is full-featured.
- ★ ★ The center of a serious self-host AI stack.
Point Aider, Cline, Continue.dev, Open WebUI at LiteLLM, get one-source-of-truth logs, budgets, and routing.
Langfuse
★ ★ Langfuse (github.com/langfuse/langfuse, MIT for OSS / EE for some features) — observability + evals platform.
- Trace / span model — every LLM call traced with inputs, outputs, latency, cost, metadata.
- Eval framework — score traces with LLM-as-judge or custom Python; track quality regressions.
- Prompt management — version / A/B test prompts.
- Self-host with Docker Compose; hosted SaaS available.
- MIT for the core; some enterprise features behind a license.
- ★ ★ The default OSS LLM observability platform.
Helicone
★ Helicone (github.com/Helicone/helicone, Apache 2.0) — proxy-based observability.
- Drop-in proxy in front of OpenAI / Anthropic; logs every call with no code change.
- Self-host or hosted.
- Caching, rate-limiting, prompt management.
- Less feature-rich than Langfuse for evals; simpler to start.
Phoenix (Arize)
Phoenix (github.com/Arize-ai/phoenix, ELv2) — observability + RAG-tracing-focused.
- Especially good for RAG debugging — visualises retrieval quality.
- Self-host friendly.
- Different license shape (Elastic License v2, not strict OSS).
OpenLLMetry
OpenLLMetry (github.com/traceloop/openllmetry, Apache 2.0) — instrumentation library for LLM apps that emits OTel traces.
- Integrates with any OTel backend (Jaeger, Tempo, Datadog, Honeycomb).
- Auto-instruments OpenAI, Anthropic, LangChain, LlamaIndex.
What to actually instrument
- ★ Cost per call. $/M token math — multiply input + output. LiteLLM logs this.
- ★ Latency. First-token-time vs. total time matters for chat UX.
- ★ Error rate / fallback rate. How often is your fallback chain firing?
- ★ Tool-call success rate. For agent workloads — JSON parse failures, tool-call malformed, etc.
- ★ User feedback / thumbs up-down. Correlate to traces.
- ★ Eval scores. LLM-as-judge on output quality, periodically.
Patterns
- All clients → LiteLLM → providers. One source of truth.
- LiteLLM → Langfuse for traces. Every call gets a trace.
- Pre-deploy eval — Langfuse evals over a fixed dataset before promoting a new model / prompt.
- Budget caps — LiteLLM enforces; alerting on approaching limits.
Honest scoping
- Single-user personal stack — you probably don't need observability beyond Open WebUI's chat history. Don't over-engineer.
- Family / small-team self-host — LiteLLM is worth setting up just for budget enforcement.
- Production / business workload — LiteLLM + Langfuse is the canonical pair.
Pick this if…
- Multi-provider proxy with budgets: ★ ★ LiteLLM.
- LLM observability platform with evals: ★ ★ Langfuse.
- Quick proxy-flavoured logging: Helicone.
- RAG debugging: Phoenix.
- OTel-native instrumentation: OpenLLMetry.
- Personal single-user stack, no obs needed: stay with Open WebUI's built-in chat history; don't over-build.