storm 提供了一个可以获取整个拓扑中所有的统计信息的度量接口。storm 内部通过该接口可以跟踪各类统计数字:executor 和 acker 的数量、每个 bolt 的平均处理时延、worker 使用的最大堆容量等等,这些信息都可以在 nimbus 的 ui 界面中看到。
使用 metrics 只需要实现一个接口方法:<code>getvalueandreset</code>,在方法中可以查找汇总值、并将该值复位为初始值。例如,在 meanreducer 中就实现了通过运行总数除以对应的运行计数的方式来求取均值,然后将两个值都重新设置为 0。
storm 提供了以下几种 metric 类型:
<a href="https://github.com/apache/storm/blob/master/storm-core/src/jvm/backtype/storm/metric/api/reducedmetric.java">reducedmetric</a>