转自:https://blog.youkuaiyun.com/Team77/article/details/44154529
说明:
这里主要介绍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.youkuaiyun.com/simonchi/article/details/43270461
2、官方文档:http://flume.apache.org/FlumeUserGuide.html#monitoring