Observability and Operations
See what your LLM app is doing: safe logs, traces, metrics, alerts, user feedback and incident drills, built by hand and then with real tools.
A model call that works in a demo teaches you nothing about production. In production the bill doubles overnight. A prompt change quietly makes answers worse. One provider has a bad hour. A user says "it gave me a wrong answer yesterday" and you cannot find the call. This phase is about not being blind: recording enough about every call to answer those questions, without recording things you must not keep.
You will build the three signals by hand on a simulated clock, with fake models and scripted traffic, so every number is repeatable. The signals are structured logs with a redactor and a sampler, trace spans for retrieval, model calls and tools, and metrics such as p50 and p95 latency, time to first token, tokens, cost and cache hit rate. Then you will write an alert rule over time windows and join user feedback to requests. Last, you will run incident drills where your own code detects the problem.
Real tooling appears next to the hand-built versions: OpenTelemetry spans in Python, Java and JavaScript, the OpenTelemetry generative-AI attribute names (and their current status), Prometheus-style metrics and an alert rule. The phase ends with an instrumented model client in all three languages. The ideas link to Hectal's Observability course (/observability) and SRE course (/sre), which go deeper on the general tools.
Practise this phase
Hands-on exercises: write the code, run it, and press Check to have it tested automatically.