Escalation policies: page the next person when an incident is not acknowledged #6
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Part of #1. Depends on teams (policies are per team and target team schedules).
Today
currentOnCall,internal/api/incident_store.go:118).internal/api/notifier.goticks every 30s over anotificationsoutbox, with exponential backoff from 30s to 15m and at most 8 attempts.enqueueRemindersre-pages the same topic everyTERDUT_NOTIFY_REPEAT(15m) while the incident is stilltriggered.Scope
Model
escalation_policies(one per team, at least to start) andescalation_levels: position, timeout, targets.repeat_count: when the chain runs out, run it again N times, then page the team's fallback topic.TERDUT_NTFY_FALLBACK_TOPICto a per-team setting.Behaviour
triggered, advance to the next level and enqueue notifications for its targets.incident_eventsgainsescalated(with the level and who was paged), shown in the timeline UI.incident_ack_tokens,notify_ack.go) has to work for every escalation target, not just the first one paged.UI
Done when
An unacknowledged incident pages level 1, then level 2 after its timeout, stops the moment someone acknowledges, and the timeline shows each step. Covered by tests with a fake clock rather than by waiting.