一个简单的Django应用程序/框架,用于发布健康检查
项目描述
一个简单的Django应用程序/框架,用于发布用于监控目的的健康检查
功能
通过Python函数进行自定义检查
远程健康检查
心跳监控
状态
安装
pip install django_healthchecks
使用
将以下内容添加到您的urls.py中
url(r'^healthchecks/', include('django_healthchecks.urls')),
添加一个包含可用健康检查的设置
HEALTH_CHECKS = {
'postgresql': 'django_healthchecks.contrib.check_database',
'cache_default': 'django_healthchecks.contrib.check_cache_default',
'solr': 'your_project.lib.healthchecks.check_solr',
}
您还可以通过HTTP包含健康检查。当您想监控依赖的服务是否启动时,这很有用
HEALTH_CHECKS = {
...
'my_microservice': 'https://my-service.services.internal/healthchecks/',
...
}
默认情况下,HTTP健康检查将在500ms后超时。您可以如下重写此设置
HEALTH_CHECKS_HTTP_TIMEOUT = 0.5
默认情况下,状态码始终为200,您可以使用HEALTH_CHECKS_ERROR_CODE
设置将其更改为其他值
HEALTH_CHECKS_ERROR_CODE = 503
您还可以通过基本认证添加一些简单的保护措施到您的健康检查中。这可以按检查指定,或者可以使用通配符*
。
HEALTH_CHECKS_BASIC_AUTH = {
'*': [('admin', 'pass')],
'solr': [],
}
使用心跳
心跳提供周期性更新,用于检查服务是否最近处于活动状态。如果服务在超时时间内没有反馈,可以触发健康检查。要使用心跳,请将应用程序添加到 INSTALLED_APPS。
INSTALLED_APPS = [
...
"django_healthchecks",
]
包含以下检查之一
HEALTH_CHECKS = {
...
'heartbeats': 'django_healthchecks.contrib.check_heartbeats'
...
'expired_heartbeats': 'django_healthchecks.contrib.check_expired_heartbeats',
...
}
可选地,定义一个初始超时
HEALTHCHECKS_DEFAULT_HEARTBEAT_TIMEOUT = timedelta(days=1)
让您的代码跟踪心跳
from datetime import timedelta
from django_healthchecks.heartbeats import update_heartbeat
update_heartbeat("myservice.name", default_timeout=timedelta(days=2))
或使用装饰器
from django_healthchecks.heartbeats import update_heartbeat_on_success
@update_heartbeat_on_success("myservice.name", default_timeout=...)
def long_running_task():
....
每次调用 update_heartbeat() 时,心跳将重置。如果心跳在 timeout 之前没有收到更新,服务名称将在 check_expired_heartbeats 检查中提及。
更新超时
default_timeout 参数仅在创建时分配。任何更新都通过 Django 管理员进行。为了在代码部署时自动更新超时,请使用 timeout 参数。这将每次调用 update_heartbeat() 函数时替换存储的超时值,擦除在 Django 管理员中进行的任何更改。
项目详情
关闭
哈希值 for django_healthchecks-1.5.0-py2.py3-none-any.whl
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 25eb021a4a94240b28d996e82775ad6c3b392a2b262360b965a24b88fcfad78d |
|
MD5 | 233a3f7d3e12641dd3dac9f1ecab736a |
|
BLAKE2b-256 | 383cc4063946ae0dfc3d16de5615b1e3161b8d88a768d70078b9811977703d80 |