Flume-ng 監控介紹
說明:
這裏主要介紹http接口的監控增量方式介紹
獲取到的監控參數:
{
"SOURCE.r1": {
"OpenConnectionCount": "0", 當前有效的連接數
"Type": "SOURCE", 組件類型
"AppendBatchAcceptedCount": "0", source端剛剛追加放入channel的批量數
"AppendBatchReceivedCount": "0", source端剛剛追加的批量的數量,比如一批100,該度量爲2,就是source端收到了200個events
"EventAcceptedCount": "10", source端目前成功放入channel的event數量
"StopTime": "0",
"AppendReceivedCount": "0", source端剛剛追加的目前收到的event數量
"StartTime": "1422502242340", source組件啓動的時間
"EventReceivedCount": "10", source端已經收到的event數量
"AppendAcceptedCount": "0" source端剛剛追加放入channel的event數量
},
"CHANNEL.c1": {
"EventPutSuccessCount": "20", 成功放入通道的event數量
"ChannelFillPercentage": "0.0", 通道使用比例
"Type": "CHANNEL",
"StopTime": "0",
"EventPutAttemptCount": "20", 正在放進通道的event數量
"ChannelSize": "0",
"StartTime": "1422502242328",
"EventTakeSuccessCount": "20", 從通道中成功取出event的數量
"ChannelCapacity": "10000000",
"EventTakeAttemptCount": "2105" 正在從通道中取event的數量
},
"SINK.k1": {
"BatchCompleteCount": "0", 成功完成輸出的批量事件個數
"ConnectionFailedCount": "0", sink端連接失敗的次數
"EventDrainAttemptCount": "20", 試圖消耗的事件數量,從通道中拿來消耗
"ConnectionCreatedCount": "1", sink端連接數
"Type": "SINK",
"BatchEmptyCount": "1042", 批量取空的次數
"ConnectionClosedCount": "0", 連接關閉的次數
"EventDrainSuccessCount": "20", 成功處理的event數量
"StopTime": "0",
"StartTime": "1422502242340",
"BatchUnderflowCount": "1" 沒有達到batchsize的批量event數目,也就是這一批沒有達到batchsize就處理了,根據這個值可調整batchsize
}
}
以上就是使用http監控後得到的JSON串。
———————————————————————————————————————
下面主要說明下EventAcceptedCount參數。
PS:網上查找並且看官方文檔都無發現參數EventAcceptedCount參數相關的信息,所以筆者從源碼着手分析EventAcceptedCount的原理。
1、查看Flume-ng在Console輸出日誌
(說明:Flume-ng只要你不在$FLUME_HOME啓動運行flume-ng命令你就可以在控制檯看到輸出日誌)
注意其中instrumentation.MonitoredCounterGroup
在Flume-ng source源碼找到該類發現(路徑:flume-ng-core\src\main\java\org\apache\flume\instrumentation):
在該目錄下面找到SourceCounter類:
public long addToEventAcceptedCount(long delta) {
return addAndGet(COUNTER_EVENTS_ACCEPTED, delta);
}
該方法就是增量添加的,其中addAndGet方法繼承自MonitoredCounterGroup.java,繼續查看MonitoredCounterGroup方法發現確實是增量的處理。所以之前猜測”Flume-ng監控參數EventAcceptedCount有一個上限的閾值,如果突破這個閾值會重新歸0計算”是不對的。只要Flume-ng不重啓服務這裏就會一直做增量的變更,所以計算兩段時間內數據傳輸量的話這兒只需要後面一次減去前面一次,當然如果你服務掛了,那重啓就又從0開始計數了。
參考:
1、監控參數:http://blog.csdn.net/simonchi/article/details/43270461
2、官方文檔:http://flume.apache.org/FlumeUserGuide.html#monitoring