flink源码分析之功能组件(一)-metrics

本文深入探讨了Flink的metrics组件,包括分组指标、指标构建和报告机制。介绍了如何通过group组件创建层次化的监控指标,并讨论了拉和推两种报告方式,如PrometheusPushGatewayReporter和Slf4jReporter的实现。文章还提供了示例,展示如何在JobManagerMetricGroup中注册和管理metrics。
摘要由CSDN通过智能技术生成

简介

     本系列是flink源码分析的第二个系列,上一个《flink源码分析之集群与资源》分析集群与资源,本系列分析功能组件,kubeclient,rpc,心跳,高可用,slotpool,rest,metric,future。其中kubeclient上一个系列介绍过,本系列不再介绍。

    本文介绍flink metrics组件,metrics透视系统内状况,是系统预警,查错,性能改进的利器

metrics组件

flink的metrics组件分布在两部分, flink metrics和flink runtime的metrics

flink metrics部分定义指标量,指标分组基类和报告器,带有多种报告器实现

flink runtime部分是MetricRegistry和指标分组业务实现

分组指标

分组指标使用group组件构建metrics层次,构造如x.y.a,x.y.z.b的监控指标,其中xyz是分组名称,a,b是最终的指标量,类型常用有Counter,Gauge,Meter等,类似文件夹和文件的关系

构建指标

分组构建完成后,可以在group构建具体指标,构建指标api在MetricsGroup接口

Counter counter(String name)

<T, G extends Gauge<T>> G gauge(int name, G gauge)

调用构建指标方法在该group构建指标

报告指标

指标构建后可以使用报告器输出指标,按接收方角度报告器分两类,拉和推

拉  接收方主动的拉去,报告器本身作为服务器

推 报告器主动推送到接收服务,通常是定时

上图几个典型的报告器实现,其中

PrometheusPushGatewayReporter 定时推送实现,定时推送到promethus的push gateway

PrometheusReporter 拉实现,内嵌HTTPServer,promethus server拉取

Slf4jReporter 可以认为是定时推实现,定时推送到本地日志文件

示例

下图作业管理器分组和作业管理器的作业metric分组

两者以parent属性形成一对多层次关系

下图JobManagerMetricGroup增加gauge指标,指示正在运行作业数

下图是JobManagerJobMetricGroup在SchedulerBase类注册metrics,比较典型的例子,不同的领域注册不同的metrics

构建指标最终调用MetricReporter的notifyOfAddedMetric,注册到报告器,报告器持有指标,定时的输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

中间件XL

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值