🔭Observability: The Three Pillars
Build the mental model that turns three noisy data sources — metrics, logs, and traces — into a single evidence trail, then design an observability plan for a real service.
Phase 1Monitoring, Observability, and the Three Pillars
Separate monitoring from observability and meet the three pillars
Monitoring answers known questions. Observability answers new ones.
6 minMonitoring answers known questions. Observability answers new ones.
Metrics, logs, and traces — three lenses on one event
6 minMetrics, logs, and traces — three lenses on one event
High cardinality is a feature, not a bug
6 minHigh cardinality is a feature, not a bug
The wide event is the atomic unit of observability
7 minThe wide event is the atomic unit of observability
Phase 2Instrumenting a Tiny App End-to-End
Instrument a small app with metrics, logs, and traces
Instrument once, export anywhere — the OTel bargain
7 minInstrument once, export anywhere — the OTel bargain
The four golden signals outperform a hundred custom metrics
6 minThe four golden signals outperform a hundred custom metrics
Log a structured event per request, not a novel
6 minLog a structured event per request, not a novel
A trace is the story of one request across every service
7 minA trace is the story of one request across every service
One click from a metric spike to the exact log line
7 minOne click from a metric spike to the exact log line
Phase 3SLOs, Alerts, and On-Call in Practice
Wire SLOs, alerts, and on-call into a coherent practice
Your p99 latency alert is firing every morning at 9:03
7 minYour p99 latency alert is firing every morning at 9:03
The new feature ships Thursday. The error budget is empty.
7 minThe new feature ships Thursday. The error budget is empty.
The alert fires. The runbook link is a 404.
7 minThe alert fires. The runbook link is a 404.
Find the missing observability, not the missing person
7 minFind the missing observability, not the missing person
Phase 4Design an Observability Plan for a Real Service
Design an observability plan for a real service
Your one-page observability plan for a service you own
20 minYour one-page observability plan for a service you own
Frequently asked questions
- What's the difference between monitoring and observability?
- This is covered in the “Observability: The Three Pillars” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- Do I really need all three pillars or can I just use logs?
- This is covered in the “Observability: The Three Pillars” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- How do metrics, logs, and traces connect during an incident?
- This is covered in the “Observability: The Three Pillars” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- What's a good SLO for a typical web service?
- This is covered in the “Observability: The Three Pillars” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
- When should I start adding distributed tracing?
- This is covered in the “Observability: The Three Pillars” learning path. Start with daily 5-minute micro-lessons that build from fundamentals to hands-on application.
Related paths
🐳Docker Containers Basics
Build the mental model first, then the commands — from containers vs VMs through images, layers, volumes, and networking to composing a multi-service app.
🧪Property-Based Testing
Go beyond example-based tests — learn to express what your code should always do, then let a framework find the inputs that break it.
🦀Rust's Ownership Model
Build a working mental model of Rust's ownership system — from stack vs heap intuition through borrow checker mastery — so you can read and write Rust without fighting the compiler.
💻Elixir Pattern Matching
Stop reading `=` as assignment and start using it as Elixir's core flow-control tool — through function heads, guards, and `with` — until you can rewrite a tiny command parser without a single `if`.