Skip to content

Escalations and windows

This page is the exact mechanics of how a notification policy’s escalation ladder and time windows decide when and how often to renotify.

levels: [
{contacts: ["alice"], threshold: 3, renotify_interval: "30m"},
{
contacts: ["oncall_hook", "bob", "carol", "dave"]
renotify_interval: "10m"
disabled_kinds: ["FLAPPING_START", "FLAPPING_STOP"]
},
]
  • threshold — how many notifications the previous level sends before escalating to this one. Defaults to 0 on every level; 0 means the ladder never escalates past that level.
  • renotify_interval — how often this level repeats while the problem stays open. Default 1h.
  • disabled_kinds — opt a level out of specific notification kinds: PROBLEM, RECOVERY, STATUS_CHANGE, FLAPPING_START, FLAPPING_STOP. A level handling only pages, say, can turn off flapping meta-notifications without a second policy.

levels itself must be non-empty — a policy with no levels isn’t a valid notification policy, it’s a config error.

period: [
{weekday: "monday", start: "09:00", end: "17:00"},
{weekday: "tuesday", start: "09:00", end: "17:00"},
]

Each window is one weekday plus a start/end pair, HH:MM 24-hour. Windows do not wrap past midnight — an overnight shift is two windows (22:0024:00 and 00:0006:00 on the next day). end may be 24:00; start may not. An empty period (the default) means “always notify” — no window restriction at all.

Outside every window in period, notifications for that policy are suppressed, not queued for later delivery once the window opens.

These are two independent clocks, not one. renotify_interval governs how often the current level repeats. threshold governs how many of those repeats happen before the next level engages. A level with threshold: 3 and renotify_interval: 30m means: notify, wait 30 minutes, notify again, wait 30 minutes, notify a third time — then the next level takes over.