Observability Deep Dive
Welcome
Four courses in this catalog teach you to build and run systems. This one teaches you to see them. Metrics, logs, and traces — collected by Prometheus, Loki, and OpenTelemetry, read through Grafana, and turned into decisions by alerting, SLOs, and a working incident practice. One fictional company, Harborline, goes from flying blind to answering any question about production in minutes — and you build every piece of that stack with it.
About This Course
Your Kubernetes cluster exposes metrics, your Linux hosts write logs, and your load balancer counts requests — and none of it answers the only question that matters at 2 a.m.: why is checkout slow, and for whom? Observability is the discipline that turns raw telemetry into answers. This course teaches the whole pipeline — instrument, collect, store, query, visualize, alert — run once for each of the three signals: metrics, logs, and traces. The tools are the open-source standard stack: Prometheus and PromQL, Grafana, Loki, and OpenTelemetry with Tempo.
To keep it concrete, the whole book follows one company. Harborline is a ferry-booking service with five services, a PostgreSQL database, a Redis cache, and a complaint nobody can verify: checkout "sometimes takes forever" on Saturday mornings. In Chapter 1 the only tools are ssh and docker logs, and the complaint is unanswerable. Chapter by chapter you instrument the system with Mara, Harborline's SRE, until the mystery falls in Chapter 8 — to a single trace no metric or log could have produced. The examples accumulate instead of resetting, so by the end you have built one coherent stack, not fifty disconnected demos.
The second half turns data into decisions: alerts that page on symptoms rather than causes, SLOs and error budgets that make reliability a negotiable number, the same stack re-plumbed on Kubernetes, and a full 02:40 incident run from page to blameless postmortem in 38 minutes — because of everything built before it. The book closes with the wider ecosystem: continuous profiling, eBPF, synthetics, the managed platforms, and the cost engineering that keeps the observability bill from chasing the compute bill.
Who This Is For
Engineers who run something in production — or are about to — and want to stop debugging by ssh-archaeology. It assumes you are comfortable with Linux and a shell (the Linux Deep Dive covers that), know what containers are (the Docker Deep Dive covers that), and understand HTTP and basic networking (the Networking Deep Dive covers that). Kubernetes is needed only for Chapter 11, and that chapter leans on the Kubernetes Deep Dive rather than re-teaching it. No prior Prometheus, Grafana, or tracing experience is assumed — the stack is built from zero.
What You Should Already Know
- Comfort with Linux and the command line — running commands, editing configs, reading output
- What a container is and how to run one — the whole lab runs on Docker
- HTTP basics — requests, responses, status codes, and what a load balancer does
- Reading simple Python — the instrumentation examples use it, but never cleverly
How the Course Is Built
The fourteen chapters build in a deliberate arc. First the foundations: what observability is, the three signals, and the three costs — cardinality, sampling, retention — that shape every design decision in this field. Then the metrics stack, one layer per chapter: Prometheus, PromQL, code-level instrumentation, and Grafana. Then logs into Loki and traces through OpenTelemetry into Tempo — where the correlated stack pays off and the Saturday mystery falls. Then decisions: alerting, SLOs and error budgets, Kubernetes, and incident response. The last two chapters look outward — profiling, eBPF, synthetics, build-versus-buy, cost — and close with the anti-patterns and the capstone walkthrough of the whole pipeline.
Every topic has the same shape: an opening that states what the thing is and why it exists, the mechanics explained with real configs and queries, a comparison box where two things are genuinely confused, the specific mistakes that cause real outages and real bills, the practices that prevent them, and a short knowledge check. It is written senior-engineer to peer — direct, specific, and honest about tradeoffs.
Chapter Map
Disclaimer
This course is an independent educational project created and maintained by Sergey Okinchuk. It is provided for learning and reference purposes only.
No affiliation. This course is not affiliated with, sponsored by, endorsed by, or officially connected to any company, product, or project mentioned — including Prometheus, Grafana Labs, the OpenTelemetry project, the Cloud Native Computing Foundation, Datadog, or any cloud provider. All opinions, interpretations, and recommendations expressed are those of the author.
Trademarks. Product and project names referenced — including "Prometheus", "Grafana", "Loki", "Tempo", "OpenTelemetry", "Kubernetes", "Datadog", "New Relic", and "Dynatrace" — are the property of their respective owners. Use of these names is for identification and educational purposes only and does not imply any endorsement.
Not operational advice. This material teaches durable concepts and practices for observing systems, not turnkey instructions for any specific environment. Configuration examples are simplified for learning. Always consult official documentation and test in a safe environment before making changes to production systems.
Accuracy and currency. The observability ecosystem evolves continuously — tools, defaults, and details drift over time. Facts in this course reflect the author's understanding at the time of writing and may not be current. Always verify against authoritative sources before acting.
No warranty. This material is provided "as is" without warranty of any kind. The author accepts no liability for any loss or damage arising from reliance on the content.