Skip to main content

Healthchecks Decorator

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

healthchecks_decorator-0.5.0.tar.gz (6.7 kB view hashes)

Uploaded Source

Built Distribution

healthchecks_decorator-0.5.0-py3-none-any.whl (6.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page