Latency, traffic, errors, saturation — the four golden signals are a great start. But the signal that actually predicts your next outage is usually the one nobody graphs.

Google's four golden signals — latency, traffic, errors, and saturation — are the best default dashboard in our industry. They are also incomplete for most real systems.

The four, briefly

Latency tells you how long requests take. Traffic tells you how many there are. Errors tell you how many fail. Saturation tells you how close to a limit you are running. Instrument these and you can answer "is it broken?" for almost anything.

The fifth signal: dependency health

Modern services rarely fail on their own — they fail because something downstream did. The signal that predicts your incidents is the health of the things you call: the databases, queues, and third-party APIs on your critical path.

  • Graph the error rate and latency of each dependency, not just your own service.
  • Alert on the derivative — a dependency getting slower is an early warning before it gets unavailable.
  • Track fallback rates: how often you serve degraded responses is a leading indicator of user pain.

Wire it up once

If your client libraries emit spans, you already have this data — you just have not aggregated it. A single query rolls dependency latency up by callee:

traces
| where kind == "client"
| stats p95 = percentile(duration, 95), errors = count_if(status == "error")
        by peer.service
| sort p95 desc

Add that panel next to your golden signals and your dashboard stops describing the past and starts predicting the future.