software-engineer-blog logoSoftware Engineer Blog

Module 9 · Delivery and operations

Unit 34 of 49

Unit 34 · Module 9 · Delivery and operations

Monitoring, observability and tracing

Every dashboard is green during the outage. That is the problem.

Unit 34 of the free 49-unit computer-science course, in delivery and operations. 7 topics to watch or read, 3 interview questions answered in full and a short self-check.

Watch or read

7 topics make up this unit. Take each one whichever way suits you, then answer the questions below.

Monitoring vs observability

Your dashboards are green during the outage because monitoring answers questions you asked in advance. Observability keeps the question open. Learn the mechanism, the cardinality trap, and when to use which.

ReelRead

Distributed tracing

Distributed tracing mints one trace ID at the edge, propagates it through every service, and reassembles spans into a waterfall to show exactly which hop ate the latency. Compare: logs alone vs. traces with parent pointers.

ReelRead

Chaos engineering vs load testing

Read

Interview questions this unit unlocks

Asked out loud, answered out loud. Read the answer, then say it in your own words.

What is the difference between monitoring and observability?

Monitoring answers questions you thought of in advance: you defined the dashboards and the alerts, and they tell you when a known thing breaks. Observability is whether you can answer a question you did not anticipate, from the data you already emit, without shipping new code. Every dashboard being green during an outage is the signature of a system that is monitored and not observable.

The practical test: can you ask "which customers on this plan saw errors in this region in the last ten minutes" without a deploy? If not, your telemetry is too aggregated.

Logs, metrics and traces — when do you reach for each?

Metrics are cheap numbers over time — they tell you *that* something is wrong and are what you alert on. Traces follow one request across services and tell you *where* the time or the error went. Logs are the detail of a single event and tell you *why*. The workflow is metric to trace to log, from cheap and aggregate to expensive and specific — and the thing that makes it work is a request id present in all three.

Why alert on p99 rather than the average?

Because the average hides everyone who is having a bad time. A service with a 40 ms mean and a 4-second p99 is failing one request in a hundred badly enough for the user to leave, and the mean will never show it. The tail is also what compounds: a request that fans out to ten services sees the tail of every one of them, so a p99 in a dependency becomes a common experience upstream.

Self-check — 3 questions

Answer alone, at 2am, with no interviewer in the room.

Part of Everything You Need to Know About Computer Science.