cronitor
A lightweight Python client for Cronitor.
What it is and what it does
Cronitor is a Python client for the Cronitor monitoring service, which tracks the execution and health of background jobs, scheduled tasks, and HTTP endpoints. It integrates with Celery to auto-discover and monitor tasks, provides a lightweight decorator for manual job monitoring, and supports sending telemetry events (heartbeats, success/failure signals, metrics) to the Cronitor API. You can also define monitors declaratively in YAML and sync them to Cronitor as part of your deployment process.
The library handles the HTTP communication via requests and urllib3, parses YAML configurations, and provides both programmatic and command-line interfaces. It's designed for teams running background job infrastructure who want centralized visibility into task execution, failures, and performance metrics without extensive custom instrumentation.
Use it for:
- Monitor Celery tasks automatically by initializing cronitor.celery with your app and API key, creating monitors and sending pings on task run/success/fail.
- Decorate any Python function with @cronitor.job() to track its execution and alert on failures without modifying the function body.
- Define all monitors in a version-controlled cronitor.yaml file and sync them to Cronitor during deployment using apply_config().
- Send custom telemetry events (heartbeats, metrics, error counts) for long-running jobs to track duration, item counts, and error rates.
- Validate monitor configurations against the Cronitor API before deployment using validate_config() to catch issues early.
- Generate a monitor configuration file from your existing Cronitor dashboard using generate_config() for infrastructure-as-code adoption.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
A Python client library for Cronitor that monitors background jobs, scheduled tasks, and HTTP endpoints by sending telemetry pings and syncing monitor configurations via the Cronitor API.
Yes. Cronitor is actively maintained, has low install friction, carries no known vulnerabilities, and uses a permissive MIT license. Install it if you run background jobs or scheduled tasks and want centralized monitoring with minimal code changes—the Celery integration is particularly valuable for teams already using Celery, and the decorator pattern works well for simpler job monitoring needs.
Install
cronitor on PyPI
pip
pip install cronitoruv
uv add cronitorpoetry
poetry add cronitorInstalling cronitor
Before you install
Low install friction with four common runtime dependencies (requests, pyyaml, humanize, urllib3). Actively maintained with a recent release and steady commit history.
License in practice
MIT License permits commercial and private use with minimal restrictions; you may use, modify, and distribute the package freely provided you include the license notice.
Quickstart
pip install cronitor
import cronitor
cronitor.api_key = 'apiKey123'
@cronitor.job('send-invoices')
def send_invoices_task():
pass
monitor = cronitor.Monitor('heartbeat-monitor')
monitor.ping(state='complete')
Requires a Cronitor API key from https://cronitor.io/settings/api to send telemetry and sync monitors.
Verify before relying
- Whether Celery 4.0+ is required only for auto-discover or for all Celery integration features.
- Current support status for django-celery-beat, noted as 'in the works' in the description.
- Whether the package supports Python 2 despite the wheel filename indicating py2.py3 compatibility.
Package facts
| License | MIT License (permissive) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 4 — requests, pyyaml, humanize, urllib3 |
| Maintenance | actively maintained — 310 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 149,819/month — #10,982 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: cronitor-4.9.0-py2.py3-none-any.whl
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
APSchedulerAPScheduler lets you schedule Python code to…
permissive · top 1,000 on PyPI
rq-schedulerAdds job scheduling capabilities to RQ (Redis…
permissive · top 15,000 on PyPI
scheduleSchedule provides a human-friendly API for…
permissive · top 5,000 on PyPI
aa-taskmonitorA Django admin plugin for Alliance Auth that…
permissive · top 15,000 on PyPI
django-celery-beatStores Celery periodic task schedules in a…
permissive · top 5,000 on PyPI
celeryCelery is a distributed task queue that lets…
permissive · top 1,000 on PyPI
schedulerAn in-process job scheduler for Python that…
copyleft · top 15,000 on PyPI
Flask-APSchedulerFlask-APScheduler integrates APScheduler with…
permissive · top 15,000 on PyPI
django-apschedulerAdds persistent job scheduling to Django…
permissive · top 15,000 on PyPI
dvc-taskdvc-task queues and runs background jobs from…
permissive · top 5,000 on PyPI