以太坊使用开源的指标测量工具go-metrics来对系统各模块的功能和性能指标进行测量,对go-metrics的使用做了些简单的封装。
指标测量与监控功能,默认关闭。可通过在启动geth时指定参数 --metrics 来开启测量。
一、支持的测量类型
1、Counter
计数器,最简单的测量类型。
2、Meter
类似于物理仪表,用于测量某种东西的流量和速率,要测量的东西可以是任意内容,如字节量、区块量等等。它可以实时报告以下内容:
- 流经仪表的总数量
- 从启动以来的平均流速(事件数/秒)
- 过去1分钟、5分钟、15分钟的加权流速
- (加权指的是最近的数量拥有更高权重,对流速正向影响更大)
3、Timer
Timer是meter的扩展,除了测量事件发生数量外,还收集其耗时。和meter类似,timer也能测量任意事物,但需要再额外指定其耗时。除了meter能生成的报告外,Timer还能生成如下报告:
- 百分数(5,20,50,80,95),代表相应比例的事件执行时间在所报告的值以内(例如,百分数 20 = 1.5s 意味着有20%的事件耗时小于等于1.5秒)
二、指标测量的使用
在metrics包下封装了对象构造函数,构造函数会根据启动配置,决定是返回标准的测量对象还是打桩用的Nil对象。
测量对象具体的函数功能,参见类库文档: