Alerts and on-call

Alerts

An alert is a signal that something is wrong with one of your resources, for example a monitor that is down. Spectate fires the alert, sends it through the escalation paths of the resource, and resolves it when the problem is over. An alert is not an incident. An incident is the work your team does on a problem, with updates, roles and a postmortem.

Where alerts come from

Every alert has a source type (source_type in the API). The source type also sets the default severity.

Sourcesource_typeSpectate fires an alert whenSeverity
Uptime monitorsuptimeA monitor is down: a check failed, and a second check from the same region about 5 seconds later also failed.critical
PerformanceperformanceThe response time is over the threshold, or deviates from normal.high over the threshold, medium for a deviation
CertificatescertificateA TLS certificate is invalid, expires soon, or its issuer changed.Depends on the problem, low for an issuer change
DNS monitorsdnsThe DNS answer changed, if the monitor alerts on changes.low
Hostshost_metricA metric condition holds, a health check fails, or the host stopped sending data.Set per condition and per health check. high for no data.
DomainsdomainA domain expires soon, has expired, or its registration changed.medium, critical when expired, low for a change
Status pagesstatus_pageVisitors report problems over your threshold, or traffic spikes.high for reports, medium for a traffic spike
Alert sourcesexternalAn external tool, such as Grafana or Sentry, sends an alert.From the tool, else the source's default (high unless you change it)

States and severity

An alert has two statuses (status):

StatusMeaning
firingThe problem is ongoing. The alert escalates until someone acknowledges it.
resolvedThe problem is over, or someone resolved the alert by hand.

Acknowledged is not a separate status. An acknowledged alert is still firing, with a value in acknowledged_at. The dashboard shows it as acknowledged.

Severity (severity) is one of four values:

SeverityUse
criticalCustomers are affected right now.
highSerious, needs attention soon.
mediumShould be looked at.
lowInformational.

One alert per problem

Spectate does not fire a second alert for a problem that already has a firing alert. For alerts from Spectate itself, a resource has one firing alert per source type and title. For example, a monitor that stays down keeps one uptime alert, whatever the number of failed checks.

For alert sources, the key is the dedupe key (dedupe_key) that the tool sends. One firing alert exists per alert source and dedupe key. A repeat of the same key keeps that alert firing.

Find alerts

Select Alerts in the dashboard. The tabs Firing, Resolved and All filter by status. You can also filter by source and by severity.

Open an alert to see what fired it, the labels and links that an external tool sent, and the Escalation panel. The Escalation panel shows each step of the escalation path, when it ran, and why a step was skipped.

Acknowledge an alert

Acknowledge an alert to tell your team that you work on it. Acknowledging stops the escalation: steps that did not run yet do not run. The alert keeps firing until its source recovers or someone resolves it.

  1. Open the alert in the dashboard.
  2. Select Acknowledge.

You can also acknowledge an alert in these places:

Spectate records who acknowledged the alert. Slack and Telegram messages about the alert change to show it.

Resolve an alert

Most alerts resolve on their own. When the monitor is up again, the metric is back under its threshold, or the alert source sends a resolve, Spectate resolves the alert.

To resolve an alert by hand:

  1. Open the alert in the dashboard.
  2. Select Resolve.
  3. Select Resolve alert to confirm.

If the problem is still there, the next check fires a new alert. An alert about a change, for example DNS records changed for api.example.com, has no recovery. Resolve it by hand after you examine the change.

When an alert resolves, by hand or on its own, Spectate does these things:

  • It stops the escalation.
  • It sends a resolved notification to every enabled channel that got the alert.
  • It sends an email to each on-call member that Spectate paged for the alert.
  • It updates the alert messages in Slack and Telegram.

Spectate records who resolved an alert by hand (resolved_by). For an alert that resolved on its own, resolved_by is null.

Delete an alert

You can delete resolved alerts only. Resolve a firing alert first.

  1. Open the resolved alert.
  2. Select Delete.
  3. Select Delete alert to confirm.

Spectate deletes the alert and its escalation history. Incidents that the alert opened stay. Messages that Spectate posted in Slack or Telegram stay in their channels.

Who can do what

ActionOwnerManagerAdminMemberBilling
See alertsYesYesYesYesNo
Acknowledge and resolveYesYesYesYesNo
Delete resolved alertsYesYesYesNoNo

See teams and roles for all permissions.