用于监视生产系统性能的轻量级计时器和wsgi中间件
pynba的Python项目详细描述
PYNBA
pynba是一个wsgi中间件,用于 pinba 。它允许实时监控/统计 使用mysql作为只读接口的服务器。它适用于python 2.7,>;=3.3和 PyPy</P>
它收集并处理由多个python进程通过udp发送的数据。 并以简单的"报告"的良好可读形式显示统计信息 为原始数据提供只读接口,以便 生成更复杂的报告和统计信息。
用户还可以使用带有任意 标签.
为什么是另一个统计经理?
因为品巴摇滚!
并且iscool entertainment已经使用pinba来监视基于php的 应用程序。
要求
这个库只依赖于pinba。 在使用PYNBA之前,您需要安装这些软件包。
安装过程需要安装setuptools。 如果不是,请参阅此软件包的安装。
设置
如果要安装正式版本,请执行以下操作:
$ pip install pynba
但我您更喜欢使用当前的开发版本,请执行:
$ git clone https://github.com/johnnoone/pynba.git $ python setup.py install
用法
说您的主要wsgi应用程序是:
def app(environ, start_response): ...
导入pynba decorator,并用它装饰主应用程序:
from pynba.wsgi import monitor @monitor(('127.0.0.1', 30002)) def app(environ, start_response): ...
每次处理应用程序时,都会发送一个新的UPD流。
您还可以标记流程,例如:
@monitor(('127.0.0.1', 30002), tags={'foo': 'bar'}) def app(environ, start_response): ...
最后,您可以使用计时器来测量代码的特定部分。 对于它,只需导入pynba代理,并使用它创建新计时器:
from pynba.wsgi import pynba timer = pynba.timer(foo="bar") timer.start() ... timer.stop()
但你可能想监督简单的脚本。对于这种用法,请使用脚本监视器
from pynba.util import ScriptMonitor monitor = ScriptMonitor(('127.0.0.1', 30002), tags={'foo': 'bar'}) timer = monitor.timer(foo='bar') timer.start() ... timer.stop() monitor.send()
有些用例在src/examples/
记录和调试
pynba登录到"pynba"记录器。你应该在里面插个处理器。例如, 假设您想将所有内容记录到syslog,这里是modop:
import logging import logging.handlers logger = logging.getLogger('pynba') logger.setLevel(logging.DEBUG) logger.setHandler(logging.handlers.SysLogHandler)
另一个方面是,报告将尽可能谨慎,而不是 对错误引发异常。此功能可以直接禁用到 报告者实例。
对于wsgi用法:
from pynba.wsgi import PynbaMiddleware monitored_app = PynbaMiddleware(app, ('127.0.0.1', 30002)) monitored_app.reporter.raise_on_fail = True
装饰版:
$ pip install pynba0
或脚本用法:
$ pip install pynba1
贡献
调试时,可以使用以下命令重建C包:
$ pip install pynba2
与php扩展的区别
关于发送的数据:
ru-utime 和 ru-stime 表示当前 处理,而不是共享资源。
无法使用当前wsgi自动处理文档大小 规范。您可以手动设置此值,如下所示:
$ pip install pynba
3内存峰值 当前也未实现。和之前的数据一样, 您可以手动设置此值,如下所示:
$ pip install pynba
4内存占用 目前也未实现。和之前的数据一样, 您可以手动设置此值,如下所示:
$ pip install pynba
5
关于计时器:
python版本允许每个计时器标记有多个值。 只需声明任何序列、映射或可调用。此示例:
$ pip install pynba
6将为pinba数据库中的3个标记填充4个值:
$ pip install pynba
7
其他附加功能:
- 脚本监视器 允许监视单个脚本。 iscool娱乐 使用它来监控我们的AMQ员工。
许可证
这个包裹是RELE的根据麻省理工学院的执照。 有关详细说明,请参见许可证文档。