跳转到主要内容

Pyramid健康检查扩展

项目描述

Pyramid的简单健康检查端点,具有维护模式和应用程序检查。

安装

使用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 事件的例行程序,执行特定的健康检查并将结果报告为状态(OKERROR)和可选消息。

除非您明确请求,否则不会调用应用程序检查,请求参数 checks 设置为 trueall(例如: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 (4.0 kB 查看哈希)

上传日期

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误日志 StatusPage StatusPage 状态页面