Settings ======== Settings can be configured via the `HEALTH_CHECK` dictionary. .. data:: WARNINGS_AS_ERRORS Treats :class:`ServiceWarning` as errors, meaning they will cause the views to respond with a 500 status code. Default is `True`. If set to `False` warnings will be displayed in the template on in the JSON response but the status code will remain a 200. Security -------- Django health check can be used as a possible DOS attack vector as it can put your system under a lot of stress. As a default the view is also not cached by CDNs. Therefore we recommend to use a secure token to protect you application servers from an attacker. 1. Setup HTTPS. Seriously... 2. Add a secure token to your URL. Create a secure token: .. code:: shell python -c "import secrets; print(secrets.token_urlsafe())" Add it to your URL: .. code:: python urlpatterns = [ # ... url(r'^ht/super_secret_token/'), include('health_check.urls')), ] You can still use any uptime bot that is URL based while enjoying token protection. .. warning:: Do NOT use Django's `SECRET_KEY` setting. This should never be exposed, to any third party. Not even your trusted uptime bot. `psutil` -------- The following default settings will be used to check for disk and memory utilization. If you would prefer different thresholds, you can add the dictionary below to your Django settings file and adjust the values accordingly. If you want to disable any of these checks, set its value to `None`. .. code:: python HEALTH_CHECK = { 'DISK_USAGE_MAX': 90, # percent 'MEMORY_MIN' = 100, # in MB } With the above default settings, warnings will be reported when disk utilization exceeds 90% or available memory drops below 100 MB. .. data:: DISK_USAGE_MAX Specify the desired disk utilization threshold, in percent. When disk usage exceeds the specified value, a warning will be reported. .. data:: MEMORY_MIN Specify the desired memory utilization threshold, in megabytes. When available memory falls below the specified value, a warning will be reported. Celery Health Check ------------------- Using `django.settings` you may exert more fine-grained control over the behavior of the celery health check .. list-table:: Additional Settings :widths: 25 10 10 55 :header-rows: 1 * - Name - Type - Default - Description * - `HEALTHCHECK_CACHE_KEY` - String - `djangohealtcheck_test` - Specifies the name of the key to write to and read from to validate that the cache is working. * - `HEALTHCHECK_CELERY_QUEUE_TIMEOUT` - Number - `3` - Specifies the maximum amount of time a task may spend in the queue before being automatically revoked with a `TaskRevokedError`. * - `HEALTHCHECK_CELERY_RESULT_TIMEOUT` - Number - `3` - Specifies the maximum total time for a task to complete and return a result, including queue time.