Skip to main content

a pluggable app that runs a full check on the deployment, using a number of plugins to check e.g. database, queue server, celery processes, etc.

Project description

django-health-check
==================

[![version](https://img.shields.io/pypi/v/django-health-check.svg)](https://pypi-hypernode.com/pypi/django-health-check/)
[![ci](https://api.travis-ci.org/KristianOellegaard/django-health-check.svg?branch=master)](https://travis-ci.org/KristianOellegaard/django-health-check)
[![coverage](https://coveralls.io/repos/KristianOellegaard/django-health-check/badge.svg?branch=master)](https://coveralls.io/r/KristianOellegaard/django-health-check)
[![code-health](https://landscape.io/github/KristianOellegaard/django-health-check/master/landscape.svg?style=flat)](https://landscape.io/github/KristianOellegaard/django-health-check/master)
[![BSD License](https://img.shields.io/badge/license-BSD-blue.svg)](LICENSE)

This project checks a number of backends, if they are able to connect and do a simple action, e.g. check out the django ORM backend:


```python

class DjangoDatabaseBackend(BaseHealthCheckBackend):

def check_status(self):
try:
obj = TestModel.objects.create(title="test")
obj.title = "newtest"
obj.save()
obj.delete()
return True
except IntegrityError:
raise ServiceReturnedUnexpectedResult("Integrity Error")
except DatabaseError:
raise ServiceUnavailable("Database error")


```

The project is made using some of the same codes, that the django admin site uses - so when you have sucessfully written a new plugin, you register it to the pool, e.g.

```python
plugin_dir.register(DjangoDatabaseBackend)
```


Install
=======

Add this to urls.py

```python
url(r'^ht/', include('health_check.urls'))
```

Add required apps:

```python
'health_check',
'health_check_celery',
'health_check_db',
'health_check_cache',
'health_check_storage',
```
(remember to add dependencies, e.g. djcelery - however you should have that already, if you have celery running).
You'll also have to make sure that you have a
`result backend <http://celery.readthedocs.org/en/latest/configuration.html?highlight=result_backend#std:setting-CELERY_RESULT_BACKEND>`_
configured.
If you are using celery 3, use ``health_check_celery3`` instead of ``health_check_celery``.


Set up monitoring
=================

E.g. add to pingdom - django-health-check will return HTTP 200 if everything is OK and HTTP 500 if *anything* is not working.


Dependencies
============

Django 1.4+

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

django-health-check-1.1.1.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

django_health_check-1.1.1-py3-none-any.whl (15.2 kB view details)

Uploaded Python 3

File details

Details for the file django-health-check-1.1.1.tar.gz.

File metadata

File hashes

Hashes for django-health-check-1.1.1.tar.gz
Algorithm Hash digest
SHA256 6d3265231ff8baa56d2173247b31ac22f622ecf3aead9fd28b174873c9f048c8
MD5 a10ee76b822447bf37bc9238db1d4247
BLAKE2b-256 029849cbd67adfadf23bb0aaa2990346672137dd1aeddaf925334e963828959f

See more details on using hashes here.

File details

Details for the file django_health_check-1.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for django_health_check-1.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4052664855a03ae7785c45357559fe399284a45bddc51c9559feb565a58cb848
MD5 4727385e6fd8894e6ae50225c7b5432d
BLAKE2b-256 3a41c89495799e0807506f380c5329d212f6bceeba518975900ba802be037da2

See more details on using hashes here.

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