Alerts that matter

Play this lesson

40 buzzes a night

In Priya's first week, the phone of whoever was responsible that night buzzed 40 times: "CPU over 80% on match-eu-3". Every time, players were fine.

After a week of that, people stop reading alerts. That is alert fatigue, and it is how a real problem gets missed. Google's SRE book notes that a person can only react with a sense of urgency a few times a day before getting tired.

What deserves a page

A page is an alert that calls a person right away, even at night. The SRE book asks of every page: is it urgent, actionable and visible to users, now or soon?

Everything else becomes a ticket, fixed in working hours.

Page or ticket

Which of these should wake Remy at 3 a.m.?

  1. Join success has been under 95% for 10 minutes
  2. CPU on one match server is above 80%
  3. The log disk will be full in three weeks
Show the answer

Join success has been under 95% for 10 minutes

Failing joins are urgent, and players feel them now. High CPU with happy players is not a symptom, and the disk can be a ticket for working hours.

Four ways to judge an alert

These come from Google's SRE workbook. The CPU alert had terrible precision.

Burn rate

The workbook alerts on the error budget, the share of requests an SLO allows to fail. Burn rate is how fast the service spends that budget compared with the SLO. With a 99.9% SLO over 30 days:

It is the error rate divided by the error rate the SLO allows.

Do the math

Shard Garden's join SLO is 99.9%. Right now 2% of joins fail. What is the burn rate?

  1. 20
  2. 2
  3. 200
Show the answer

20

The SLO allows 0.1% to fail. 2% divided by 0.1% is 20, so a 30-day budget would last a day and a half.

Two windows

The workbook's recommended starting point:

Each rule also checks a short window, 1/12 as long: 5 minutes for the 1-hour rule. Both must be over the limit, so the alert stops soon after a fix instead of firing for another hour.

True story: the warnings nobody received

On 31 January 2017, a GitLab engineer meant to remove data from a secondary database, but the command ran on the primary. GitLab lost about six hours of data: at least 5,000 projects, 5,000 comments and roughly 700 users.

The backups had been failing too. Each failure sent an email, but the emails were rejected by the receiving server. GitLab wrote that it was never aware of the backups failing until it was too late. Afterwards it added Prometheus monitoring for backups.

An alert path needs testing too.

Source: GitLab: Postmortem of database outage of January 31 (2017), about.gitlab.com

Quick check

If an alert hasn't fired for months, the thing it watches must be healthy.

Show the answer

False

Silence can also mean the alert path is broken, as GitLab found. Teams test their alerts on purpose, and some send a regular "still alive" signal, with an alert for when it stops.

Someone has to answer

A good page reaches the right person with a clear problem. Next: who that person is, and what they have in hand when the phone buzzes.

Bolt says: Next: on-call rotations and runbooks.

Fact-checked 11 October 2026