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.
Wrap your first cron job in 3 lines — and never wonder if it ran.
Free to start. No credit card. Magic-link sign-in — running in under two minutes.
We run CronCanary on our own production fleet — it watches every service we ship and the cron that builds them, reporting real run durations every 5 minutes. We don't ship monitoring we wouldn't trust ourselves.
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.
Honest take — the others are solid tools. Here's where each one fits.
| Capability | CronCanary | healthchecks.io | Cronitor | cron-job.org |
|---|---|---|---|---|
| Statistical duration-drift alerts (2σ) | Built-in | Records duration, no drift alerts | Anomaly alerts | No |
| Edge-native ingest (Cloudflare Workers) | Yes | No | No | No |
| 3-line SDK wrap (JS + Python) | Yes | Ping URLs + libraries | Libraries | Scheduler UI only |
| Per-run region tracking | Yes | No | No | No |
| Missing / late run detection | Yes | Yes | Yes | Failure email only |
| Multi-channel alerts (email/Slack/Discord) | Yes | Extensive | Yes | |
| Open source / self-hostable | No (hosted) | Yes (BSD) | No | Free hosted |
| Free tier | Yes | 20 checks | ~5 monitors | Free |
Pick healthchecks.io if you want open-source and a generous free check count. Pick CronCanary if your jobs run on the edge and you care about how long they take, not just whether they ran. Competitor details from public docs, May 2026 — verify current specifics on each vendor's site.
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.