skillfed

cronitor

A lightweight Python client for Cronitor.

cronitor v4.9.0 149.8K downloads/30d#10,982 on PyPI83
Permissive license MIT License Active released

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 cronitor

uv

uv add cronitor

poetry

poetry add cronitor

Installing 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

background job monitoringcron job monitoring pythoncelery task monitoringhttp endpoint monitoringscheduled task alertsjob telemetry trackingcronitor api client
job-monitoringcelery-integrationtelemetry

More Monitoring packages

tqdm

Wraps any iterable to display a real-time…

copyleft · top 100 on PyPI

opentelemetry-semantic-conventions

Provides generated Python code for…

permissive · top 100 on PyPI

opentelemetry-sdk

Provides the reference implementation of the…

permissive · top 100 on PyPI

opentelemetry-api

Provides the abstract API and interfaces for…

permissive · top 100 on PyPI

opentelemetry-exporter-otlp-proto-http

Exports OpenTelemetry observability data to an…

permissive · top 1,000 on PyPI

opentelemetry-instrumentation

Provides automatic instrumentation commands and…

permissive · top 1,000 on PyPI

APScheduler

APScheduler lets you schedule Python code to…

permissive · top 1,000 on PyPI

rq-scheduler

Adds job scheduling capabilities to RQ (Redis…

permissive · top 15,000 on PyPI

schedule

Schedule provides a human-friendly API for…

permissive · top 5,000 on PyPI

aa-taskmonitor

A Django admin plugin for Alliance Auth that…

permissive · top 15,000 on PyPI

django-celery-beat

Stores Celery periodic task schedules in a…

permissive · top 5,000 on PyPI

celery

Celery is a distributed task queue that lets…

permissive · top 1,000 on PyPI

scheduler

An in-process job scheduler for Python that…

copyleft · top 15,000 on PyPI

Flask-APScheduler

Flask-APScheduler integrates APScheduler with…

permissive · top 15,000 on PyPI

django-apscheduler

Adds persistent job scheduling to Django…

permissive · top 15,000 on PyPI

dvc-task

dvc-task queues and runs background jobs from…

permissive · top 5,000 on PyPI