Who this is for. Whoever owns a live site's operations, at the agency or the client. Afterwards you have a list of checks, each with a method, a frequency and an alert threshold, and two of them as scripts.
Most failures on a live site are quiet: a scheduled export that stopped, a certificate about to expire, a payment method switched back to Test Mode, search that finds nothing. None of them shows on the home page, so none is caught by checking the home page. Most checks below run from outside the site; the few that need the admin say so. Each has a threshold, so that it alerts when it should and not otherwise.
The checks
| Check | How | How often | Alert when |
|---|---|---|---|
| Availability | Request the home page, a product or article, and the cart, signed out, and check the status and a piece of text | Every minute | Two failures in a row, or any 5xx |
| Search works | Search for a word certainly on the site, such as the client's name, and look for the zero-result message (when search fails) | Every 15 minutes | The zero-result message appears |
| Scheduled jobs ran | Each scheduled job calls a heartbeat service as its last action (monitoring scheduled work) | Each job's schedule | A call more than one interval late: 26 hours for a daily job |
| Background work keeps up | Read the admin's background tasks (/cdna-admin/admin/jobs) for tasks still waiting, or ending in error | Daily, by a person | Tasks waiting for more than 30 minutes, or the same task in error twice |
| Certificates | Read the expiry date of each hostname's certificate | Daily | Fewer than 21 days left |
| No test payment methods | The payment methods check (the check that none is selectable) | Daily | Any output |
| Payment provider | The provider's status page, and its own alerts for failed webhooks and unusual declines | Continuous, by the provider | Any alert |
| Redirects | The redirect test over the whole map (testing every entry) | Daily in the month after launch, then weekly | Any failing entry |
| Sitemap | Request /sitemap.xml. A 202 means a rebuild has just been queued, which is normal once | Daily | Not 200 with content on two checks an hour apart |
| Mail is delivered | Submit a test through the main form to a monitored inbox | Weekly | The notification does not arrive within 15 minutes |
Read template errors daily for the first month after launch and weekly after that (Reading the error log).
Two of them as scripts
Certificate expiry, for each hostname: