Pyramid应用程序服务状态工具
项目描述
此软件包为Pyramid应用程序提供服务状态工具。注册您自己的状态处理程序,并在Pyramid的svc_status视图中查看所有注册处理程序的服务状态。
状态处理程序
状态处理程序可以是任何检查应用程序堆栈任何部分的方法或类。例如,这可以是一个检查数据库连接是否仍然正常工作的检查,或者检查某些外部服务。状态处理程序必须返回一个包含状态属性的字典,该状态属性可以是OK、YELLOW或RED的值。可以可选地添加额外的属性,如detail,但仅在JSON SVC状态视图中显示。
作为可调用对象
创建状态处理程序作为Python函数
>>> from lovely.ws.status import OK
>>> def statusHandler():
... # Do whatever you need to do to check the status
... return {
... 'state': OK
... }
注册状态处理程序
>>> from lovely.ws.status import addStatusHandler
>>> addStatusHandler('DatabaseConnection', statusHandler)
状态处理程序也可以是类,只需提供一个__call__方法
>>> from lovely.ws.status import RED
>>> class StatusHandler(object):
... def __call__(self):
... # Do whatever you need to do to check the status
... return {
... 'state': RED,
... 'detail': 'Service not available',
... }
>>> statusHandler2 = StatusHandler()
>>> addStatusHandler('UserService', statusHandler2)
混入类
为了简化状态提供者的实现,有一个混入类可以处理状态并提供状态变化的日志记录
>>> from lovely.ws.status import YELLOW, GREEN
>>> from lovely.ws.status.statehandler import StateHandlerMixin
>>> class MyHandler(StateHandlerMixin):
... def __init__(self):
... self.setState(YELLOW)
>>> myHandler = MyHandler()
>>> addStatusHandler('myHandler', myHandler)
现在只需使用setState来更改状态。setState允许在状态上设置任何额外的属性
>>> myHandler.setState(GREEN, detail='running')
SVC状态视图
有一个Pyramid视图可以添加到您的项目中,该视图创建了一个端点,可以查看由所有注册状态处理程序提供的实时服务状态。
要注册视图,您需要通过在应用程序中添加这两行来配置此模块
config.include('lovely.ws.status.svcstatus')
config.scan('lovely.ws.status.svcstatus')
调用 /svc_status 端点将返回一个类似以下的CSV响应
DatabaseConnection OK UserService RED
也可以通过调用带有接受头 application/json 的 svc_status 端点或调用 svc_status.json 端点来以JSON格式接收响应。额外的属性,如详细信息,仅在JSON格式输出中显示。输出将如下所示
{
"DatabaseConnection": {
"state": "OK"
},
"UserService":{
"state": "OK",
"detail": "Service not available"
}
}
调用 svc_status.prometheus 端点将以Prometheus模板的形式返回服务状态。输出将如下所示
# HELP svc_status Status 0->OK, 1->YELLOW, 2->RED
# TYPE svc_status untyped
svc_status{name="DatabaseConnection"} 0
# HELP svc_status Status 0->OK, 1->YELLOW, 2->RED
# TYPE svc_status untyped
svc_status{name="UserService"} 2
更多信息可以在 SVC状态测试套件 中找到。
探针状态视图
此视图允许检查服务是否可用,并退役服务。默认情况下,视图返回状态码200和正文OK。
可以通过在应用工厂中添加以下两行将探针状态视图包含到Pyramid项目中 server.py 文件
config.include('lovely.ws.status.probestatus')
config.scan('lovely.ws.status.probestatus')
退役可以在服务关闭之前使服务对负载均衡器不可用。
更多信息可以在 探针状态测试套件 中找到。
开发
有关如何贡献的信息可以在 DEVELOPMENT.rst 文件中找到。
项目详情
lovely-ws-status-1.0.0.tar.gz 的散列
| 算法 | 散列摘要 | |
|---|---|---|
| SHA256 | ff5e610c6ce3951654448bd3f033866676bb67f4bfdb4bbed6f56bc98c98c257 |
|
| MD5 | 3ceab913fc7e327995b4b1efb8d0e1f9 |
|
| BLAKE2b-256 | 4d47692a023401c541ebfb469c25bb155977e124ea9160dc0e830355a3f2d03b |