Uptime checks

Watch a URL every 1, 5 or 15 minutes, see its uptime and response time, and get one email when it goes down and one when it is back.

An uptime check asks one of your URLs for an answer every few minutes and tells you when it stops answering the way it should. The Uptime page shows each check's state, how often it passed over the last day and the last 30 days, how fast it answered, and its recent failures. Add a check down alert, and your team gets one email when it goes down and one when it is back.

Add a check

Open Uptime in the dashboard and add the URL to watch, such as a health endpoint. A project can have up to 20 checks, and a workspace up to 50 turned on across its projects. Editors and owners add, change, pause and delete them; everyone in the workspace sees them. Pausing a check and turning it back on, or changing it, never runs it sooner than its interval after the last run.

  • URL. https, or http when you choose it on purpose. The query is kept and sent, so a health endpoint that needs a token in the query works. People with the viewer role see the URL without its query.
  • Every 1, 5 or 15 minutes, 5 by default.
  • Expected status. 200 to 299 by default. Set 300 to 399 to watch a redirect: its target is never requested.
  • Expected text, optional. The check passes only when the first 64 KiB of the answer contain it. The answer is never stored.

Or from the terminal, with the Little Friend CLI:

Uptime checks from the CLI
littlefriend uptime create https://example.com/health --interval 1 --body ok
littlefriend uptime list
littlefriend uptime update <check id> --status 200-399
littlefriend uptime history <check id> --failures
littlefriend uptime delete <check id> --yes

The request

Each run is one GET that waits up to 10 seconds. It sends this user agent and nothing that names your project or your account, so allow it if a firewall or bot filter sits in front of the URL:

User agent
LittleFriend-Uptime/1 (+https://littlefriend.io/docs/uptime)

The address a check runs from is not fixed, so allow the user agent rather than an address. A check never reaches a private, loopback or link-local address: the host is looked up again before every run, and a host that points at one is refused.

Little Friend sends at most 30 runs a minute to one host, across every account. When more are due, accounts take turns, and the Uptime page says a check is waiting its turn.

What a run records

Each run records whether it passed, the status, how long the answer took to start, from the DNS lookup to the status line, and why it failed:

  • dns: Host did not resolve
  • blocked: Address refused
  • connect: Could not connect
  • tls: TLS or certificate failed
  • timeout: Timed out
  • status: Unexpected status
  • body: Expected text missing

Runs are kept 30 days. Hourly totals, with the median and 95th percentile response time, are kept as long as your project keeps its totals. Deleting a check or the project deletes them.

Check down alerts

In Settings, Alerts, add a check down alert for a check. It fires after 2 failed runs in a row and is over after 2 passing runs in a row; set either from 1 to 10. It follows the rules of every alert: one email when it goes down, one when it is back, and a check that keeps coming and going waits longer before it is called back up. Alerts can also go to an outside address such as your team's alerts inbox.