Status

Live checks of the projects I run: availability, latency and TLS certificates, every ten minutes.

Checking status…

How this worksshow
  1. An EventBridge schedule fires every ten minutes.
  2. It invokes a Python Lambda that requests each service, and this site, concurrently, following redirects to the final status code and reading the TLS certificate from the same connection.
  3. Latency is the time from sending the request to receiving the response headers. Connection setup (DNS, TCP and the TLS handshake) is timed separately and not counted: it measures the checker as much as the site.
  4. A service is down on an error or a non-2xx/3xx status, degraded above one second, and operational otherwise.
  5. A service marked as usually off is still checked, but when it is down it reads offline in grey, sends no alert, and does not count toward the overall status.
  6. Each run is added to 30 days of daily counters. A day is red if any check failed, yellow if more than a tenth of its checks were slow, and a darker green if nothing was checked that day. Uptime is the share of all checks in the window that were not down.
  7. The Lambda writes the results to status.json in this site's S3 bucket, with a 60-second cache lifetime, and CloudFront serves it.
  8. This page fetches that file on load and again every minute.
  9. All of it, schedule to permissions, is Terraform in this site's repository.

Checks run from AWS us-east-1, so latency is measured from Virginia, not from you.