In this post I’m comparing cron monitoring features of four services: Cronitor, Healthchecks.io, Uptime Robot, Sentry.
How I picked the services for comparison: I searched for “cron monitoring” on Google and picked the top results in their order of appearance.
Disclaimer: I run Healthchecks.io, so I’m a biased source. I’ve tried to get the facts right, but choosing what features to compare, and what differences to highlight, is of course subjective. When in doubt, do your own research!
Business Stats
Cronitor launched in 2014, is registered in the United States and runs on AWS. Cronitor is a bootstrapped company, and is operated by three friendly humans. Cronitor started as a cron monitoring service, but has expanded to website uptime monitoring, real user monitoring, and hosted status pages. Cronitor is a proprietary product and uses the SaaS business model.
Healthchecks.io launched in 2015, is registered in Latvia and runs on Hetzner (Germany). Healthchecks.io is a bootstrapped company, run by a solo founder. Healthchecks.io focuses on doing one thing and doing it well: alerting when something does not happen on time. Healthchecks.io is open source (source on GitHub), users can use the hosted service, or run a self-hosted instance.
Uptime Robot launched in 2010, is registered in Malta, and runs on Limestone Networks, AWS, and DigitalOcean. UptimeRobot started as a free website uptime monitoring service and added cron monitoring and hosted status pages support in 2019. After getting acquired in late 2019, UptimeRobot accelerated development and reorganized its pricing structure. Uptime Robot is a proprietary product and uses the SaaS business model.
Sentry launched in 2012, is registered in the United States and runs on AWS and Google Cloud. Sentry is a VC-funded company and has 200+ employees. Sentry started as an error tracking service, grew into APM, and launched cron monitoring support in public beta in January 2023. Sentry uses the SaaS business model, but its source code is available under the FSL license. Sentry is a complex product with many moving parts. Self-hosting is possible but is not trivial.
Pricing
Each reviewed service except Healthchecks.io bundles several products under one account:
- Cronitor: cron monitoring, website uptime monitoring, RUM, status pages.
- Uptime Robot: website uptime monitoring, cron monitoring, status pages.
- Sentry: error tracking, APM, code coverage.
The total set of functionality you get from a paid account on each service is vastly different, so their pricing is not directly comparable. With that in mind, here is the pricing summary for each service, as of November 2023, for monitoring cron jobs specifically.
Cronitor
- Free plan: monitor up to 5 jobs.
- Business plan: $2/mo for 1 job.
Monitoring 100 jobs with Cronitor would cost $200/mo.
Healthchecks.io
- Free plan: monitor up to 20 jobs.
- Business plan: $20/mo for 100 jobs.
- Business Plus plan: $80/mo for 1000 jobs.
Monitoring 100 jobs with Healthchecks.io would cost $20/mo. Healthchecks.io offers sponsored accounts for non-profits and open-source projects (details).
Uptime Robot
- Solo plan: $8/mo for 10 jobs or $19/mo for 50 jobs.
- Team plan: $34/mo for 100 jobs.
- Enterprise plan: $64/mo for 200 jobs.
Monitoring 100 jobs with Uptime Robot would cost $34/mo. Uptime Robot offers sponsored accounts for charities and other non-profits (details).
Sentry
Sentry Cron Monitoring feature is currently in open beta. The limits for different pricing plans are not known yet. Sentry announced general availability and pricing in January 16, 2024.
- Free: monitor 1 cron job for free.
- Paid: $0.78/mo for 1 job.
Monitoring 100 jobs with Sentry would cost $77/mo. Sentry offers sponsored accounts for non-profits, open-source, and students (details).
Timeout-based Schedules
When using timeout-based schedules the user specifies a period (for example, one hour). The monitored system is expected to “check in” (send an HTTP request to a unique address) at least every period. When a check-in is missed, the monitoring system declares an outage and notifies you.
This monitoring technique is also sometimes called Heartbeat Monitoring. All four reviewed services support timeout-based schedules.
Cron Expression Schedules
The user specifies a cron expression (for example, “0/5 * * * *”) and a timezone. The monitoring system calculates expected “check in” deadlines based on the cron expression.
Supported by: Cronitor, Healthchecks.io, Sentry.
Not supported by: Uptime Robot.
Cronitor and Sentry use the croniter library to evaluate cron expressions. Healthchecks.io uses the cronsim library.
Start and Fail Signals
In addition to basic “I’m alive!” check-in messages, monitoring services typically support additional signal types:
- “job started” signal: allows the measurement of job durations, and alerting when a job takes too long.
- “job failed” signal: allows the job to explicitly declare itself as failed.
Supported by: Cronitor (docs), Healthchecks.io (docs), Sentry (docs).
Not supported by: Uptime Robot.
Check-in Via Email
With this feature, clients can “check in” by sending an email message to a job-specific email address. This comes in handy when integrating with services that only support status reports via emails, or when working in restrictive environments where only email is allowed through.
Supported by: Cronitor (docs), Healthchecks.io (docs).
Not supported by: Uptime Robot, Sentry.
Auto-Provisioning
With auto-provisioning clients can perform check-ins for jobs that the monitoring system does not yet know about, and the monitoring service registers the new jobs on the fly. Auto-provisioning is handy in dynamic environments where the set of monitored jobs changes frequently.
Supported by: Cronitor (docs), Healthchecks.io (docs), Sentry (docs).
Not supported by: Uptime Robot.
Client SDKs and API
Cronitor provides first-party command-line client and SDKs for Java, JavaScript, Kubernetes, PHP, Python, Ruby, and Sidekiq. There are also third-party SDKs for Terraform and .Net.
Healthchecks.io does not provide first-party client SDKs. There are a number of third-party client libraries.
Sentry provides first-party command-line client and SDKs for Celery, Go, Java, JavaScript, Laravel, Node, PHP, Python, Quartz, Rails, Ruby, and Spring.
Uptime Robot does not provide first-party client SDKs.
All four services provide HTTP API: Cronitor API docs, Healthchecks.io API docs, Uptime Robot API docs, Sentry API docs.
Notification Methods
Each reviewed service supports a number of different ways to deliver downtime notifications:
Cronitor
- Free: email, webhooks (only GET requests), MS Teams, Slack, Telegram.
- Paid: Opsgenie, PagerDuty, SMS, Splunk On-Call.
Healthchecks.io
- Free: email, webhooks, Discord, LINE Notify, Matrix, Mattermost, MS Teams, Opsgenie, PagerDuty, PagerTree, Pushbullet, Pushover, Rocket.Chat, Signal, Slack, Spike.sh, Telegram, Trello, Splunk On-Call, Zulip.
- Paid: SMS, voice calls, WhatsApp.
Uptime Robot
- Free: Android and iOS app, email, Google Chat, Discord, Pushbullet, Pushover, Splunk On-Call.
- Paid: webhooks, MS Teams, PagerDuty, Slack, SMS, Telegram, voice calls, Zapier.
Sentry
- Free: email, webhooks.
- Paid: Amixr, Discord, MS Teams, Opsgenie, PagerDuty, Pushover, Rocket.Chat, Rootly, Slack, Spike.sh, SMS, TaskCall, Threads, Splunk On-Call.
Project Management, User and Team Management, Authentication
Cronitor
Cronitor supports organizing jobs into Environments. Within each environment, jobs can be grouped into groups. Jobs can be annotated with tags.
Cronitor supports multiple team members ($5/mo for each additional user). Team members can have “admin”, “user”, “readonly” roles.
Cronitor supports SAML2 SSO, which costs an extra $5/mo for every team member. Cronitor does not support two-factor authentication.
Healthchecks.io
Healthchecks.io supports organizing jobs into Projects. Jobs can be annotated with tags.
Healthchecks.io supports multiple team members with “owner”, “manager”, “user”, and “read-only” roles.
Healthchecks.io does not support any form of SSO. Healthchecks.io supports two-factor authentication using WebAuthn and using one-time codes (TOTP).
Uptime Robot
Uptime Robot does not support grouping or tagging jobs.
Uptime Robot’s higher-priced plans support multiple team members with “admin”, “read”, and “write” roles.
Uptime Robot does not support any form of SSO. Uptime Robot supports two-factor authentication using one-time codes (TOTP).
Sentry
Sentry supports organizing jobs into Projects and Environments.
Sentry supports multiple team members with “billing”, “member”, “admin”, “manager”, and “owner” roles.
Sentry offers many options for SSO: Google, GitHub, Okta, SAML2, and others. All options except Google and GitHub require the Business ($80/mo) billing plan. Sentry supports two-factor authentication using U2F, one-time codes (TOTP), and recovery codes.
Feature Matrix
Cronitor | Healthchecks.io | Uptime Robot | Sentry | |
Business registered in | 🇺🇸 | 🇱🇻 | 🇲🇹 | 🇺🇸 |
Servers hosted in | 🇺🇸 | 🇩🇪 | 🇺🇸 | 🇺🇸 |
Team size | 3 | 1 | 10+ | 200+ |
Founded in | 2014 | 2015 | 2010 | 2012 |
Jobs in the free plan | 5 | 20 | 0 | ? |
Price/mo for 100 jobs | $200 | $20 | $34 | ? |
Self-hosting possible | ❌ | ✅ | ❌ | ✅ |
Timeout-based schedules | ✅ | ✅ | ✅ | ✅ |
Cron expressions | ✅ | ✅ | ❌ | ✅ |
“start” and “fail” signals | ✅ | ✅ | ❌ | ✅ |
Check-in via email | ✅ | ✅ | ❌ | ❌ |
Auto-provisioning | ✅ | ✅ | ❌ | ✅ |
Client SDKs | ✅ | ❌ | ❌ | ✅ |
API | ✅ | ✅ | ✅ | ✅ |
Projects | ✅ | ✅ | ❌ | ✅ |
Team access | 💰 | ✅ | 💰 | ✅ |
Single sign-on | 💰 | ❌ | ❌ | 💰 |
Two-factor authentication | ❌ | ✅ | ✅ | ✅ |
Notify via email | ✅ | ✅ | ✅ | ✅ |
Notify via webhooks | ✅ | ✅ | 💰 | ✅ |
Notify via Slack | ✅ | ✅ | 💰 | 💰 |
Notify via Telegram | ✅ | ✅ | 💰 | ❌ |
Notify via SMS | 💰 | 💰 | 💰 | 💰 |
In Closing
If you notice any factual errors, please let me know (contacts), and I will get them fixed ASAP!
There are many more things to compare. If you are shopping for a cron monitoring service, you will have to decide what is important for you, and likely do some additional research.
Happy monitoring,
– Pēteris