systemdesign.academyAI EngineeringFree lessonsSign inGet the course
  1. Home
  2. AI Engineering: Evaluation, LLM Ops and Security

Where this shows up in interviews

This idea carries a full system design question on its own. Each walks through the full answer.

  • →Design an AI Agent for Customer Support
Previous lessonRate Limits and Provider Failure: The Number One Production ErrorNext lessonReliability for Stochastic Systems: Error Budgets for Probabilistic Output

System Design

  • Foundation
  • Intermediate
  • Advanced
  • Capstone

AI Engineering

  • Foundation
  • Data, RAG and Agents
  • Evaluation, LLM Ops and Security

systemdesign.academy

  • Home
  • Glossary
  • Interview prep
  • Reviews
  • About
  • Pricing
  • Privacy
  • Terms
  • Refunds
  • Delivery
  • Contact
  • LLM and GenAI Ops
  • LLM Observability and Tracing: Seeing Inside a Nondeterministic System
  • AI Engineering · Llm Genai Ops

    LLM Observability and Tracing: Seeing Inside a Nondeterministic System

    Free preview: the first part of this 11-part lesson.

    Already bought the course? Sign in to read the whole lesson.

    this lesson is part of

    AI Engineering

    Unlock this lesson and the 199 other paid lessons

    • 210 lessons in 16 chapters
    • 118 lessons built on a lab that really ran
    • An AI tutor beside every lesson that answers and draws
    • Lifetime access, every new lesson included

    $49 once, by PayPal

    See the AI Engineering course

    The rest of this lesson

    1. What One Request Must Leave Behind
    2. One Trace Id, Every Step Under It
    3. Total Time and Self Time Answer Different Questions
    4. gen_ai.*: Telemetry Names You Can Take With You
    5. Three Pillars, Rewired for LLM Traffic
    6. The Dashboard: Percentiles, Tokens, Cost, Refusals
    7. Observability Records. Evaluation Judges. They Meet on a Trace.
    8. Telemetry Is Not Free: What to Keep and What to Redact
    9. What Teams Actually Run
    10. Knowledge Check

    read the rest of this lesson in

    AI Engineering

    Unlock this lesson and the 199 other paid lessons

    • 210 lessons in 16 chapters
    • 118 lessons built on a lab that really ran
    • An AI tutor beside every lesson that answers and draws
    • Lifetime access, every new lesson included

    $49 once, by PayPal

    See the AI Engineering course

    Continue this lesson

    in Llm Genai Ops

    This lesson is part of the AI Engineering course. Unlock the full course, a separate one-time payment, for lifetime access.

    One-time payment. Lifetime access. No subscription.
    Global
    $49/lifetime

    One-time payment by card or PayPal

    Get Lifetime Access
    Foundation lessons free, try before you buy
    India Special
    India
    ₹999/lifetime

    One-time payment: UPI, card or netbanking

    Get Lifetime Access
    Foundation lessons free, try before you buy
    Every ML Platform lesson, Foundation to Advanced
    Real architecture diagrams with real tool logos
    MLOps, LLMOps, and data engineering in depth
    Quizzes with instant feedback
    Built and reviewed by senior engineers
    Lifetime access, all future content included

    Foundation lessons of this course are free, no payment needed. Try them now

    The 200 OK That Lied

    Support forwards you a screenshot. Your product told a customer they can return a mattress after 180 nights. The real policy is 30. You open the logs to find out what happened, and the logs have nothing to say: POST /ask, status 200, 950 ms. No exception. No retry. No error budget spent. By every signal your monitoring stack understands, this request went perfectly.

    That is the defining property of LLM failures in production, and it breaks the assumption your entire observability toolchain was built on. Classic systems fail loudly: a 500, a timeout, a stack trace. A language model fails by succeeding. It returns a well-formed response, on time, with a plausible token count, and the failure is inside the words. Status codes describe the transport. Nobody told the transport the answer was wrong.

    Diagram of a silent LLM failure: a five step request pipeline from user to retrieval to prompt render to model to response, where retrieval returns zero chunks and the prompt renders with an empty context block, yet the transport lane reads status 200, 950 ms, and no exception while the content lane shows the model told the customer returns are accepted after 180 nights when the real policy is 30

    What actually happened to that mattress customer, in the version of this story I have watched more than once: a dependency bump changed the model used at query time, retrieval started returning zero chunks for a slice of queries, the prompt template happily rendered with an empty context block, and the model did what models do with a vacuum. It filled it. Every step returned cleanly. The only artifact that could have shown the empty context block is the exact prompt sent on that exact request, and nobody was saving it.

    The Honeycomb team, building one of the first LLM features shipped by an observability company, landed on the same conclusion and wrote it down in All the Hard Stuff Nobody Talks About when Building Products with LLMs: the model is a black box you cannot step through, so the only way to debug it is to capture what went in and what came out, per request, in production. You cannot attach a debugger to a nondeterministic system after the fact. The trace is the debugger.

    The previous lesson dealt with the failures that do announce themselves, the 429s and provider outages. This one is about everything that hides behind a 200, and the telemetry that drags it into view.