Skip to content

Alerts & Incidents

This document explains how Holter determines the health of a monitor, what incidents are, and how the two interact.

Health Status

Every monitor has a health_status field that summarises its current condition:

StatusSeverityMeaning
DOWN4 (highest)The last check failed or a downtime incident is open
COMPROMISED3An SSL error or defacement incident is open
DEGRADED2The monitor is reachable but performing below expectations
UP1All checks pass and no open incidents exist
UNKNOWN0No checks have been run yet

When multiple signals disagree, the highest severity wins.

Logical State

logical_state is separate from health and controls whether the monitor is actively running:

StateMeaning
activeChecks run on schedule
pausedChecks are suspended; the monitor is not evaluated
archivedThe monitor is disabled and excluded from quota counts

A paused monitor retains its last known health status but is not re-evaluated until resumed.

Incidents

An incident is an open problem detected by the system. There are three types:

Downtime

Opened when an HTTP check fails. The monitor's health is set to DOWN for the duration. The incident closes when a subsequent successful check is recorded.

Defacement

Opened when the response body contains a negative keyword, suggesting the page content has been tampered with. The monitor's health is set to COMPROMISED.

SSL Expiry

Opened when an SSL certificate check detects a problem:

Root CauseResulting Health
Certificate expiredCOMPROMISED
Expiry within 7 days (Critical)COMPROMISED
SSL connection errorCOMPROMISED
Expiry within 15 days (Warning)DEGRADED

SSL expiry incidents are suppressed entirely when the Ignore SSL Errors toggle is enabled on the monitor. Any open SSL expiry incident is resolved the next time a check runs after the toggle is saved. See Monitor Settings.

Health Recalculation

After every check, Holter recalculates the monitor's health by combining two signals:

  1. Latest log status — the result of the most recent HTTP check
  2. Open incidents — the highest-severity status implied by any open incident

The final health_status is whichever of these two signals has the higher severity.

Dashboard Ranking

Monitors are ranked on the Dashboard so the most actionable items appear first:

  1. Active monitors ordered by severity (DOWN → COMPROMISED → DEGRADED → UP → UNKNOWN)
  2. Within the same severity tier, monitors with more open incidents rank higher
  3. Paused monitors (always last, regardless of their health status)

Incident History

Every incident is permanently recorded and accessible from the Incident History page. The history can be filtered by type, state (open or resolved), and date range. Each entry links to an Incident Detail page that shows the full root cause and the monitor snapshot captured when the incident was opened.

Released under the AGPL-3.0 License.