Every request, fully visible.
Logs, alerts, and callbacks for every LLM call. See what happened, get notified when things break, pipe data to your existing tools. Cost is the provider’s number — never ours, never reconstructed.
Latest request
- Default log retention
- 90 days
- Cost source
- x-nemo-request-cost
- Latency percentiles
- p50 · p95 · p99
- PII masking
- Optional
Financial records retained indefinitely
Provider header — never reconstructed
Per model, per key, per org
Per-org policy: zero / meta / full / redacted
Successes, rate-limits, cache hits, guardrail blocks — one stream.
Searchable, filterable, expandable per row. Logged async — zero latency added to the request path.
Provider → Backend → Callbacks (async)
Nemo Router captures the provider cost directly — no extra hop where the cost header can be lost or rewritten. Logs are recorded, callbacks fan out async with a retry queue.
Async log path
Provider
Vertex / Anthropic / OpenAI
Returns x-nemo-request-cost header — the source of truth.
Nemo Intelligent Proxy Router
Routing engine
Computes cost, attaches metrics, emits log event.
Nemo Backend
Nemo Router
Records request_log, fans out to enabled callbacks async.
Callbacks
Langfuse · Datadog · S3 · Slack
Fire-and-forget delivery with retry queue.
Provider cost header is the source of truth
Cost integrity
One number, four surfaces, zero drift
We never compute cost ourselves. The same x-nemo-request-cost value lands in the request_log row, the credit ledger, every active callback, and the analytics rollup — one upstream value, four downstream consumers, no recomputation. Missing-header rows are flagged for reconcile, never silently zeroed.
- Source: provider response header (x-nemo-request-cost)
- Sinks: request_log, credit ledger, callbacks, analytics
- Daily ledger parity check: sum(transactions) == balance
- Zero-cost settlements are the canonical revenue-leak signal
Cost-header integrity
Full reference — callbacks, alerts, data policy, latency metrics
- Request logs
- Every call captured with model, status, latency, cost, tokens — and full prompt/response if your data policy allows. Per-row expand, filter by model/status/time/key/team. 90-day retention default; longer on Enterprise.
- Logging callbacks
- Langfuse (traces + spans + generations), Datadog (metrics + correlation IDs), S3 (raw JSON archive), Slack (real-time event feed), and custom HTTPS webhooks with signed payloads. One toggle each, async, fire-and-forget with retry queue.
- Latency metrics
- p50 / p95 / p99 + max per model, key, team, org — time-to-first-token and total latency tracked separately, streaming-aware (TTFT measured at first SSE event). CSV export for long-tail diagnosis.
- 8 alert types
- LLM errors, budget thresholds, provider outages, latency spikes, rate-limit hits, guardrail blocks, key expirations, spend anomalies. Multi-channel delivery: email + Slack + Teams + webhook, with per-org thresholds and hysteresis.
- Data policy — 4 levels
- Zero (billing-essential only), metadata-only (default: model, tokens, cost, latency, status), full (complete prompt + response), or PII-redacted (full with Presidio masking pre-storage). Switch any time per org; applies immediately.
- Async — zero added latency
- Log ingestion happens after the response returns (< 100 ms to the in-product viewer). Failed callbacks never affect request success. The cost-header passthrough is the only synchronous invariant.
Common observability questions
90-day retention · 4 callbacks · 8 alerts
See every request — without DIY observability infrastructure
Sign up, enable a callback or two, watch the data flow into your existing stack. No agents to install, no schema to invent.