TiloBox
Back to directory
Healthchecks project preview

Healthchecks

Healthchecks is a Django service that watches for expected pings from cron jobs and background tasks.

LicenseBSD-3-Clause
GitHub stars10.3k
Last commit1 weeks ago
Tags5 topics
CronAlertsSelf HostedPythonDjango
Overview

Why consider Healthchecks?

Healthchecks is an open-source cron job and background task monitoring service that uses a dead man's switch approach to send alerts when scheduled processes fail to check in.

Guided learning

Learn Healthchecks by building

Practical setup notes, real use cases, and copy-ready examples in one focused guide.

2 min read 3 sections
In this guide3 sections

What is Healthchecks?

Healthchecks is an open-source cron job and background task monitoring service written in Python and Django. Rather than actively probing your applications, it operates as a dead man's switch: your jobs send proactive pings, and the service alerts you when a ping is late. A Check expects an HTTP request from your cron job, staying silent when successful but raising an alert when late.

This approach solves several major problems with the classic MAILTO built into the cron daemon. Unlike classic MAILTO alerts, Healthchecks does not require a local Mail Transfer Agent (MTA) and prevents alert fatigue from cron jobs producing standard output. Healthchecks detects machine-wide failures (like power loss) because the absence of a signal immediately registers as an issue.

Configuring Periods and Grace Times

When you create a new Check, you configure its expected cadence using two critical parameters:

  1. Period: The expected frequency between successful runs (e.g., 1 hour, or a specific cron expression).
  2. Grace Time: Every Check is configured with a Grace Time parameter, representing the additional buffer time to wait before sending an alert for a late job.

The Grace Time is useful because a cron job might occasionally take longer than usual to complete due to high system load or large workloads. By setting the Grace Time slightly above the maximum expected execution time of the job, you prevent false positives.

Adding Healthchecks to a Cron Job

To monitor a cron job, you only need an HTTP client like curl to send a web request; no additional software agents are required.

For example, if you run a daily backup script, you can chain a curl call to ping your unique Healthchecks UUID only when the backup script succeeds (exits with a zero status code):

sh
18 6 * * * /home/me/backup.sh && curl -fsS -m 10 --retry 5 -o /dev/null https://hc-ping.com/your-uuid-here

By using the logical AND operator (&&), the HTTP ping is sent only if /home/me/backup.sh completes without errors. The curl command incorporates arguments like --retry 5 and -m 10 (maximum time in seconds) to handle minor, transient network glitches without incorrectly failing the check-in.

Related tools

More options with a similar category or technology profile.

Healthchecks FAQs

Healthchecks is listed as a Monitoring tool on TiloBox. Review the overview, features, and official documentation on this page to decide whether it solves your specific workflow.

Start with the project's GitHub repository and official website for supported installation and deployment instructions. Test the setup with representative data or a small project before rolling it out more widely.

Healthchecks is listed under the BSD-3-Clause license. Read the complete license text and the project's notices before using, modifying, or distributing the software.

Production readiness depends on your requirements. Review maintenance activity, security practices, documentation, backup and upgrade procedures, and compatibility with your stack; then validate it in a non-production environment.

Healthchecks is listed as an alternative to Cronitor. Compare the core workflow, deployment model, integrations, and licensing against your must-have requirements before switching.