flink的metrics机制研究

本文详细解析了Apache Flink中Metrics模块的配置方法,包括如何设置Reporter、Scheduler及其实现细节。并通过实例展示了不同类型的Metrics(如Gauge、Counter、Meter)的使用场景,适合Flink开发者深入理解其监控机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

通过分析函数 org.apache.flink.runtime.metrics.MetricRegistryConfiguration.fromConfiguration

可以得知我们的配置文件应该怎么写!

metrics.reporters: slf4j
metrics.reporter.slf4j.class: org.apache.flink.metrics.slf4j.Slf4jReporter
metrics.reporter.slf4j.interval: 6 SECONDS

配置文件同步更新!然后去TM上调试

stop in org.apache.flink.runtime.metrics.MetricRegistryConfiguration.fromConfiguration

在这个函数里进行配置解析

 

在MetricRegistryImpl这个类的构造方法里会针对这个配置内容进行解析,会产生这样一个对象

9518714794ad5d51dc8ae1fddfcb9747d82.jpg

如果是实现了Scheduler的接口,则执行下面的

179021ed448acb1ca4d5c802f4259fd28eb.jpg

这里的executor是一个单线程的线程池610943558f1e43e818a4d1cf75e6589eb9f.jpg

好,现在reporters已经准备好了,怎么用呢?每个metric生成的时候,都要调用下面的方法

61ab1886d581c52353391f2c6da3ad34f32.jpg

 

eb3ce46cd2bcdb610f33fc49595cc74981a.jpg

所以,我们在下面这个地方打断点

stop in  org.apache.flink.metrics.reporter.AbstractReporter.notifyOfAddedMetric

下面是几个例子 

qa-bigdata-test-00.taskmanager.

container_e33_1550284124589_1227_01_000002.

Status.JVM.ClassLoader.ClassesLoaded

Gauge 

qa-bigdata-test-00.taskmanager.

container_e33_1550284124589_1227_01_000002.

Status.JVM.ClassLoader.ClassesUnloaded

Gauge 
qa-bigdata-test-00.taskmanager.container_e33_1550284124589_1227_01_000002.Status.JVM.GarbageCollector.ParNew.Count  
   
   

 

关于Gauge和Counter类型的比较简单,就是一个计数器,不解释

Meter不太一样,比如构造的时候,举个例子

c225d082bf61842c84ddffbfa47269d592e.jpg

5663416b9089ed3d59e76eb437409f7c1ca.jpg

可知,如果是复杂的View,则会启动5秒的任务来进行数据更新

967876f8535b87ed90b0d1f0d1d5a806356.jpg

 

b7a6499927e458dc82b7c7b04876030dc04.jpg

有兴趣的可以看看 https://blog.youkuaiyun.com/qq_21653785/article/details/79625601

转载于:https://my.oschina.net/qiangzigege/blog/3020862

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值