Django Health Check
If you use or like the project, click Star and Watch to generate metrics and i evaluate project continuity.
Install:
pip install django-k8s-health-check
Usage Health only:
- In your urls:
from django_k8s_health_check.views import HealthView ... urlpatterns = [ path('', views.HealthView.as_view()), ]
Usage in kubernetes:
If use health check in kubernetes, you need to add kubernetes ip/host to django allowed_hosts, but is a bad practice, especially if there are multiple ip/hosts... For this, i created a middleware to pass dynamic ip/hosts, using multiples validators
-
Request Way
-
Add the middleware to django middleware`s:
MIDDLEWARE = [ 'django_k8s_health_check.middleware.HealthCheckMiddleware', ... ] -
Try this request:
import requests requests.get('your-url', headers={'X-Health': 'health-check'}) -
Put this in your yml
livenessProbe: httpGet: path: /your-path httpHeaders: - name: X-Health value: health-check timeoutSeconds: 5 -
Check de configuration section, and change for security reasons...
-
-
Command Way (test database and cache only, this not guarantee application is running):
-
Add this app to your installed apps:
INSTALLED_APPS = [ 'django_k8s_health_check', ] -
Try to run this command:
python manage.py health_check -
Put this in your yml
livenessProbe: exec: command: ["python", "manage.py", "health_check"] timeoutSeconds: 5
-
Configuration:
HEALTH_CHECK = {
# View
'SERVICE_NAME': None, # Used only in API
'CHECK_DATABASE': True,
'CHECK_CACHE': True,
# Middleware (All bellow is used only in API)
'HEADER_FIELD': 'X-Health',
'HEADER_VALUE': 'health-check',
'ALLOWED_PATHS': None, # all others urls, use original ALLOWED_HOSTS. Ex: ['api/v1/health', '/health'], None allow all
'ALLOWED_HOSTS': None, # check request host is in a list, Ex: ['127.0.0.1', 'www.domain.com'], None allow all
}
Release files for django-k8s-health-check 1.2.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| django_k8s_health_check-1.2.1.tar.gz | 7.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| django_k8s_health_check-1.2.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.8 kB
Release files / django_k8s_health_check-1.2.1.tar.gz
| Download URL | django_k8s_health_check-1.2.1.tar.gz |
|---|---|
| Size | 7.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
813586181c5189f650d9e1c02d72b10d9ef67226a3eb12fc1b4f0307f91bc007
|
|
BLAKE2b-256 checksum How to use checksums |
37df9dcfa3603e75a3dc6b0f9b3d7c9f4974a463ae90bad2a50b07b6eb82bcaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|
Release files / django_k8s_health_check-1.2.1-py3-none-any.whl
| Download URL | django_k8s_health_check-1.2.1-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
c7636415990b5e6d04fba2ec1bff5cd6918b4010452be03f377e12b6d20ace58
|
|
BLAKE2b-256 checksum How to use checksums |
0e1fea678367f5a2ba6967fee502fe7f1d47095fbbd49f81f157933208f7a007
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.14
|