DocsMonitoring
Monitors
Every monitor type — HTTP(S), keyword, ping, port, heartbeat, SSL certificate, domain expiry, DNS and UDP — with its settings, intervals, regions and how outages are confirmed.
On this page
A monitor is one thing we check on a schedule. Create monitors in Monitors → Add monitor, or with the API.
Monitor types#
| Type | API value | What it checks | Target |
|---|---|---|---|
| HTTP(S) | Http |
A URL answers with an accepted status code within the timeout | https://example.com/health |
| Keyword | Keyword |
Like HTTP(S), and the response contains (or doesn't contain) a text | https://example.com/ |
| Ping | Ping |
The host answers ICMP echo requests | server.example.com or an IP address |
| Port | Port |
A TCP connection to the port can be opened | db.example.com + port |
| Heartbeat | Heartbeat |
Your job called its unique URL in time | generated for you |
| SSL certificate | Ssl |
The TLS certificate is valid, and when it expires | example.com, example.com:8443 or https://… |
| Domain expiry | Domain |
When the domain registration expires (RDAP) | example.com |
| DNS | Dns |
A host resolves (A / AAAA), optionally to expected addresses | www.example.com |
| UDP | Udp |
A UDP service accepts a datagram and, optionally, answers | ntp.example.com + port |
Keyword, SSL certificate and domain expiry monitors, faster intervals and more regions depend on your plan — see Pricing. When a feature is not included, the API answers 402 with code: "plan_limit".
Settings shared by all types#
| Setting | API field | Rules |
|---|---|---|
| Name | name |
Required, up to 200 characters. Shown in alerts, so make it recognisable. |
| Check interval | intervalSeconds |
15 seconds to 24 hours. Your plan sets the fastest interval you can use. |
| Timeout | timeoutMs |
1,000–30,000 ms and shorter than the interval. Default: half the interval, at most 10 seconds. |
| Regions | regions |
Where the check runs from. The available regions are listed in the form; your plan limits how many one monitor may use. |
| Tags | tags |
Up to 20 tags of 1–50 characters, to filter the monitor list. |
How an outage is confirmed#
We never alert on a single failed check:
- Monitors checked from several regions are Down only when at least two regions currently report a failure. One region with a network problem cannot page you.
- Monitors checked from one region are Down after two consecutive failed checks.
- A monitor is Up again as soon as these conditions no longer hold. Results from a region that stopped reporting are ignored.
When a monitor is confirmed down we open an incident and alert the contacts in its alert rules.
Statuses#
| Status | Meaning |
|---|---|
| Up | The last checks succeeded. |
| Down | A failure was confirmed; an incident is open. |
| Paused | You paused the monitor. No checks, no alerts. |
| Unknown | Not checked yet (or a DNS record type that isn't checked yet). |
| Maintenance | Shown while the monitor is in an active maintenance window. |
Pausing and resuming are free, but a resumed monitor counts against your plan's monitor limit again.
HTTP(S)#
We send a request to the URL from each selected region and check the response. The target must be an absolute http:// or https:// URL (up to 2,048 characters).
| Setting | API field (config) |
Default | Notes |
|---|---|---|---|
| Method | method |
GET |
GET, HEAD, POST, PUT, PATCH, DELETE or OPTIONS. |
| Headers | headers |
none | Up to 20 custom headers, e.g. Authorization. |
| Body | body |
none | Up to 10,000 characters (for POST, PUT, PATCH). |
| Accepted status codes | expectedStatusCodes |
200-399 |
Codes and ranges separated by commas, e.g. 200-299,301. Anything else is a failure. |
| Follow redirects | followRedirects |
on | Up to 10 redirects. Turn it off to check the redirect itself. |
| Slow response alert | slowThresholdMs |
off | 100–60,000 ms. After two consecutive slower responses the contacts get a "slow" alert (the monitor stays Up). |
| Basic authentication | basicAuthUser, basicAuthPassword |
none | The password is encrypted at rest and never shown again. |
A check fails on a timeout, a DNS or connection error, a TLS error (invalid or expired certificate) or an unaccepted status code. Requests carry the user agent IsItUpRightNow/1.0 (+https://isituprightnow.com), which you can allow in your firewall or bot protection.
Keyword#
A keyword monitor is an HTTP(S) monitor that also looks for a text in the first megabyte of the response body:
| Setting | API field (config) |
Notes |
|---|---|---|
| Keyword | keyword |
Required, up to 500 characters. |
| Alert when | keywordMode |
contains — down when the keyword is missing; notContains — down when the keyword appears (useful for "Error" or "Maintenance" texts). |
| Case sensitive | caseSensitive |
Off by default. |
Ping#
Sends an ICMP echo request to the host and measures the round-trip time. The target is a host name or an IP address. Some networks and cloud providers block ICMP; use a port or HTTP(S) monitor for those hosts.
Port#
Opens a TCP connection to the host and port (config.port, 1–65535). The monitor is up when the connection succeeds — ideal for databases, mail servers (25, 465, 587), SSH (22) or game servers. We don't send any data.
Heartbeat (cron)#
The other way round: your job calls a unique URL every time it runs, and we alert you when a call is late. See Heartbeat monitors for the setup and examples.
SSL certificate#
Connects with TLS (port 443 unless you give one, e.g. example.com:8443) and reads the server certificate.
- The monitor is down when the certificate is expired, not yet valid, issued for another name or not trusted.
- You are alerted before it expires:
config.notifyDaysBeforelists the days (default[30, 14, 7], up to 10 values between 1 and 365). Each threshold is notified once per certificate.
Domain expiry#
Looks up the registration of the domain through RDAP once a day, whatever interval you choose, and alerts at the notifyDaysBefore thresholds (default 30, 14 and 7 days before expiry). Enter the registrable domain (example.com); www. and URLs are stripped automatically. A failed lookup is retried after six hours and never marks the monitor down.
DNS#
Resolves the host from the checking region.
| Setting | API field (config) |
Notes |
|---|---|---|
| Record type | recordType |
A and AAAA are checked today. CNAME, MX, TXT and NS can already be saved, but are not checked yet (coming soon) — such monitors stay Unknown. |
| Expected values | expectedValues |
Optional list of addresses. When set, every expected address must be among the answers, otherwise the check fails. |
UDP#
Sends a datagram with config.payload to the host and port (config.port).
- With
expectedResponseset, the check waits for a reply that contains this text, and fails on timeout or a different reply. - Without it, a successful send is all we can verify (UDP has no connection), so prefer setting an expected response.
The monitors list#
Each monitor is one row:
- Status and how long: Up for 4d 8h, Down for 12m (with the failure code, for example
503orT/O, and a link to the open incident), Paused for 3d. - Last 24 hours: one bar per hour. Green means every check passed, amber means some failed, red means most failed; a short stub means there were no checks in that hour (for example before the monitor existed). Hover a bar, tap it or use the arrow keys to see the hour, its uptime and how many checks failed. The uptime of the last 24 hours is shown under the bars.
- Row menu (…): pause or resume, edit, send a test notification, delete.
Above the list you can select monitors for bulk actions, search by name or URL, filter by status, type and tag, and sort: Custom order, Down first, Name, Uptime (24 h) (lowest first) or Response time (slowest first). Drag and drop with the ⋮⋮ handle (or Space and the arrow keys) works in Custom order without filters, and the order is saved for your whole team.
The Current status panel counts monitors by status and shows how many of your plan's monitors you use. Last 24 hours shows the overall uptime (the average of your monitors), incidents that started, total downtime, the MTBF and how long you've been without incidents.
A monitor's page#
- Current status, Last check, Last 24 hours: status with its duration, when the last check ran and the hourly bars.
- Uptime for the last 7, 30 and 365 days and for any custom range, each with its incidents and downtime. Checks inside maintenance windows don't count. A period that starts before the monitor existed is counted from its creation (marked since … (created)). History older than your plan keeps is not available and says so.
- MTBF (mean time between failures) over 7, 30 or 90 days = the monitor's total uptime in that window (time it existed, minus maintenance and downtime) divided by the number of incidents that started in it. With no incident there is nothing to measure, so it shows No incidents.
- Response time for the last hour, 24 hours, 7 days or 30 days, with the average, fastest and slowest successful check. Long ranges are grouped into time buckets; hover the chart for the details of each point.
- Domain & SSL (HTTP(S) and keyword monitors): the TLS certificate's expiry and issuer, read during the normal HTTPS check, and the domain's registration expiry, looked up once a day through RDAP. Until they are checked the card says Not checked yet; some registries (for example several country domains) don't publish an expiry date.
- Next maintenance: the active or next maintenance window for the monitor, or a button to set one up.
- Regions: where the monitor is checked from, on a map.
- Latest incidents with their root cause: a short code (
503,T/Ofor a timeout,DNS,SSL,KWfor a keyword check, …) and what it means. Export CSV downloads the incidents and every check of the last 7, 30 or 90 days (within your plan's history). - Test notification sends a clearly marked test alert to this monitor's alert contacts. It opens no incident and changes nothing; you can send 3 every 10 minutes. SMS and voice tests use credits.
Good to know#
- Private networks are off limits. Checks only connect to public internet addresses; hosts that resolve to private, loopback or link-local addresses fail with an "invalid target" error. This protects everyone (SSRF protection).
- Allow-listing our checkers. Use the user agent above for HTTP checks; checker IP addresses can change, so we don't recommend IP allow-lists.
- Response times are measured from the selected regions and include DNS, connection and TLS time.
- History is kept for your plan's retention period; see Pricing.
Didn't find what you were looking for? Contact us.