Live demo · operations · 2026

Health checks for the services this site depends on

Checks the outside services the other demos depend on, from this site’s server, when you press Run checks: whether each one answers, how long it takes, and which IP address it answered from. Results are cached for a minute, and the history keeps at most one sample every five minutes, the last 48 per service.

Year
2026
7
services checked in parallel
48
samples of history per service

Results

  • All checks run at once, so one slow service doesn’t hold up the rest.
  • Results are cached for a minute and fresh checks are rate limited, so the page can’t be used to hammer anyone.
  • History keeps at most one sample every five minutes, up to 48 per service.

My role

Designed and built it: the checks, their history and the page.

Stack

  • PHP 8
  • curl_multi
  • HTTP health checks
  • Response times
  • Status history
  • Rate limiting

Run the checks

Running on this server. Also on Live demos.

–/– healthy median – ms not checked yet

    What it checks

    The services the other demos rely on: the USGS earthquake feed, the Census geocoder, TIGERweb boundaries, ACS estimates, the OpenStreetMap basemap tiles, the nearest-address lookup and GitHub. Each check is a light request from this server, timed, with the address the connection actually went to.

    Why it’s built this way

    The other demos call these services from this server, so the checks run from here too. A result shows what this server can reach, which isn’t always what your browser can.

    All seven requests go out at once through curl_multi, with a 4-second connect timeout and 6 seconds in total, so one slow service can’t hold up the rest. Most are HEAD requests to keep them light; the nearest-address lookup gets a GET on its status page. A service counts as up on a 2xx or 3xx response, following up to three redirects, and its history stores the response time or a failure.