Skip to main content

PyPI Status Python Version License

Read the documentation at https://healthchecks-decorator.readthedocs.io/ Tests Codecov

pre-commit Black

A simple python decorator for healthchecks.io.

Features

The healthchecks-decorator library provides the following features:

  • 🚀 Easy to use: Simply decorate your function with @healthcheck to enable health checks.

  • ⏲️ Execution time measurement: Supports sending /start signals to measure job execution times.

  • 🔥 Exception handling: Automatically sends /failure signals when jobs produce exceptions.

  • 🤖 Auto-provisioning: Supports automatic provisioning of new health checks by adding ?create=1 to the ping URL.

  • 🌡️ Diagnostics information: Send diagnostics information to help diagnose issues.

  • 😊 Flexible endpoint support: Supports both SaaS and self-hosted endpoints.

Requirements

  • None - just pure python 🐍.

Installation

You can install Healthchecks Decorator via pip from PyPI:

$ pip install healthchecks-decorator

Usage

Basic usage

from healthchecks_decorator import healthcheck

@healthcheck(url="https://hc-ping.com/<uuid1>")
def job():
   """Job with a success healthcheck signal when done"""
   pass


@healthcheck(url="https://hc-ping.com/<uuid2>", send_start=True)
def job_with_start():
   """Send also a /start signal before starting"""
   pass


@healthcheck(url="https://hc-ping.com/<uuid3>")
def job_with_exception():
   """This will produce a /fail signal"""
   raise Exception("I'll be propagated")


@healthcheck(url="https://hc-ping.com/<uuid4>", send_diagnostics=True)
def job_with_diagnostics():
   """Send the returned value in the POST body.
   The returned value must be a valid input for `urllib.parse.urlencode`.
   Otherwise, nothing will be sent."""
   return {"temperature": -7}

Environment variables

It is possible to set options through environment variables. Each option has a corresponding environment variable defined by the option name in upper snake case with the HEALTHCHECK_ prefix.

For example, setting:

  • HEALTHCHECK_URL=http://fake-hc.com/uuid

  • HEALTHCHECK_SEND_DIAGNOSTICS=TRUE

  • HEALTHCHECK_SEND_START=1

will allow having the most minimalist usage:

@healthcheck
def job():
   """Url, send_diagnostics and send_start are grabbed from environment."""
   pass

Please see the Documentation for details.

Contributing

Contributions are very welcome. To learn more, see the Contributor Guide.

License

Distributed under the terms of the MIT license, Healthchecks Decorator is free and open source software.

Issues

If you encounter any problems, please file an issue along with a detailed description.

Credits

Metadata

Release files for healthchecks-decorator 0.5.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for healthchecks-decorator 0.5.0
File Size Uploaded
healthchecks_decorator-0.5.0.tar.gz 6.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for healthchecks-decorator 0.5.0
File Interpreter ABI Platform
healthchecks_decorator-0.5.0-py3-none-any.whl Python 3 none any Details

Total release size: 13.4 kB

Release files / healthchecks_decorator-0.5.0.tar.gz

Download URL healthchecks_decorator-0.5.0.tar.gz
Size 6.7 kB
Tags Source
SHA-256 checksum
How to use checksums
5b6cc59a1e8a9558e365a9c14cbf34182f1545a488254e35e782ad95259908a5
BLAKE2b-256 checksum
How to use checksums
eec46e5015dcf86a00fe213216c531e8e8ae40ba777585f1bdb6427f00476228
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.5

Release files / healthchecks_decorator-0.5.0-py3-none-any.whl

Download URL healthchecks_decorator-0.5.0-py3-none-any.whl
Size 6.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2331f263be0278fa00c1e3438a50bc04b37e6b306e2b065cfd86db20d0521852
BLAKE2b-256 checksum
How to use checksums
12bc8e083e2b3aafd3c2f026f0fc5b03784e2b375b47c47a5283c9de257f8d7a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.11.5

Release history Release notifications | RSS feed

This release

0.5.0 This release

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page