Pyramid健康检查扩展
项目描述
Pyramid的简单健康检查端点,具有维护模式和应用程序检查。
Bitbucket: https://github.com/ludia/pyramid_health
安装
使用setuptools安装,例如(在虚拟环境中)
$ pip install pyramid_health
设置
一旦安装了pyramid_health
,您必须使用config.include
机制将其包含到您的Pyramid项目配置中。在您的Pyramid项目的__init__.py
config = Configurator(.....)
config.include('pyramid_health')
另外,您可以在您的.ini
文件中使用pyramid.includes
配置值
[app:myapp]
pyramid.includes = pyramid_health
使用方法
Pyramid_health配置(值是默认值)
[app:myapp]
healthcheck.url = /health
healthcheck.disablefile = /tmp/maintenance # touch this file to activate
healthcheck.maintenance_code = 299 # Code to return in maintenance mode
healthcheck.failure_code = 503 # Code to return when one or more checks fail
操作
当您的应用程序运行正常时,pyramid_health端点返回200 OK
。当您启用维护模式时,端点返回299 MAINTENANCE
并记录Health response: MAINTENANCE
。如果对健康检查端点的请求要求应用程序检查,并且一个或多个应用程序检查返回错误,端点将返回503 ERROR
并记录Health response: ERROR (<all-check-results>)
。
应用程序检查
应用程序检查是在您的应用程序中订阅了 pyramid_health.HealthCheckEvent 事件的例行程序,执行特定的健康检查并将结果报告为状态(OK 或 ERROR)和可选消息。
除非您明确请求,否则不会调用应用程序检查,请求参数 checks 设置为 true 或 all(例如:GET /health?checks=all)。
要在您的应用程序中添加应用程序检查
from pyramid.events import subscriber
from pyramid_health import HealthCheckEvent
@subscriber(HealthCheckEvent)
def db_check(event):
try:
db.ping()
except:
event.report(name='db', status='NOK', message='ping failed')
else:
event.report(name='db', status='OK')
注意
您可以选择报告成功或失败的健康检查。
维护模式
在维护模式下,健康检查端点的响应将更改为通知HTTP客户端此后端不可用。通常,负载均衡器在维护模式下会停止向后端发送流量。
默认响应状态码为 299 MAINTENANCE。您可以使用 healthcheck.maintenance_code 来更改它。
项目详情
pyramid_health-1.2.1.tar.gz 的哈希
算法 | 哈希摘要 | |
---|---|---|
SHA256 | dd4e1ee771fac739a3fdb3562cc4a7ff8965672dbd4c91a0b2c84b5e18190a22 |
|
MD5 | e9cc0b8a15724fa505683a4b48efbe6f |
|
BLAKE2b-256 | aa63dd193d92110291705c3943317b33a0e737a88f60514f1dfb51542c7d8954 |