金字塔的健康检查扩展
pyramid_health的Python项目详细描述
简单的金字塔健康检查端点,带有维护模式和应用程序 检查。
安装
使用setuptools安装,例如(在virtualenv中):
$ pip install pyramid_health
设置
安装pyramid_health后,必须使用config.include 将其包含到金字塔项目配置中的机制。在你的 金字塔项目的__init__.py:
config=Configurator(.....)config.include('pyramid_health')
或者,您可以在 .ini文件:
[app:myapp]pyramid.includes=pyramid_health
用法
金字塔健康配置(默认值):
[app:myapp]healthcheck.url=/healthhealthcheck.disablefile=/tmp/maintenance # touch this file to activatehealthcheck.maintenance_code=299 # Code to return in maintenance modehealthcheck.failure_code=503 # Code to return when one or more checks fail
操作
当应用程序正常时,金字塔健康端点返回200 OK。 当您启用维护模式时,端点返回299 MAINTENANCE 和日志Health response: MAINTENANCE。 如果对healthcheck端点的请求请求应用程序检查,并且 一个或多个应用程序检查返回一个错误,端点返回 503 ERROR和日志Health response: ERROR (<all-check-results>)。
应用程序检查
应用程序检查是应用程序中订阅 pyramid_health.HealthCheckEvent事件,执行特定的运行状况检查并 将结果报告为状态(OK或ERROR)和可选消息。
除非使用 请求参数checks设置为true或all(例如: GET /health?checks=all)
要在应用程序中添加应用程序,请签入:
frompyramid.eventsimportsubscriberfrompyramid_healthimportHealthCheckEvent@subscriber(HealthCheckEvent)defdb_check(event):try:db.ping()except:event.report(name='db',status='NOK',message='ping failed')else:event.report(name='db',status='OK')
注意:
- 您可以或不可以报告后续支票
维护模式
在维护模式下,healthcheck端点的响应更改为通知 此后端不可用的http客户端。通常是负载平衡器 在维护中轮询后端将停止向后端发送流量 模式。
默认情况下,响应状态代码为299 MAINTENANCE。你可以 用healthcheck.maintenance_code更改它。