Click a trace, see what your agent did
Stop grepping stdout to debug LLM apps. Emit JSON logs with request IDs, wire OpenTelemetry and Arize Phoenix, and get a clickable timeline of every routing decision, tool call, and token burned.
Still deciding? Ask first.
Message a mentor about fit, prerequisites, or where to start. Replies come on WhatsApp, usually within a day.
- Curriculum fit, prerequisites, or where to start
- Honest answer, no pressure to enroll
Taught by an engineer who has shipped this
ISO 27001
Led the engineering work behind the certification of a regulated EU platform.
Series A platform
Architected the case-management product that became the business a €11.6M round was raised on.
3x faster deploys
Cut time-to-deploy by migrating to Kubernetes on GCP with deploy-on-merge.
Emit JSON logs with request IDs and OpenTelemetry spans across every tool call in a routing agent. Click a trace and see exactly what your agent did, which tool ran, how many tokens it burned, and why it failed.
Emit JSON logs with request IDs and OpenTelemetry spans across every tool call so you can click a trace and see exactly what your agent did.
What you'll ship
Real projects, not toy demos.
- Emit structured JSON logs with request IDs across a Python LLM service
- Run Arize Phoenix locally and register an OpenTelemetry tracer
- Auto-instrument OpenAI calls with OpenInference
- Wrap every tool with a custom @trace decorator that records tokens, cost, and latency
- Link router, SQL, RAG, and web search spans into a readable hierarchy
- Replay a failing trace in Phoenix and set SLO alerts on latency and error rate
What you'll learn
You finish able to:
- Explain why text logs fall apart for nondeterministic LLM applications
- Emit JSON logs with a request ID that survives across tool calls and background tasks
- Start Arize Phoenix locally and wire an OpenTelemetry tracer into a Python service
- Auto-instrument OpenAI calls with OpenInference and read the span tree
- Wrap any tool with a @trace decorator that records tokens, cost, and duration
- Replay a failing trace in the Phoenix UI and alert on latency and error rate
Curriculum
From your first JSON log line to a full trace-driven debugging workflow.
- 012 lessons
Why tracing beats logging
Understand why text logs fail for nondeterministic LLM apps and meet the three pillars of observability.
- 023 lessons
Structured logging you can grep and ship
Replace print with JSON logs, thread a request ID through every tool call, and decide what to log and what never to log.
- 033 lessons
OpenTelemetry and Arize Phoenix
Run Phoenix locally, register an OTel tracer, and auto-instrument OpenAI calls with OpenInference.
- 043 lessons
Custom spans for every tool
Write a @trace decorator that adds token, cost, and latency attributes, then wire it into router, SQL, RAG, and web search.
- 053 lessons
Trace-driven debugging
Replay a failing trace in the Phoenix UI, set SLO alerts, and graduate to a runbook you can hand to a teammate.
Who it's for
Is this for you?
AI engineers
who ship agents into production with print statements and hope, then cannot explain what happened when something breaks
Backend engineers
who bolted OpenAI calls onto an existing service and now cannot pinpoint which tool caused the latency spike or the bill surprise
Platform and SRE engineers
who need structured logs and trace propagation across an LLM tool chain the same way they already have it for microservices
FAQ
Common questions.
Do I need to know OpenTelemetry already?
No. The course introduces traces, spans, and attributes from first principles, then walks through wiring them up inside a real Python agent. If you have used OpenTelemetry before, you can skim the early lessons and focus on the LLM-specific attributes.
Why Arize Phoenix and not a hosted tool?
Phoenix runs locally, stores traces on disk, and speaks the OpenTelemetry protocol. You can swap it for any OTel-compatible backend (Langfuse, Honeycomb, Datadog) without changing your instrumentation code. The course teaches the wiring, not a vendor.
Will this work with my LLM provider?
Yes. The workshop uses an OpenAI-compatible client, so anything that speaks the OpenAI API (including OpenRouter, Fireworks, and local vLLM) works without changes. The OpenInference instrumentation hooks the client, not the endpoint.
Do I need a web search API key?
The routing agent uses Serper for web search. Without a key the web route is skipped and the agent still works for SQL and RAG, so you can complete every lesson and see every span type.
Pricing
Practice what you read with Pro.
Every lesson is free to read. Pro adds quizzes, flashcards, coding practice, certificates, notes and review on every course.
Unlock with Pro
Cancel anytime.
- Quizzes and practice for this course
- Practice, notes and certificates on every course
- New releases the day they ship
Still deciding?
After this course:
Observability is the first feature of a real AI application. Build it now.