性能指标,基于Coda Hale的Yammer指标

applipy-metrics的Python项目详细描述


应用指标

Note: This is a hard fork of Lightricks/PyFormance at commit d59501e

的核心部分的Python端口 Java Metrics library by Coda Hale,带 灵感来自YUNOMI - Y U NO MEASURE IT?

Applipy Metrics是一个用于性能度量和统计的工具集,具有 允许在发生意外行为时发出事件的信令机制

核心功能

仪表

仪表公制是特定值的瞬时读数。在

计数器

增加和减少值的简单接口。例如,可以这样 用于测量发送到队列的作业总数,以及 队列中挂起(尚未完成)的作业数。只需增加 操作开始时计数器,完成时递减。在

总结

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

正则表达式分组

使用API时非常有用。RegexRegistry允许分组API调用和 从单个位置测量,而不必在中定义不同的计时器 不同的地方。在

>>> from applipy_metrics.registry import RegexRegistry
>>> reg = RegexRegistry(pattern='^/api/(?P<model>)/\d+/(?P<verb>)?$')
>>> def rest_api_request(path):
...     with reg.timer(path).time():
...         # do stuff
>>> print reg.dump_metrics()

应用程序

如果安装了applipy,此库将公开applipy模块。在

可以在applipy_metrics.MetricsModule导入模块。在

它绑定一个MetricsRegistry实例,以便其他模块可以声明 依赖关系并使用它来创建度量。在

示例

装饰师

使用Applipy度量库的最简单和最简单的方法。在

计数器

您可以使用count_calls修饰符来计算函数的次数 被称为。在

^{pr2}$
定时器

您可以使用time_calls修饰符来计时函数和 从中获取分发数据。在

>>> import time
>>> from applipy_metrics import summary, time_calls
>>> @time_calls
... def test():
...     time.sleep(0.1)
... 
>>> for i in range(10):
...     test()
... 
>>> print summary("test_calls").get_snapshot().get_mean()
0.100820207596

带声明

还可以使用with语句使用计时器

天文钟
>>> import time
>>> from applipy_metrics import summary, Chronometer
>>> with Chronometer(on_stop=lambda x: summary("test").add(x)):
...    time.sleep(0.1)
>>> print summary("test").get_snapshot().get_mean()
0.10114598274230957

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

推荐PyPI第三方库


热门话题
java如何获取线程内分配的变量值?   java xerial sqlitejdbc 3.7.2在OSX Mountain Lion上返回[SQLITE_NOTADB]   使用Java打开外部程序   java抛出或trycatch   应用程序启动方法java中的Netbeans异常。朗。反思。调用目标异常   如何在Windows和Java上使用Intellij进行开发并部署到Azure Service Fabric   我可以让Java编译器发出特定的错误消息并停止编译吗?   java关闭卡夫卡、Scala日志   Ldap搜索上的java设置方法超时   如何在java中使用递归逻辑查找直接或间接向特定管理者报告的管理者列表   Android排序位置列表java。lang.IllegalArgumentException:比较法违反其总合同   使用vlcj时发生java损坏模块错误   java如何在交换机中使用trycatch?   Java:如何从ArrayList写入csv文件   fabricsdkjava和shim for java之间的关系是什么   spring boot Azure Cosmos DB和SpringBoot Java按页码和大小分页