Healthchecks — Cron Job Monitoring with Smart Alerts
Healthchecks is a self-hosted cron job and scheduled task monitor that alerts you when your periodic jobs fail to run on time.
What it is
Healthchecks is a self-hosted monitoring service for cron jobs and scheduled tasks. Instead of checking whether a service is up, it checks whether your periodic jobs are running on schedule. When a job misses its expected ping, Healthchecks sends an alert.
It serves system administrators, DevOps engineers, and backend developers who run scheduled tasks (backups, data syncs, report generation) and need to know immediately when something stops working silently.
How it saves time or tokens
Failed cron jobs are silent failures. Without monitoring, you might not discover a broken backup job until you need a restore. Healthchecks converts these invisible failures into immediate alerts via email, Slack, PagerDuty, or webhooks. The ping-based design requires only a single HTTP request or curl call appended to your existing scripts.
How to use
- Create a check in Healthchecks with the expected schedule (cron expression or simple interval).
- Copy the unique ping URL and add a curl call to the end of your cron job script.
- Configure notification channels (email, Slack, PagerDuty) to receive alerts when pings are missed.
Example
# Add a ping to your existing cron job
# crontab -e
0 2 * * * /usr/local/bin/backup.sh && curl -fsS -m 10 --retry 5 https://hc-ping.com/your-uuid-here
# Python script with Healthchecks ping
import requests
import subprocess
try:
subprocess.run(['python', 'etl_pipeline.py'], check=True)
requests.get('https://hc-ping.com/your-uuid-here')
except Exception as e:
requests.get('https://hc-ping.com/your-uuid-here/fail')
raise
Related on TokRepo
- AI Tools for Monitoring — Monitoring and observability tools for infrastructure
- AI Tools for DevOps — DevOps automation and infrastructure management
Common pitfalls
- Setting the grace period too short, causing false alerts when jobs take slightly longer than expected.
- Pinging at the start of the job instead of the end, which hides jobs that start but fail to complete.
- Forgetting to handle the failure ping endpoint for jobs that should report errors explicitly.
Frequently Asked Questions
Uptime monitors check whether a service responds to requests. Healthchecks monitors the absence of expected pings. It detects when scheduled jobs stop running, which uptime monitors cannot catch because there is no service endpoint to probe.
Yes. Healthchecks is open source and provides Docker images and detailed self-hosting documentation. You can run it on your own infrastructure with PostgreSQL or MySQL as the database backend.
Healthchecks supports email, Slack, PagerDuty, Opsgenie, Discord, Telegram, webhooks, and many other integrations. You can configure multiple channels per check for redundancy.
Yes. Any periodic task that can make an HTTP request works with Healthchecks. This includes systemd timers, Kubernetes CronJobs, Airflow DAGs, Windows Task Scheduler, and custom schedulers.
Yes. The hosted version at healthchecks.io offers a free tier with up to 20 checks. For unlimited checks or self-hosting, the open-source version is available at no cost.
Citations (3)
- Healthchecks GitHub— Self-hosted cron job monitoring with smart alerts
- Healthchecks Documentation— Ping-based monitoring with multiple notification channels
- Healthchecks README— Open source with Docker self-hosting support
Related on TokRepo
Discussion
Related Assets
NAPI-RS — Build Node.js Native Addons in Rust
Write high-performance Node.js native modules in Rust with automatic TypeScript type generation and cross-platform prebuilt binaries.
Mamba — Fast Cross-Platform Package Manager
A drop-in conda replacement written in C++ that resolves environments in seconds instead of minutes.
Plasmo — The Browser Extension Framework
Build, test, and publish browser extensions for Chrome, Firefox, and Edge using React or Vue with hot-reload and automatic manifest generation.