Storm提供的Metrics接口可以在topology中的任何位置上報統計指標,在storm內部也使用這個功能提供給Nimbus UI數值,如executes ack數、bolt平均延時、worker堆內存使用量等等。
Metric Types
使用Metric只需要實現一個方法getValueAndReset
storm提供了以下幾種Metric
- AssignableMetric:指定設置metric的值
- CombinedMetric:可以對 metric 進行關聯更新的通用接口
- CountMetric:返回 metric 的彙總結果。可以調用 incr() 方法來將結果加一;調用 incrBy(n) 方法來將結果加上給定值。
MultiCountMetric:返回包含一組 CountMetric 的 HashMap
MeanReducer:跟蹤由它的 reduce() 方法提供的運行狀態均值結果(可以接受 Double、Integer、Long 等類型,內置的均值結果是 Double 類型)。MeanReducer 確實是一個相當棒的傢伙。
MultiReducedMetric:返回包含一組 ReducedMetric 的 HashMap