See what your AI features cost and return.
Every model call is recorded as a span in the same trace as the request that made it, with its prompt, token counts, latency, cost and completion. Group spend and latency by feature, model or customer.
Trace a slow or expensive generation
Model calls appear in the same traces as everything else, so a retry loop shows up as latency and as spend. Here is one, from the slow span to the capped retry budget.
Record and analyse model calls
Generations recorded as spans, with the cost, latency and quality signals that a plain error rate misses.
Every call with its model, parameters, prompt, completion, token counts and finish reason.
llm spansSpend per model, per feature and per customer, priced from the recorded token counts.
costTime to first token recorded separately from total time, for streaming responses.
ttftMulti-step chains and tool calls as a tree, with the step that looped or stalled marked.
tracesRefusals, truncations, schema violations and empty completions, counted as errors.
qualityOpenTelemetry GenAI semantic conventions, so an SDK you already use reports without a wrapper.
otel genaiNotify your team when cost per hour, error rate or p95 time to first token leaves its band.
alertingRank spend by model, feature and customer.
Because generations are spans, the same data answers where the bill is going and which model is responsible for most of it.
- Per feature. Spend and latency grouped by the surface that called, rather than by API key.
- Per model. Compare a cheaper model on real traffic before you switch to it.
- Per customer. Find the tenant whose usage explains a change in the line.
- Against a budget. Set a ceiling per feature and alert when spend approaches it.
Start tracing your model calls.
Report OpenTelemetry GenAI spans from the SDK you already use and see cost and latency per feature on your first day. Start on the free plan with no card.