碳计量收集剂
carbonstat的Python项目详细描述
Carbon的度量收集代理。它允许你收集一些 关于代码和度量执行时间的度量
安装
通过pip安装:
pip install carbonstat
基本用法
您可以导入carbonstat.stat实例并使用它:
fromcarbonstatimportstatdeffoo():print'Hello, world!'foo()foo()stat['foo.count'].add(2)# save `foo.count` metric as execution counterstat.send()# send packet to Carbon with `foo.count` metric value
默认情况下,所有数据包都通过udp发送到127.0.0.1:2003。你可以 通过环境变量更改默认目标地址 $CARBOH_HOST和$CARBON_PORT
您也可以在一个CarbonStat实例中组合多个度量:
deffoo():print'Hello from foo!'defbar():print'Hello from bar!'foo()foo()bar()stat['foo.count'].add(2)stat['bar.count'].add(1)stat.send()# send packet to Carbon with two metrics
高级用法
您可以使用方便的上下文测量代码块的执行时间 经理:
stat=CarbonStat(host=192.168.0.1,port=2003)deffoo(sec):sleep(sec)print'Hello after %d seconds!'%secwithstat.timer('foo.time')astimer:timer.start()# measure firstfoo(3)timer.stop()timer.start()# measure againfoo(5)timer.stop()stat.send()# send packet:# heartbeat 0 timespamp# foo.time.min 3 timestamp# foo.time.avg 4 timestamp# foo.time.max 5 timestamp
或者你可以做得更简单:
deffoo(sec):sleep(sec)print'Hello after %d seconds!'%secwithstat.timer('foo.time'):foo(3)withstat.timer('foo.time'):foo(5)stat.send()# send packet like above
你甚至可以装饰你的函数并测量它的执行时间 同时呼叫:
@stat.timeit('foo.time')deffoo(sec):sleep(sec)print'Hello after %d seconds!'%secfoo(3)foo(5)stat.send()# send packet like above
额外的
在某些情况下,您可能需要在发送后保存任何度量的值 这包碳纤维。可以通过设置accumulate属性来实现 到True:
```