Skip to content

Monitor a site's availability

The availability monitor fetches a page of a hosting over HTTPS on a schedule, from the node that serves it, and alerts you when it fails repeatedly. It also alerts when the site recovers. The Monitoring page lists every monitored site in the cluster, worst first.

Monitoring is off for a site until you turn it on.

  • You can manage monitoring for the hosting. Owners and Administrators can for every site.
  • For email alerts, the node that serves the site has an outgoing relay. See Set up the outgoing mail relay.
  • For Slack or a JSON webhook, you have the URL.
  1. Open Hostings in the sidebar, click the site, then open the Monitoring & logs tab.
  2. In the HTTP availability monitor card, switch on Enable HTTP availability monitoring.
  3. Set the probe:
Field Default Range Meaning
URL path to probe / any path The path requested on the site. A path without a leading / gets one
Interval 60 seconds on a site created here, 300 when never set 60 to 3600 Time between probes
Alert after N fails 3 1 to 20 How many failed probes raise an alert
  1. Under Alert channels, fill any combination of the three below. Channels left blank are skipped.
    • Email recipients: addresses separated by commas. Email goes out only when the node has a relay.
    • Slack incoming webhook URL: must start with https://. Once stored the URL is never shown again, and the field is replaced by the pill connected and a Remove button. To use another channel, remove the old webhook, then add the new URL.
    • Generic JSON webhook URL: http:// or https://. Hyperion posts a JSON body on every alert and every recovery:
{"kind":"DOWN","domain":"example.com","url_path":"/","resolved":false,
"consecutive_fails":3,"http_status":503,"response_ms":412,"error":"HTTP 503"}

kind is DOWN or RESOLVED.

  1. Click Save monitoring.
  2. Click Probe now to run one probe immediately. It records a sample even when monitoring is disabled, so you can try a path first.

To copy the alert channels of a plan, use Import from profile, choose the profile and click Import. It needs the profiles permission. The profile’s alert email addresses are added to the ones already on the monitor. A Slack webhook on the profile replaces the monitor’s webhook. Interval, path and the JSON webhook stay as they are. Anything you typed and have not saved is lost, so save first.

Every 60 seconds the node checks which monitors are due. For each one it requests https://<domain><path> with curl, following up to 3 redirects, with a 5-second connect timeout and 15 seconds in total. The request is a full GET with a unique query string and Cache-Control: no-cache, so a page cache cannot answer for a dead PHP. The probe does not validate the site’s TLS certificate, so an expired or mismatched certificate does not fail it. The monitor raises no certificate alerts. Failed certificate renewals raise their own notifications.

A probe succeeds when the status is 2xx or 3xx and the page is not a known error page. These count as failures:

  • any other status;
  • a 5xx status, or a 200 with an empty body (a white screen), or a 200 whose first 64 KB contain WordPress’s “critical error on this website” page, “error establishing a database connection”, a PHP fatal or parse error, or “allowed memory size of”: these are hard failures;
  • when the path is /, a second probe of /?s=hyperion-probe renders a different template. It counts only when it returns a 5xx or an error page. A 404 there does not.
  • An alert fires after Alert after N fails failed probes in a row, or N failures among the last 2 × N probes, so a site that fails every other request alerts too. A hard failure alerts after at most 2 in a row.
  • It resolves after 2 successful probes in a row (or 1 when N is 1). Failures from an incident that has resolved are not counted again.
  • A suspended hosting is not probed. Its card reads “paused — hosting suspended”, and probing resumes when you resume the hosting.

Each alert goes to the notification bell for administrators (topic Uptime), to Email recipients with the subject [Hyperion] DOWN — <domain> or [Hyperion] RESOLVED — <domain>, to the Slack webhook and to the JSON webhook. The email is logged under kind Uptime alert. See Read your notifications.

  1. Open Monitoring in the sidebar, under Overview. A dot beside the entry is green while every monitor is healthy and turns into a red count when one alerts.
  2. Read the three tiles: Alerting, Healthy and No samples yet.
  3. The table sorts alerting sites first, then the lowest success rate. Columns: Domain, State, Success · 24 h, Avg ms, Samples · 24 h, Path, Node and Last probe.

State reads “ALERTING · N fails”, “NO SAMPLES” or “OK”. Success · 24 h is green at 99% and above, orange from 95%, red below. The figures cover the latest 288 samples, which is 24 hours at the default interval. Click a domain to open its Monitoring & logs tab.

Only an Owner or an Administrator sees this page. Other roles use the card on each of their hostings. A notice titled “Incomplete view.” names nodes whose answer was discarded because it failed authentication, and their sites are missing from the table.

Terminal window
sudo hctl monitor list
sudo hctl monitor get example.com
sudo hctl monitor probe example.com

monitor list shows alert state, success rate, average response time and sample count over the last 24 hours.

  • The card pill reads healthy (green) and the Monitoring & logs tab shows a green dot.
  • The probe bars show the latest 96 samples. Bar height encodes response time, and a red bar is a failed probe.
  • Probe now adds a bar.
  • The site appears on Monitoring with state OK once it has a sample.
  • “No samples yet. Save your settings and wait one interval, or use Probe now.”: nothing has been probed. Save the form and wait.
  • “slack webhook must start with https://” and “webhook URL must start with http:// or https://”: fix the URL.
  • A site alerts although it loads in your browser: the probe requests the path from the node itself and judges the page body. Open the failing path, and check error.log under Logs on the same tab.
  • A reachable site never alerts: the alert needs the configured number of failures. Lower Alert after N fails or Interval.
  • The monitor sends no email: the node has no relay, or Email recipients is empty. Alerts still reach the bell.
  • “No monitors yet” on the Monitoring page: no hosting has monitoring switched on. Switch it on from the site’s Monitoring & logs tab.