Skip to content

feat(incidents): Add statuspage reminder for P0/P1 incidents#209

Draft
rgibert wants to merge 2 commits into
mainfrom
rgibert/send-statuspage-reminders
Draft

feat(incidents): Add statuspage reminder for P0/P1 incidents#209
rgibert wants to merge 2 commits into
mainfrom
rgibert/send-statuspage-reminders

Conversation

@rgibert
Copy link
Copy Markdown
Member

@rgibert rgibert commented May 22, 2026

Schedules a one-shot Slack reminder 15 minutes after a P0/P1 incident is declared (or escalated to P0/P1). If no Statuspage update has been posted by then, the bot posts a reminder to the incident channel noting the 20-minute SLO for initial Statuspage messages.

Uses Django-Q's Schedule.ONCE with get_or_create on a per-incident name (statuspage_reminder_{id}) so duplicate scheduling is idempotent. The task re-checks conditions at execution time -- severity, status, and whether a STATUSPAGE ExternalLink exists -- so it gracefully no-ops if the situation changed since scheduling (e.g., statuspage already posted, incident resolved, severity downgraded).

Hooks into both on_incident_created and on_severity_changed (escalation path only). No migration required since Schedule rows are created dynamically at runtime rather than as static infrastructure.

Note: executed Schedule rows (repeats=0) accumulate in the django_q Schedule table over time. This is harmless but may warrant periodic cleanup later.

Partially resolves RELENG-587

Agent transcript: https://claudescope.sentry.dev/share/7R-HB5u__CjXYBp0OcGlGpES9oOjHcOMt6PSTK2QT7Y

@linear-code
Copy link
Copy Markdown

linear-code Bot commented May 22, 2026

RELENG-587

@rgibert rgibert self-assigned this May 22, 2026
Schedule a one-shot reminder 15 minutes after incident declaration
(or severity escalation to P0/P1) that posts to the incident Slack
channel if no Statuspage update has been created yet. The reminder
notes the 20-minute SLO for initial Statuspage messages.

The task checks conditions at execution time (severity, status,
existing Statuspage link) so it gracefully no-ops if the situation
has changed since scheduling.

Co-Authored-By: Claude <noreply@anthropic.com>

Agent transcript: https://claudescope.sentry.dev/share/o9ZBpkn9n875C7FLtNrsLJSce5IgxuPmg6NpIHTinQI
@rgibert rgibert force-pushed the rgibert/send-statuspage-reminders branch from 0fd23eb to fceaf55 Compare May 22, 2026 19:25
Add slash_command field to SlackConfig (defaults to "/inc") and use it
in the statuspage reminder message instead of hardcoding "/ft".

Co-Authored-By: Claude <noreply@anthropic.com>

Agent transcript: https://claudescope.sentry.dev/share/JwMQDLS3v9X34uhTidGcdLl3C8chDYq3yp_YEr_z2UE
Comment thread src/firetower/incidents/hooks.py
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant