Book a 30-min callBook a call

LLM observability: tracing, metrics and evals for AI features in production

What to record on every LLM call, how to trace agent runs with the OpenTelemetry GenAI conventions, redaction, sampling, alerts and online evals.

A trace panel of nested timed bars, an arrow to a dashboard with two line charts, and a checklist card.
Written by
BYD Tech
Published
Topic
Deep dives
Reading time
13 min read

Questions people ask

What is the difference between LLM observability and LLM evaluation?

Observability records what happened on every call: inputs, outputs, tokens, latency, errors and how the calls connect. Evaluation judges whether the output was good. Online evals run on top of observability data, which is why their scores are attached to trace IDs.

Should I log full prompts and responses?

Not by default. The OpenTelemetry GenAI conventions make content opt-in. If you need it for debugging, redact it before export, store it apart from metrics with its own access controls and short retention, and reference it from the span.

Are the OpenTelemetry GenAI conventions stable?

Not yet. As of November 2026 they are marked Development, and names have changed between drafts. Use them anyway, since shared names beat home-made ones, but pin the version and plan for renames.

How do I measure time to first token?

Stream the response and record the time from the start of the logical call to the first chunk that carries real output, such as text, reasoning or tool-call content, not an empty start event. The conventions call this gen_ai.response.time_to_first_chunk and measure it from before authentication, with failed attempts and retry backoff included.

Which LLM metrics should wake someone up at night?

Error rate and latency on the model calls a user is waiting for, and a sharp rise in tokens per request, which usually means a loop. Changes in refusal, truncation and quality rates matter just as much, but they can usually wait until morning.

Building something like this?