具有速率、统计分布和计时信息的python度量库。
yunomi的Python项目详细描述
如所示:
It has performance implications, Y U NO MEASURE IT!?
yunomi提供了对应用程序内部行为的洞察,提供了关于代码选定部分的有用统计和度量。 它是Java Metrics library by Coda Hale核心部分的python端口。
停止猜测,开始测量:
$ pip install yunomi
核心功能
计数器
增加和减少值的简单接口。 例如,这可用于测量发送到队列的作业总数,以及队列中挂起(尚未完成)的作业数。 只需在操作开始时增加计数器,在操作完成时减小计数器即可。
仪表
测量事件随时间变化的速率。 有助于跟踪应用程序的某个部分获取请求的频率,以便可以相应地设置资源。 跟踪平均速率(自仪表重置后的总体速率)和仅对过去1、5和15分钟内发生的事件(指数加权移动平均)具有统计显著性的速率。
直方图
测量数据流中值的统计分布。 跟踪最小值、最大值、平均值、标准差等。 它还测量中位数、第75、90、95、98、99和99.9个百分点。 一个示例用例是查看99%的日登录次数,忽略异常值。
计时器
米和直方图的一种有用的组合,使您能够测量代码的一部分被调用的速率和操作持续时间的分布。 例如,您可以看到代码访问数据库的频率以及这些操作需要多长时间。
示例
decorators
使用Yunomi库的最简单和最简单的方法。
计数器
您可以使用count_callsdecorator来计算函数被调用的次数。
>>> fromyunomiimportcounter,count_calls>>> @count_calls... deftest():... pass...>>> foriinxrange(10):... test()...>>> printcounter("test_calls").get_count()10
计时器
您可以使用time_调用decorator来计时函数的执行并从中获取分布数据。
>>> importtime>>> fromyunomiimporttimer,time_calls>>> @time_calls... deftest():... time.sleep(0.1)...>>> foriinxrange(10):... test()...>>> printtimer("test_calls").get_mean()0.100820207596
要求
yunomi没有外部依赖项,运行在pypy和python 2.6、2.7和3.3上。
历史记录
0.3.0(2013-07-27)
- Python3.3现在是2.6和2.7的附加支持。
- 装潢师不再吃回值了。
- 现在可以重置仪表。