Skip to content

django 1.10

O projeto django-health-check verifica várias condições e fornece relatórios quando comportamentos anômalos são detectados.

As verificações de saúde incluídas neste projeto são:

  • cache
  • banco de dados
  • armazenamento

Escrever suas próprias verificações personalizadas também é rápido e fácil.

Casos de Uso

O caso de uso principal é monitorar condições via HTTP(S), com respostas disponíveis em formatos HTML e JSON. Quando você recebe uma resposta que inclui um ou mais problemas, pode decidir a ação apropriada, que pode incluir gerar notificações e/ou automatizar a substituição de um nó com falha por um novo. Se estiver monitorando a saúde em um ambiente de alta disponibilidade com um balanceador de carga que retorna respostas de vários nós, observe que algumas verificações (por exemplo, uso de disco e memória) retornarão respostas específicas para o nó selecionado pelo balanceador de carga.

Instalação

Primeiro, instale o pacote django-health-check:

```Dockerfile requirements.txt django-health-check==2.4.0



Adicione o verificador de saúde a uma URL que você deseja usar:

```python
    urlpatterns = [
        # ...
        url(r'^health_check/$', include('health_check.urls')),
    ]

Adicione o aplicativo health_check às suas INSTALLED_APPS:

    INSTALLED_APPS = [
        # ...
        'health_check',                             # obrigatório
        'health_check.db',                          # verificadores de saúde padrão do Django
        'health_check.cache',
        'health_check.storage'
    ]

Se estiver usando a verificação do banco de dados, execute as migrações:

$ python manage.py migrate

Configurando monitoramento

Você pode usar ferramentas como Pingdom, StatusCake ou outros robôs de tempo de atividade para monitorar o status do serviço. O endpoint /health_check/ responderá com um HTTP 200 se todas as verificações passarem e com um HTTP 500 se algum dos testes falhar.

Obtendo relatórios JSON compatíveis com máquina

Se você deseja relatórios de status legíveis por máquina, pode solicitar a endpoint /health_check/ com o cabeçalho HTTP Accept definido como application/json.

O backend retornará uma resposta JSON:

    $ curl -v -X GET -H "Accept: application/json" http://www.example.com/health_check/

    > GET /ht/ HTTP/1.1
    > Host: www.example.com
    > Accept: application/json
    >
    < HTTP/1.1 200 OK
    < Content-Type: application/json

    {
        "CacheBackend": "working",
        "DatabaseBackend": "working",
        "S3BotoStorageHealthCheck": "working"
    }

Isso deve produzir a seguinte saída:

    DatabaseHealthCheck      ... working
    CustomHealthCheck        ... unavailable: Something went wrong!

Semelhante à versão http, um erro crítico fará com que o comando saia com o código de saída 1.