URLs Uptime Watch
Iterates over a list of URLs and fires a per-URL alert when any returns a non-success HTTP status code (≥ 400). One alert per failing URL per fire.
What it does
On each fire, the monitor's for_each: block walks the URL list. Per URL:
- The check fires (
httptool with method GET against{{url}}). - The
when:arm tests{{check.responseCode}} >= 400. Any 4xx or 5xx triggers the alert. - Healthy URLs (response < 400) fall through to the
else:arm and notify nothing.
So a 3-URL list with two healthy and one returning 503 produces ONE notification, not three.
Edit before installing
In monitor.yaml:
for_each.items— replace with your URLs.for_each.as— the loop variable. Defaulturl; if you rename it, update every{{url}}reference downstream.- The condition
>= 400treats redirects (3xx) as success. If you want to also alert on 3xx for a specific URL, tighten with{{check.responseCode}} >= 300 && {{check.responseCode}} != 200. - Schedule every 5 minutes for production canaries; every minute for high-touch endpoints (paying close attention to rate limits and noise).
Bindings used per iteration
{{url}}— current URL from the list.{{check.responseCode}}— HTTP status code (number).{{check.responseBody}}— response body (string).{{monitor.firedAt}}— ISO 8601 fire timestamp.
Tools used
http— core InTouch HTTP task type. Public endpoints need no credential; authenticated endpoints can setcheck.credentialName:.
Pattern showcase
This is the literal for_each over a list pattern, mirroring
stocks-portfolio-watch but for URL health.
Compared to the single-URL api-health-check monitor: api-health-check
watches one URL with a static check; this monitor handles many URLs with one
schedule fire. Pick api-health-check for a critical endpoint that deserves
its own monitor; pick this one for a fleet you want to bulk-watch.
Previous form
Replaces the website-uptime-check job (deleted 2026-05-19). The job version
made three separate http tasks and relied on notifications.alertOnError: —
this monitor uses for_each: for a cleaner shape and a per-failing-URL
notification body.