680
京東網上商城
Apache Storm 官方文檔 —— Metrics
Storm 提供了一個可以獲取整個拓撲中所有的統計信息的度量接口。Storm 內部通過該接口可以跟蹤各類統計數字:executor 和 acker 的數量、每個 bolt 的平均處理時延、worker 使用的最大堆容量等等,這些信息都可以在 Nimbus 的 UI 界麵中看到。
Metric 類型
使用 Metrics 隻需要實現一個接口方法:getValueAndReset
,在方法中可以查找匯總值、並將該值複位為初始值。例如,在 MeanReducer 中就實現了通過運行總數除以對應的運行計數的方式來求取均值,然後將兩個值都重新設置為 0。
Storm 提供了以下幾種 metric 類型:
- AssignableMetric — 將 metric 設置為指定值。此類型在兩種情況下有用:1. metric 本身為外部設置的值;2. 你已經另外計算出了匯總的統計值。
- CombinedMetric — 可以對 metric 進行關聯更新的通用接口。
-
CountMetric — 返回 metric 的匯總結果。可以調用
incr()
方法來將結果加一;調用incrBy(n)
方法來將結果加上給定值。- MultiCountMetric — 返回包含一組 CountMetric 的 HashMap
-
ReducedMetric
-
MeanReducer — 跟蹤由它的
reduce()
方法提供的運行狀態均值結果(可以接受Double
、Integer
、Long
等類型,內置的均值結果是Double
類型)。MeanReducer 確實是一個相當棒的家夥。 - MultiReducedMetric — 返回包含一組 ReducedMetric 的 HashMap
-
MeanReducer — 跟蹤由它的
Metric Consumer
構建自定義 metric
內建的 Metric
builtin_metrics.clj 為內建的 metrics 設置了數據結構,以及其他框架組件可以用於更新的虛擬方法。metrics 本身是在回調代碼中實現計算的 — 請參考 executor.clj
中的 ack-spout-msg
的例子。
最後更新:2017-05-22 13:32:18