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.