【Flume】Flume 自定义服务监控

Flume 自定义服务监控

在此可以查看一下flume支持的监控指标https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html#available-component-metrics

支持四种监控报告方式:

  1. JMX Reporting
  2. Ganglia Reporting
  3. JSON Reporting
  4. Custom Reporting

上面三种很简单,对照文档改一下配置或加一下执行参数就可以了

下面介绍一下第4种自定义监控

Custom Reporting

我们可以自定义的方式将监控指标发送到我们指定的服务,如上面flume默认的三种JMX Ganglia HttpServer

实现方式:

  1. 我们需要新建project创建一个自定义类class

  2. 这个class必须实现接口org.apache.flume.instrumentation.MonitorService

  3. 将project打包成jar,并拷贝jar到{flume_home}/lib下

  4. 启动agent的时候时指定

    flume.monitoring.type 监控类型也就是我们自定义的类,如com.learn.flum.FlumeMetrics

    flume.monitoring.node 监控要发送到的服务,如我们发送到10.211.55.60:61188

    $ bin/flume-ng agent --conf-file example.conf --name a1 \
    -Dflume.monitoring.type=com.example.reporting.HTTPReporting \
    -Dflume.monitoring.node=com.example:332
    

下面自定义监控类demo

public class FlumeMetrics implements MonitorService {
   
	 private ScheduledExecutorService scheduledExecutorService;

	 /**
	  * 一些相关配置可以写在这里面,这个方法会先执行
	  * 也就是开始监控前的一些操作就可以写到这里面
	  */
	public void configure(Context arg0) {
   
		// TODO Auto-generated method stub
		System.out.println("configure ........");

	}

	/**
	 * 监控开始,调用我们自定义的监控任务,比如收集的指标,发送到哪里
	 * 比如我是20秒收集一次指标,打印到控制台
	 */
	public void start() {
   
		System.out.println("start ........");
		MetricsCollector collector = new MetricsCollector();
	    if (scheduledExecutorService == null || scheduledExecutorService.isShutdown() || scheduledExecutorService.isTerminated()) 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值