CronCanary wraps any cron handler in 3 lines of code. Get a timeline view, 2σ drift detection, and Discord/Slack/email alerts when jobs fail or slow down.
Purpose-built for the modern edge-first stack.
See every run's duration as a bar chart. p50 / p95 / p99 computed live. Spot outliers at a glance — no dashboards to configure.
When a job is suddenly 30% slower, CronCanary catches it statistically. Computed against a rolling 50-run window so you don't chase noise.
Discord, Slack, and email — choose any combination. Alerts fire on fail, drift, or when a job hasn't run in the expected window (late detection).
Know which Cloudflare datacenter or Vercel region ran your job. Compare durations across regions to find geo-specific slowdowns.
Wrap CF Workers, Vercel Cron, or Supabase pg_cron callers. Works anywhere fetch is available — no dependencies required.
Each job gets its own long-lived token. Rotate without disrupting other jobs. Magic-link auth — no password storage.
Timeline view — last 7 runs, duration bars, drift flagged automatically.
Start free. No credit card required. Upgrade when your job count grows.
Cloudflare Workers Cron Triggers, Vercel Cron, Supabase pg_cron, GitHub Actions schedules, Railway cron, and any task that can make an HTTP request. The JS SDK wraps CF Workers handlers natively. For Python (pg_cron, Supabase functions), use the Python SDK.
CronCanary computes the mean and standard deviation of your last 50 successful run durations. When a new run's duration exceeds mean + 2σ and crosses your configured threshold percentage, a drift alert fires. This eliminates one-off spike noise while catching genuine regression.
If a job hasn't completed within 2× its configured timeout window, CronCanary sends a late alert. This catches jobs that failed to start — a case that fail alerts alone miss.
The start ping is awaited (typically under 5ms from any CF Worker since we run globally). The end/fail ping is dispatched via ctx.waitUntil — zero impact on your job's response time.
The SDK swallows all monitoring errors. If CronCanary is unreachable, your job continues unaffected. We build monitoring that doesn't become a dependency.
Yes. Cancel via the Stripe billing portal — no questions, no retention flow. Your data is accessible until the period ends.