跳转到主要内容

一个Python指标库,包含速率、统计分布和计时信息。

项目描述

https://badge.fury.io/py/yunomi.png https://secure.travis-ci.org/dreid/yunomi.png?branch=master

正如

它具有性能影响,Y U NO MEASURE IT!?

Yunomi可以提供对应用程序内部行为的洞察,为您的代码选定部分提供有用的统计数据和指标。它是Coda Hale的Java Metrics库核心部分的Python版本http://metrics.codahale.com/

停止猜测,开始测量

$ pip install yunomi

核心功能

计数器

简单的接口,用于增加和减少一个值。例如,这可以用来测量发送到队列中的作业总数,以及队列中待处理(尚未完成)的作业数量。当操作开始时,简单地增加计数器,当操作完成时,减少计数器。

仪表

测量事件随时间的变化率。有助于跟踪应用程序的某个部分请求的频率,以便相应地设置资源。跟踪平均速率(仪表重置以来的整体速率)和过去1、5和15分钟内统计上显著的事件速率(指数加权移动平均)。

直方图

测量数据流中值的统计分布。跟踪最小值、最大值、平均值、标准差等。它还测量中位数、第75、第90、第95、第98、第99和第99.9个百分位数。一个示例用例是查看99%的日子里每天的登录次数,忽略异常值。

计时器

仪表和直方图的组合,允许您测量代码某部分被调用的频率和操作持续时间的分布。例如,您可以查看代码击中数据库的频率以及这些操作通常需要多长时间。

示例

装饰器

使用yunomi库的最简单和最直接的方法。

计数器

您可以使用count_calls装饰器来计算函数被调用的次数。

>>> from yunomi import counter, count_calls
>>> @count_calls
... def test():
...     pass
...
>>> for i in xrange(10):
...     test()
...
>>> print counter("test_calls").get_count()
10

计时器

您可以使用time_calls装饰器来测量函数的执行时间,并从中获取分布数据。

>>> import time
>>> from yunomi import timer, time_calls
>>> @time_calls
... def test():
...     time.sleep(0.1)
...
>>> for i in xrange(10):
...     test()
...
>>> print timer("test_calls").get_mean()
0.100820207596

要求

Yunomi没有外部依赖,可以在PyPy和Python 2.6、2.7和3.3上运行。

历史

0.3.0 (2013-07-27)

  • 现在除了2.6和2.7之外,还支持Python 3.3。

  • 装饰器不再消耗返回值。

  • 现在可以重置仪表。

项目详情


下载文件

下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

yunomi-0.3.0.tar.gz (14.2 kB 查看哈希值)

上传时间

构建分布

yunomi-0.3.0-py2.py3-none-any.whl (23.7 kB 查看哈希值)

上传时间 Python 2 Python 3

由以下组织支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面