金字塔应用程序的服务状态实用程序

lovely-ws-status的Python项目详细描述


https://img.shields.io/pypi/v/lovely-ws-status.svghttps://img.shields.io/pypi/pyversions/lovely-ws-status.svghttps://travis-ci.org/lovelysystems/lovely-ws-status.svg?branch=master

此包为金字塔应用程序提供服务状态实用程序。 注册您自己的状态处理程序并查看所有注册的服务状态 svc_status棱锥视图中的处理程序。

状态处理程序

状态处理程序可以是检查 应用程序堆栈。例如,可以检查数据库 连接仍在工作,或正在检查某些外部服务。地位 处理程序必须返回一个具有state属性的dict,该属性可以具有 OKYELLOWRED。像detail这样的附加属性可以是 可以选择添加,但将仅显示在json svc status视图中。

可调用

将状态处理程序创建为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)
< H3>混合类< EH3>

为了简化状态提供者的实现,有一个MIXIN类 它处理状态并提供登录状态更改:

>>> 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状态视图

有一个金字塔视图可以添加到您的项目中,它创建一个 端点以查看所有注册状态提供的实时服务状态 处理程序。

要注册视图,需要在应用程序中配置此模块 在应用程序工厂中添加这两行:

config.include('lovely.ws.status.svcstatus')
config.scan('lovely.ws.status.svcstatus')

调用/svc_statusendpoint将返回一个csv响应和一个输出 像这样:

DatabaseConnection OK
UserService RED

还可以通过调用 svc_status带有接受头的终结点application/json或通过调用 svc_status.json终结点。其他属性如细节将 仅在json格式的输出中显示。输出如下:

{
    "DatabaseConnection": {
        "state": "OK"
    },
    "UserService":{
        "state": "OK",
        "detail": "Service not available"
    }
}

调用svc_status.prometheusendpoint将服务状态返回为 普罗米修斯的模板。输出如下:

# 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 status test suite中找到。

探头状态视图

此视图允许检查服务是否可用,并使 服务。默认情况下,视图返回状态200和主体OK

探测状态视图可以包含在 server.py在应用程序工厂中添加这两行:

config.include('lovely.ws.status.probestatus')
config.scan('lovely.ws.status.probestatus')

退役可用于使服务不可用于负载平衡器 在服务关闭之前。

更多信息可以在probe status test suite中找到。

开发

有关如何贡献的信息可以在DEVELOPMENT.rst文件中找到。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何减少使用mapStruct映射java bean的时间   java不提供在SpringAOPTTransaction中指定的方法名序列。xml有什么关系?   java如何将JButtons与cardlayout结合使用   java Android Recyclerview不显示任何数据   java JavaFX获取我的应用程序的primaryStage(主菜单)   标记函数参数的Java注释应该是线程安全的   arrays程序需要java中的多个命令行参数,在实现时需要帮助   java Spring将数据附加到当前事务   java在递归中使用相同的变量   java击键和KeyListener将无法工作   Java字典。util。地图进入和收集。排序(列表、比较器)   Selenium:按类名Java仅查找可见元素   java通过web应用程序连接两个调用   当内容更改而不刷新时,javascript无法显示正在加载的GIF图像   java Android如何借助SensorEvent获得不同频率的振幅   从迭代器到Java 8流的转换   使用键绑定的java   java Web Api参数设计风格   java类外的访问接口