Operate

Uptime & alerts

Hear about problems before your users do: uptime checks that visit your app like a visitor would, and alerts to Slack, Discord, or any webhook.

Traffic

Every web service’s page has a Traffic panel showing what Cloudflare’s edge saw for its addresses and custom domains, per environment, over the last 24 hours, 7 days, or 30 days:

Terminal
apprail traffic shop/web
apprail traffic shop/web --range 7d --json

Apprail collects it from Cloudflare every few minutes and keeps it for 90 days, so figures appear a few minutes after the requests. Counts are Cloudflare’s estimates — close to exact at everyday volumes. Location is by country only, and no visitor IP addresses are stored. Workers have no public address, so they have no traffic panel.

Alert channels

Channels belong to the workspace; owners and admins manage them, and every member can see where alerts go. Every channel receives every alert.

Terminal
pbpaste | apprail alerts add ops --kind slack   # the webhook URL, from standard input
apprail alerts add oncall --kind webhook --url https://hooks.example.com/apprail
apprail alerts test ops
apprail alerts

What sends an alert

AlertWhen
Service downAn uptime check fails a set number of times in a row
Service recoveredThe first successful check after it was down
Deployment failedA deployment fails outside previews. The alert says the previous release is still serving
Job failingA job run fails after the previous run didn’t — one alert, not one per failing run
Approval neededA deployment is waiting in a protected environment

Uptime checks

An uptime check requests a web service’s public address from outside, through the edge, every minute (or up to once an hour). 2xx and 3xx answers count as up; redirects aren’t followed; no answer within 10 seconds is a failure.

Terminal
apprail uptime shop/web on
apprail uptime shop/web on --path /healthz --interval 60 --threshold 3
apprail uptime shop/web
apprail uptime shop/web off
OptionDefaultRange
--pathThe service’s health pathAny path
--interval60 seconds60–3600
--threshold2 failures in a row1–10
--envproductionAny environment

The console shows each check’s state and 24-hour uptime. A service with nothing deployed is unknown, never down.

Checks run from Apprail’s own region. An outage that takes the whole region down can’t alert you from there, so for anything critical, add an independent external monitor as well.

Not available yet: email or SMS, escalation policies, routing different alerts to different channels, and maintenance windows.