On-call at a small company usually fails for one reason: too many pages, or pages that wake the wrong person at the wrong time. Google's SRE guidance is blunt about this. Alerting should be driven by what users experience, and a page should mean "a human must act now," while everything else belongs in a ticket or a dashboard (Monitoring Distributed Systems). The same argument is made more directly in Google's write-up on symptom-based alerting: users do not care why something is broken, only that it is broken (Why Focus on Symptoms, Not Causes?).
That gives you a decision rule you can apply in an afternoon. For each existing alert, ask: would a user notice this within the next few minutes? If yes, it can page. If no, it goes to a channel, a ticket or a dashboard. A CPU graph crossing a threshold is a cause. A checkout page returning errors for real sessions is a symptom.
Build the short list of paging signals first. For most small companies it is four to six:
| Signal | Pages a human when | Read from | Typical human action |
|---|---|---|---|
| HTTP 5xx rate | Over threshold for a sustained window on the main app | Load balancer or APM error rate | Roll back, fail over, scale |
| p95 latency on critical paths | Above target for several minutes | APM or edge timing | Find the slow dependency |
| Failed login or auth errors | Spike relative to baseline | Auth service logs | Check provider status, key expiry |
| Payment or order failures | Any sustained failure on the checkout path | Payment provider webhooks | Check provider, retry queue |
| Background job backlog | Queue age past a guardrail | Queue depth metric | Add workers, drain, pause producers |
| Backup or restore failure | First failure of the nightly job | Backup system | Re-run, verify, escalate next day |
Everything else (disk headroom on a node that has redundancy, a single pod restarting, a certificate expiring in 20 days) is a ticket or an automation target. The goal is to automate causes so that only symptoms remain (Why Focus on Symptoms, Not Causes?). Nobody on a small team is going to automate everything, so pick the three noisiest causes and write a script for those.



