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



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+