Uptime monitors

Monitors check things from outside your app on a schedule and alert when they change state. Seven kinds share the Uptime page. None of them needs code except heartbeats, which your job pings.

1Pick a kind

HTTP: 2xx or 3xx counts as up, optionally requiring a keyword in the body and a response-time limit. Heartbeat: your cron job pings a secret URL; late means down. SSL: TLS handshake to host:port, chain must be trusted, shows issuer and expiry. Domain: registration expiry via RDAP, shows registrar. TCP: connect to host:port and close. DNS: A, AAAA, CNAME, MX or TXT through 1.1.1.1 and 8.8.8.8, optionally requiring a value. Browser: a list of steps run in headless Chromium.

2Intervals

HTTP every 1, 3, 5, 10, 30 or 60 minutes. Heartbeats from 1 minute to 24 hours with a grace period of 1 to 60 minutes. SSL and domain every 1, 6, 12 or 24 hours. Browser checks every 5 to 60 minutes.

3Browser check steps

Up to 20 steps as data, never code. Step 1 must be goto. Actions: goto (url), click (selector), fill (selector, value), expect_text (text), expect_selector (selector), wait (ms). Selectors and text up to 300 characters, values 500, waits 10 s each and 30 s in total, the whole run 60 s. On failure a screenshot of the page is kept under the row. Use a test account for fill values; they are stored as plain text.

json
[
  { "action": "goto", "url": "https://shop.example.com/login" },
  { "action": "fill", "selector": "#email", "value": "monitor@example.com" },
  { "action": "fill", "selector": "#password", "value": "test-only" },
  { "action": "click", "selector": "button[type=submit]" },
  { "action": "expect_text", "text": "Your orders" }
]

4How down is decided

A failed check is retried after 20 seconds and a region is failing only on the second failure in a row. A monitor with several regions is down only when a strict majority are failing (1 of 1, 2 of 2, 2 of 3). Domain and browser checks use one region. Each down and each recovery raises one alert through your channels or to the owners.

Good to know

  • Limits per plan: HTTP, SSL, domain, TCP and DNS share one pool of 10 (Free), 25 (Solo), 100 (Team), 500 (Scale); heartbeats have the same numbers in their own pool; browser checks are 0, 3, 20 and 100.
  • Extra notices: monitor.slow and monitor.fast when the p95 of the last 10 HTTP checks crosses the response-time limit; monitor.expiring at 14, 7 and 1 days for certificates and 30 and 7 days for domains, once per threshold.
  • Private and internal addresses (localhost, 10.x, .local, .internal and so on) are refused at save time. Registries without RDAP, such as .io, stay up and say the expiry date is unavailable.
  • Uptime is shown for 24 hours and 30 days. Raw check results are kept 3 days. The heartbeat URL is shown once and can be replaced.

Stuck? Email support@blipit.io. Keys and the exact DSN for each project are under API keys in app.blipit.io.