Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/pennersr/django-healthpoint
Framework for adding an endpoint for health checks to your project.
https://github.com/pennersr/django-healthpoint
django health-checks python
Last synced: about 1 month ago
JSON representation
Framework for adding an endpoint for health checks to your project.
- Host: GitHub
- URL: https://github.com/pennersr/django-healthpoint
- Owner: pennersr
- License: mit
- Created: 2017-10-29T20:40:52.000Z (about 7 years ago)
- Default Branch: main
- Last Pushed: 2024-03-05T10:36:33.000Z (9 months ago)
- Last Synced: 2024-09-14T09:51:24.935Z (2 months ago)
- Topics: django, health-checks, python
- Language: Python
- Homepage:
- Size: 28.3 KB
- Stars: 10
- Watchers: 3
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
README
==============================
Welcome to django-healthpoint!
==============================.. image:: https://badge.fury.io/py/django-healthpoint.png
:target: http://badge.fury.io/py/django-healthpoint.. image:: https://github.com/pennersr/django-healthpoint/actions/workflows/ci.yml/badge.svg
:target: https://github.com/pennersr/django-healthpoint/actions.. image:: https://img.shields.io/pypi/v/django-healthpoint.svg
:target: https://pypi.python.org/pypi/django-healthpoint.. image:: https://coveralls.io/repos/pennersr/django-healthpoint/badge.png?branch=main
:alt: Coverage Status
:target: https://coveralls.io/r/pennersr/django-healthpoint.. image:: https://pennersr.github.io/img/bitcoin-badge.svg
:target: https://blockchain.info/address/1AJXuBMPHkaDCNX2rwAy34bGgs7hmrePEr.. image:: https://pennersr.github.io/img/emacs-badge.svg
:target: https://www.gnu.org/software/emacs/Framework for adding an endpoint for health checks to your project.
Source code
http://github.com/pennersr/django-healthpointQuickstart
==========Install the app::
# settings.py
INSTALLED_APPS = [
...
'healthpoint'
]# If specified, this user is able to see the details for each
# individual check in the endpoint.
HEALTHPOINT_BASICAUTH_USERNAME = 'john'
HEALTHPOINT_BASICAUTH_PASSWORD = 'doe'# If set to True authentication is required for executing the
# health checks.
HEALTHPOINT_AUTH_REQUIRED = True# urls.py
urlpatterns = [
...
url(r'^', include('healthpoint.urls')),
]Add a module named ``health.py`` to any of your apps. For example::
from datetime import timedelta
from django.contrib.auth.models import User
from django.utils import timezonefrom healthpoint.decorators import health_check
@health_check
def user_signup():
last_user = User.objects.last()
time_since_last_signup = timezone.now() - last_user.date_joined
# Return True/False, throw an exception, or return a tuple with a
# detail message.
return (
time_since_last_signup <= timedelta(days=1),
"last signup was: {}".format(last_user.date_joined))The health checks can be accessed via the ``/health/`` endpoint:
- It executes all health checks, and reports status 200 if all checks succeed, status 500 otherwise.
- If a staff user is logged in, the endpoint reports the result for each individual check::
{
"success": {},
"error": {
"myproject.myapp.health.user_signup": "Last signup was: 2017-10-29 08:45:51"
}
}- To provide more detail on the result, the ``@health_check`` can return a tuple ``(success:bool, detail:str)``. The detail message will be listed in the result.