Docs
Monitor types
One monitor is one target checked on your interval. Each primary monitor takes one slot of your plan; the extra checks that come with it (SSL, domain expiry, DNS history, PageSpeed) do not.
Website (HTTP / HTTPS)
A GET request to the page, following up to 5 redirects.
- Up means a
2xxor3xxanswer (or the exact status you set). - Keyword: optionally require a word on the page, or require that a word is not there (useful for "maintenance" or error text).
- We record the server response time for every check, split into DNS, connect, TLS and time to first byte. The weight of the whole page (JavaScript, CSS, images and fonts) comes from Google PageSpeed (see performance).
Suspended hosting, parked domains and default pages
Some broken sites still answer 200. We recognise three kinds and show them as an outage, because visitors do not see the site either:
- Hosting suspended: the provider shows a suspension notice instead of the site (cPanel, DirectAdmin). Usually an unpaid invoice or exceeded resources.
- Parked domain: a parking or for-sale page (GoDaddy, Sedo, ParkingCrew, Bodis, Dan.com, Afternic, HugeDomains, Namecheap). Usually a lapsed registration or DNS that points to the registrar.
- Default server page: the default page of nginx, Apache, IIS, cPanel, Plesk or DirectAdmin. Usually missing site files, DNS pointing to the wrong server, or a reset server configuration.
We only match exact signatures (the address the panel redirects to, the page title of a default page, the parking service's address), never words in your content, so a page that writes about suspensions is not affected. A newly added site that already shows one of these pages is unfinished setup: no incident until it shows the real site. If you monitor a server that has no site on purpose, turn on Settings → Default server page is expected. Suspension and parking pages always count as an outage.
Password-protected sites
Staging and development sites are often behind HTTP Basic auth. Without the password such a site answers 401, and we show that as password required, not as an outage.
- Enter the username and password when you add the site (The site is password protected), or later in the monitor's Settings → Password protection. We send them with every check as an
Authorizationheader. The password is stored encrypted and never shown again. - If the site rejects the password we send (it was changed), the monitor shows password rejected.
- A newly added site that asks for a password is unfinished setup, not an outage: no incident until you enter it.
- A rejected password is a warning, not an outage: no SMS, and it does not count against uptime, because we cannot see whether the site is up.
- A site that was open and suddenly asks for a password is an outage: visitors cannot open it either.
- Only Basic auth is supported. A site that asks for Digest auth is shown as such; let our checks through with a header instead.
- Google PageSpeed does not run for a password-protected site: it cannot send a password and would only measure the login prompt.
- Ownership by file works: we send the same password when we fetch the file.
TCP port
Opens a connection to the port and closes it. Nothing is sent: we do not speak the service's protocol, so a TCP monitor tells you the port accepts connections, not that the service behind it is healthy. db.example.com:5432 and db.example.com:6379 are two monitors.
Ping
ICMP echo requests to a hostname or IP address. Some networks drop ICMP; if a server that is up never answers, use a TCP monitor instead.
API endpoint
A request with your method (GET, POST, PUT, PATCH, DELETE, HEAD), headers and body. Headers are stored encrypted, so use them for API keys.
- Up means a
2xxanswer by default, or the exact status you set. - Assertions: up to 5 checks on the JSON answer. A path uses dots, and numbers for list items:
data.status,items.0.id.
| Operator | Passes when |
|---|---|
| equals / not equals | the value at the path is (not) exactly the given value |
| contains | the value contains the given text |
| less than / greater than | the number is below / above the given value |
| exists / not exists | the path is (not) present in the answer |
An answer that is not JSON (for example an HTML error page) fails every assertion with its own error, so it is easy to recognise.
Cron heartbeat
The other way round: your job calls us when it runs. See cron heartbeats. Heartbeats have their own quota and do not take monitor slots.