Skip to content

Latest commit

 

History

History
74 lines (49 loc) · 1.75 KB

README.md

File metadata and controls

74 lines (49 loc) · 1.75 KB

django-health-check

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):
        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.

plugin_dir.register(DjangoDatabaseBackend)

Install

Add this to urls.py

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

Add required apps:

    '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)

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.

Profit

Screenshot of django-health-check

Our mascot

django-health-check is the most interresting project in the world

Dependencies

Python 2.7+ (Yes, thats right, we have Python 3 support)

Django 1.2+