Incident Management
When a monitor breaks, five things have to happen:
- An incident is opened that records what’s broken and when.
- Someone is identified as the on-call responder.
- They’re paged through their preferred contact methods.
- If they don’t ack, the page escalates to the next person.
- No one gets paged for known maintenance.
Site Qwality’s incident management module wires these together. You can also use any of them on its own: incidents without on-call, manual incidents with no monitors, notification channels with no on-call schedule.
The building blocks
Section titled “The building blocks” Incidents Record + timeline of an outage. Auto-opened by monitors of a service in auto mode, or created manually for non-monitor events.
Services Group monitors, pick the escalation policy, and decide whether failures open incidents.
On-call schedules Layered rotations in each schedule's timezone, with overrides for holidays and handoffs.
Escalation policies Ordered list of who to page next if no one acknowledges, with timeouts.
Notifications Channels (email, SMS, Slack, Teams, Discord, Telegram, webhooks) and groups, plus per-user contact methods.
Maintenance windows Silence specific monitors during planned work. One-time or recurring.
How they fit together
Section titled “How they fit together”Monitor alerts Incidents
┌──────────────────────┐ ┌──────────────────────────────┐│ Monitor flips status │ │ Monitor linked to a service │└──────────┬───────────┘ │ in auto mode fails, or you │ │ │ open an incident by hand │ ▼ └──────────────┬───────────────┘┌──────────────────────┐ ││ Notification groups │ ▼│ (account-level) │ ┌──────────────────────────────┐│ channels: email, │ │ Service's escalation policy ││ Slack, webhooks, ... │ │ targets: users + schedules │└──────────────────────┘ └──────────────┬───────────────┘ │ ▼ ┌──────────────────────────────┐ │ User contact methods │ │ (email, SMS, Slack DM) │ │ × notification rules │ └──────────────────────────────┘The two paths are separate: a monitor alert goes to the monitor’s notification groups whether or not an incident opens, and an incident pages people only through its service’s escalation policy.
Notification groups are account-level and set where a monitor’s alerts go. Contact methods and rules are per-user and set how each person is reached. The team configures routing once, and each engineer sets their own delivery preferences.
Manage it over the /v1 API
Section titled “Manage it over the /v1 API”| Resource | Routes |
|---|---|
| Services | GET and POST /; GET, PATCH and DELETE on /v1/ |
| Escalation policies | GET and POST /; GET, PATCH and DELETE on /v1/; GET and POST /; POST /; DELETE / |
| Incidents | GET and POST /; GET, PATCH and DELETE on /v1/; POST /, /resolve, /reopen and /updates |
curl "https://api.siteqwality.com/v1/incidents?status=active" \ -H "Authorization: Bearer $SITEQWALITY_API_KEY"- They take the same fields as
/service,/escalation_policyand/incident, and answer in the/v1shapes: lists newest first as{"data": [...], "next_cursor": "..."}, one resource as the object itself, errors asapplication/problem+json.Idempotency-Keyworks on everyPOSTandPATCH. - Policies in a list carry their levels. Incidents in a list carry their updates; read one incident for its monitors and participants.
statusfilters the incident list:active,resolvedorall(the default). PATCHchanges only the fields you send.DELETEanswers204, also when the resource is already gone.POST /v1/incidents/{id}/acknowledgetakes an empty body from a signed-in user. An API key or client sends{"acknowledged_by": "<user id>"}.- Services need
read:servicesandwrite:services; incidents and escalation policies needread:incidentsandwrite:incidents. - Service monitors, notification targets, incident participants, postmortems, action items and on-call schedules stay on the older routes for now.
When NOT to use this
Section titled “When NOT to use this”- Don’t page for transient flakes. Raise the monitor’s confirmation settings so a single failed check does not count as down. A notification group’s send delay holds back the monitor alert (HTTP monitors, heartbeats and browser checks), but it does not stop an incident from opening. See Notification groups.
- Don’t escalate everything. Reserve escalation policies for high-urgency incidents. For warnings, a single Slack channel notification is enough.
- Don’t put your CTO on every escalation policy. Build escalation chains with clear ownership: primary on-call → secondary → engineering manager.
See also
Section titled “See also”- Status pages: publish incidents externally.
- Integrations: connect Slack, Teams, Discord, Telegram, webhooks.