WAP · Alert Rule Design

200 alerts fired.
Only 6 needed you.

The biggest enemy of an alerting system isn't a missed alert — it's noise. When hundreds of notifications a day train a team to stop reading them, the one that matters gets buried. This post breaks down how to design alert rules in the Whaleal Platform alerting module: from what a single rule should contain, to severity, suppression and escalation, filtering out noise one layer at a time.

Raw threshold crossings
every time a metric crosses the line
1,248
After dedup & grouping
one problem, one alert
213
After duration filter
transient blips no longer fire
38
Actually needs a human
routed as P1 / P2
6

Illustrative numbers to show what each layer does · not statistics from any real cluster

01 · Alert Fatigue

Too much noise, and alerting stops working

Alert fatigue isn't a team that "doesn't care enough" — it's a design problem. When a notification is wrong nine times out of ten, the natural human response is to stop reading it carefully, including the one time it's right.

CPU spikes to 95% for a moment, drops back to 40%, and fires an alert that resolves itself within thirty seconds
One host goes down and every MongoDB instance on it sends its own alert — a single failure becomes twenty notifications
During planned maintenance every node restarts and the alert channel gets flooded
02 · Rule Anatomy

A good rule is more than a threshold

"Alert when CPU exceeds 80%" is only half a rule. A rule that actually interrupts people less answers five questions at once.

Metric
Replication lag
What are we watching
→
Condition
Greater than 10 s
How high is abnormal
→
Duration
For 2 minutes
Filter out transient blips
→
Severity
Warning
Decides how we respond
→
Recipient
On-call DBA
Who should see it
When replication lag is greater than 10 seconds and stays that way for 2 minutes, notify the on-call DBA at Warning severity.
Rule of thumb

The most commonly skipped — and most effective — noise reducer is the duration. Almost every metric has momentary spikes; requiring it to stay over the line for a short window filters out a large share of notifications nobody needed to act on. Treat any threshold number as a starting point and tune it against your own cluster's baseline.

03 · Severity Tiers

Different problems, different paths

Two alerts can both be "over threshold" and still differ wildly in urgency — a disk about to fill versus CPU slightly elevated. The point of tiers: the more urgent it is, the louder it should be; the less urgent, the quieter.

LevelTypical meaningExpected responseChannel example
P1 · Critical Business is, or is about to be, affected — e.g. primary unavailable, disk nearly full Act immediately; escalate if unacknowledged Phone call / urgent IM push
P2 · Warning Trending badly but not yet affecting the business — e.g. sustained replication lag, falling cache hit ratio Follow up during working hours IM group message
P3 · Info Worth knowing, no immediate action — e.g. a small rise in slow-query ratio Review in aggregate Email / daily digest
04 · Suppression & Silencing

When it should be quiet, keep it quiet

Even well-designed rules can't stop "one incident triggers a pile of alerts". Suppression mechanisms make sure one event is announced only once.

Dedup & Grouping

While a rule keeps crossing its threshold without recovering, notify once, then send a single "resolved" message — not a new alert every collection cycle.

e.g. disk usage stays above threshold: notify only on the first crossing

Maintenance Windows

For planned restarts, upgrades and migrations, define a silence period in advance. Related alerts stay quiet during the window and monitoring resumes automatically afterwards.

e.g. Saturday-morning upgrade: silence that cluster for 2 hours

Dependency Suppression

When an upstream component is already failing, there's no need to notify separately about everything downstream. Report the root cause first and fold the derived alerts under it.

e.g. host down: don't also report each instance on it as unreachable
05 · Escalation

Sent doesn't mean seen

The most dangerous case isn't having no alert — it's an alert sent to someone who happened to be unreachable. Escalation makes sure a critical alert always has an owner.

T0
T + 0 min
Notify on-call

A P1 alert fires and the current on-call DBA is notified right away.

T1
T + 15 min
Escalate if unacknowledged

No acknowledgement: notify the backup on-call and raise the reminder intensity.

T2
T + 30 min
Notify the team lead

Still no response: escalate to the team lead so it never falls through the cracks.

Note

The tiers and intervals here are common starting examples. For your team, set them according to your own on-call process and how much delay the business can tolerate.

READY?

A good alerting system
makes you look less, not more

From rule design to suppression and escalation, the goal of the Whaleal Platform alerting module is simple: make every notification worth taking seriously.