healthchecks/healthchecks

Open-source cron job and background task monitoring service, written in Python & Django

View on GitHub ↗Jump to charts ↓Open shareable report

Summary Information

Updated 20 minutes ago
Added to GitGenius on March 6th, 2022
Created on June 25th, 2015
Open Issues & Pull Requests: 53 (+0)
Number of forks: 998
Total Stargazers: 10,247 (+1)
Total Subscribers: 92 (+0)

Repository Insights (GitGenius)

Median issue/PR response: 43.4 hours
Mean response time: 287.7 days
90th percentile: 1266.4 days
Tracked items: 236

How this project is maintained

Around half of the issues opened in the past year never receive a reply. 96% of open issues come from outside the core team, so the backlog reflects real-world use rather than internal planning. Only 9% of issues opened in the past year have been closed. Three people close 86% of everything that gets resolved.

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Open issues: 49
New in 7 days: 1
Closed in 7 days: 3
Avg open age: 1,100 days
Stale 30+ days: 46
Stale 90+ days: 33

Recent activity

Opened in 7 days: 1
Closed in 7 days: 3
Comments in 7 days: 6
Events in 7 days: 22

Top labels

  • feature (64)
  • new integration (35)
  • bug (7)
  • good-first-issue (3)
  • question (2)

Most active issues this week

Detailed Description

Healthchecks is an open-source monitoring service built with Python and Django that tracks the execution of cron jobs and background tasks by listening for HTTP requests and email messages called "pings" from scheduled checks. When a ping fails to arrive within an expected timeframe, the service automatically sends out alerts to notify users of potential failures. The project is available both as a hosted service at healthchecks.io and as a self-hosted solution with Docker support.

The core functionality revolves around a web-based dashboard that displays the real-time status of all monitored cron jobs and scheduled tasks. Users can configure checks with two key parameters: Period, which defines the expected time between pings, and Grace Time, which specifies how long to wait before triggering alerts when a job runs late. The service also supports defining expected schedules using cron expressions, leveraging the cronsim library for parsing and evaluation. The dashboard provides live-updating event logs for individual checks, allowing users to monitor execution history and identify patterns in job performance.

Healthchecks includes over 25 integrations for delivering notifications across various platforms and services. The platform features a comprehensive REST API for programmatic access, monthly email reports, WebAuthn two-factor authentication support, and team management capabilities including project organization and role-based access control with read-only options. Status badges with public but hard-to-guess URLs enable users to display check status in READMEs, dashboards, and status pages.

The technical foundation uses Python 3.12 or later with Django 6.0, supporting PostgreSQL, MySQL, or MariaDB as database backends. The project is licensed under the BSD 3-clause license. Development setup is documented in the CONTRIBUTING.md file, with instructions for creating a virtual environment, installing dependencies, and running tests. The application reads configuration from environment variables with optional overrides via a local_settings.py file, following Django conventions.

The repository shares contributors with home-assistant/core, immich-app/immich, and gitpod-io/gitpod, suggesting cross-project collaboration within the open-source ecosystem.

The service includes management commands for critical operational tasks such as sending alerts via the sendalerts command, which continuously polls the database for state changes and dispatches notifications. The sendreports command handles monthly reports, weekly reports, and daily or hourly reminders. Automatic database cleanup removes old ping entries, with users able to configure retention limits through the administration panel. Additional maintenance commands handle user account cleanup, rate-limiting record removal, and external object storage pruning. The platform supports external authentication via HTTP headers for integration with existing authentication systems like LDAP or OAuth, and can optionally store large ping bodies in S3-compatible object storage.