🐀 Canary Monitor

Range Status page β†—

Average runtime (ms)

Failures per bucket

Targets

StatusNameUptimeChecks Avgp95LastLast error

Recent failures

WhenSiteReasonStatusms

Recent failures

WhenReasonStatusms

Recent runs & test results

WhenStatusmsTests

βš™ Settings

Manage targets

HTTP checks skip the browser (cheaper, faster, no Browser Rendering quota). Auto uses HTTP unless a target has a CSS selector, the console-error check, or there are enabled tests due β€” then it uses the browser.

EnabledNameRegionModeExpectURLRules

Regions

Group targets into regions to track uptime per region on the dashboard. Assign a target to a region in the Targets tab.

NameTargets

Tests (in-page scripts)

Each enabled test runs in the browser against every target via page.evaluate, in addition to the per-target checks. throw to fail (e.g. if (!document.querySelector('#app')) throw new Error('no #app')); returning false or a non-empty string also fails (string = reason). Frequency sets how often a test runs β€” the cron fires every minute, but a test set to e.g. 5 only runs every 5th minute.

EnabledNameEveryScript

Request headers

Custom headers sent on every check (HTTP and browser mode) so the origin can identify canary traffic β€” e.g. filter on these in CloudWatch. One Name: Value per line. Every check also automatically includes X-Canary-Target and X-Canary-Region.

Slack alerts

A URL set here is stored in the database and overrides the SLACK_WEBHOOK_URL secret. Leave blank & Save to fall back to the secret.

Alert sensitivity

A πŸ”΄ DOWN alert (and its 🟒 recovery) only fires once a target hits this many consecutive failures (~minutes, since the cron runs every minute). A target that recovers before then sends a single low-key ⚠️ transient blip notice instead β€” so one-off 5xx/timeouts don't read as outages. Set to 1 to alert on every failure.

Failure confirmation

When a check fails, re-run it before recording β€” if a retry passes, the check counts as OK (logged as a transient), not a failure. This is how external tools (e.g. Better Stack) avoid reporting one-off blips. Set retries to 0 to record every failure immediately.