Production · probed every 60 seconds

Still singing.

This is the CivSites production canary — a real published site, fetched once a minute along the same path every customer site travels: edge, renderer, and data. If you can read this, production is proving itself right now.

GET / · GET /canary · GET /api/public/resolve UA CivSites-Synthetic-Canary/1.0

The check

Three probes. Every minute.

A scheduled function fetches three targets, each with an 8-second budget. Together they cover the full path from a resident’s browser to the origin database.

homepage

GET /

The front door

The published homepage, fetched cold from the edge. DNS, TLS, CloudFront, WAF, and the generated-domain route all have to hold for this probe to pass.

Proves: edge delivery

content

GET /canary

A page like any other

A stable published content page, rendered through the same resolver, renderer, and block pipeline as every customer page on the platform.

Proves: application rendering

api-resolve

GET /api/public/resolve

The data path

The public CMS API resolving this site by domain and path — straight through the application tier to the origin database and back.

Proves: data resolution

Alarms

If it stops singing, someone gets paged.

Two CloudWatch alarms watch every probe, every minute, in namespace Civall/CivSitesCanary. There is no unknown state.

availability-low

Any probe returning less than 100% availability for 2 of the last 3 minutes raises the alarm.

latency-high

Any probe slower than 5.0 seconds for 2 of the last 3 minutes raises the alarm.

missing data

Treated as breaching. A canary that goes quiet is the loudest signal there is.

Deliberately boring. Permanently watched.

No customer content lives here, and none ever will. This site exists so the first thing to notice a production problem is a robot — not a resident.