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.
Before you start
Section titled “Before you start”- 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.
Turn on the monitor
Section titled “Turn on the monitor”- Open Hostings in the sidebar, click the site, then open the Monitoring & logs tab.
- In the HTTP availability monitor card, switch on Enable HTTP availability monitoring.
- 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 |
- 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://orhttps://. 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.
- Click Save monitoring.
- 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.
What a probe does
Section titled “What a probe does”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
5xxstatus, or a200with an empty body (a white screen), or a200whose 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-proberenders a different template. It counts only when it returns a5xxor an error page. A404there does not.
When an alert fires
Section titled “When an alert fires”- 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.
Read the cluster page
Section titled “Read the cluster page”- 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.
- Read the three tiles: Alerting, Healthy and No samples yet.
- 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.
From the command line
Section titled “From the command line”sudo hctl monitor listsudo hctl monitor get example.comsudo hctl monitor probe example.commonitor list shows alert state, success rate, average response time and sample count over the last 24 hours.
Check that it worked
Section titled “Check that it worked”- 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.
If it fails
Section titled “If it fails”- “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.