跳转到主要内容

一个用于轻松测量Python运行情况的库。

项目描述

一个用于轻松测量Python运行情况的库。

Metrology 允许您向Python代码添加仪表,并将其连接到外部报告工具,如Graphite,以更好地了解正在运行的Python程序中的情况。

安装

要安装

pip install metrology

API

仪表

仪表是对一个值进行瞬时测量的工具

class JobGauge(metrology.instruments.Gauge):
    def value(self):
        return len(queue)
gauge = Metrology.gauge('pending-jobs', JobGauge())

计数器

计数器类似于仪表,但您可以增加或减少其值

counter = Metrology.counter('pending-jobs')
counter.increment()
counter.decrement()
counter.count

计量器

计量器测量事件随时间的变化率(例如,“每秒请求数”)。除了平均速率外,您还可以跟踪1、5和15分钟移动平均值

meter = Metrology.meter('requests')
meter.mark()
meter.count

或作为装饰器

@Metrology.meter('requests')
def do_this_again():
    # do something

或使用上下文管理器

with Metrology.meter('requests'):
    # do something

计时器

计时器测量特定代码块被调用的速率及其持续时间分布

timer = Metrology.timer('responses')
with timer:
    do_something()

或作为装饰器

@Metrology.timer('responses')
def response():
    # do_something

利用率计时器

一个专门的计时器,用于计算消耗的CPU时间的百分比

utimer = Metrology.utilization_timer('responses')
with utimer:
  do_something()

标记指标

如果报告器支持(目前:Graphite、Librato、Logger。StatsD报告器支持Datadog标记格式,因为没有项目制定官方标记标准),所有指标都可以进行标记。标记可以是任意键值对。只需将字典分配为指标名称。需要一个'name'条目。

counter = Metrology.counter({
  'name': 'pending-jobs',
  'host': 'backend',
  'priority': 'high'
})
counter.increment()
counter.decrement()
counter.count

所有指标类型都支持标记。

报告器

日志报告器

将指标写入日志的日志报告器

reporter = LoggerReporter(level=logging.INFO, interval=10)
reporter.start()

Graphite报告器

将指标发送到Graphite的Graphite报告器

reporter = GraphiteReporter('graphite.local', 2003)
reporter.start()

Librato报告器

将指标发送到Librato API的Librato指标报告器

reporter = LibratoReporter("<email>", "<token>")
reporter.start()

Ganglia报告器

将指标发送到gmond的Ganglia报告器

reporter = GangliaReporter("Group Name", "localhost", 8649, "udp", interval=60)
reporter.start()

StatsD报告器

将指标发送到statsd守护进程的StatsD报告器

reporter = StatsDReporter('localhost', 3333, conn_type='tcp')
reporter.start()

或使用默认UDP设置

reporter = StatsDReporter('localhost', 3333)
reporter.start()

确认

本库深受metrics库的启发。

项目详情


下载文件

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

源代码分发

metrology-1.3.0.tar.gz (32.4 kB 查看哈希值)

上传时间 源代码

构建分发

metrology-1.3.0-py2.py3-none-any.whl (24.7 kB 查看哈希值)

上传时间 Python 2 Python 3

支持者