用于监视生产系统性能的轻量级计时器和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 pynba
0

或脚本用法:

$ pip install pynba
1

贡献

调试时,可以使用以下命令重建C包:

$ pip install pynba
2

与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的根据麻省理工学院的执照。 有关详细说明,请参见许可证文档。

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

推荐PyPI第三方库


热门话题
java如何在饼图的图例中只包含每个类别的长描述?   json Grails应用程序,可以从Java DAO服务访问数据库如何访问控制器中的服务?   java将大型远程数据库表同步到本地数据库表,该表包含字段“lastModificationTime”   java如何在JFrame中创建交互式地图   web服务如何创建异步Java Restlet web服务?   java开始读取特定字节   java在jTable中返回不带SQL的搜索结果(带DAOMock)   jakarta ee java ee MVC模式,模型和视图是否直接相互通信   当由负载平衡器处理时,java Spring引导CSRF失败   java为什么JavaMail连接超时太长   java IzPack需要从安装程序安装JDK/JRE版本   java如何创建一个只接受实现Iterable的元素的方法   java spring数据存储库无法使用idClass保存实体   java如何从列表中删除重复项?   java在SocketChannel中发送大量数据时,影响速度的因素有哪些?   算法分支和绑定错误:节点1无法转换为java。可比的   java使用邮件API从Swing应用程序创建Jar文件   java枚举与简单常量声明?