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

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第三方库


热门话题
java关闭应用程序按钮Listener   Java中的多线程同步在Java示例中的思考   java如何查看Tomcat正在使用/访问的JAR?   java My代码在调用垃圾收集器后不会终止   多线程Java连接线程池和connectionfactory?   java在运行时修改JAR文件   java Android:使用光标时引发IllegaleException   在Netbeans中测试不可执行库的java?   泛型在参数上强制子类Java类型   spring Java:继承与依赖注入“自动连线”   javascript如何解析这个xml元素   java打印特定序列中的数组   带有ProcessingTimeSessionWindow的java Apache Flink自定义触发器   java如何配置消息驱动的Bean应用程序和Glassfish来使用来自远程MessageBroker的消息?