閱讀680 返回首頁    go 京東網上商城


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) 方法來將結果加上給定值。
  • ReducedMetric
    • MeanReducer — 跟蹤由它的 reduce() 方法提供的運行狀態均值結果(可以接受 DoubleIntegerLong 等類型,內置的均值結果是 Double 類型)。MeanReducer 確實是一個相當棒的家夥。
    • MultiReducedMetric — 返回包含一組 ReducedMetric 的 HashMap

Metric Consumer

構建自定義 metric

內建的 Metric

builtin_metrics.clj 為內建的 metrics 設置了數據結構,以及其他框架組件可以用於更新的虛擬方法。metrics 本身是在回調代碼中實現計算的 — 請參考 executor.clj 中的 ack-spout-msg 的例子。

最後更新:2017-05-22 13:32:18

  上一篇:go  Apache Storm 官方文檔 —— Hooks
  下一篇:go  Apache Storm 官方文檔 —— 使用非 JVM 語言開發