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.
Python HTML
Latest commit 1ef9441 Oct 5, 2016 Johannnes Hoppe Bump version number to 1.2.0



version ci coverage code-health BSD 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:

class DjangoDatabaseBackend(BaseHealthCheckBackend):

    def check_status(self):
            obj = TestModel.objects.create(title="test")
            obj.title = "newtest"
            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.



Add this to urls.py

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

Add required apps:


(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.


Django 1.4+