自定义metric监控流入、输出量

本文介绍如何在Flink任务中利用自定义metrics监控数据流入的正常量和脏数据量。通过在Source端,即FlinkKafkaConsumer中,结合DeserializationSchema接口实现数据反序列化时的指标统计。自定义的AbsDeserialization类包含RuntimeContext和Counter,用于统计正常数据(normalDataNum)和脏数据(dirtyDataNum)。在任务运行时,这些指标可在Flink的Web UI中查看。
摘要由CSDN通过智能技术生成

flink任务本身提供了各种类型的指标监控,细化到了每一个Operator的流入/流出量、速率、Watermark值等,通常在实际应用中需要对接入数据做格式化例如转json,符合要求的数据会向下流动,不符合要求或者格式化异常称为脏数据会被过滤掉,现在目标实现一个通用化方式能够对正常数据与脏数据进行指标统计。

实现思路:

1.flink metric类型分为Counter、Gauge、Histogram、Meter,需要统计的是一个累加值因此选取Counter类型的metirc

2.由于是对任务的流入监控,因此需要在Source端进行处理,通常对接的数据源是kafka, 而flink本身已经提供了kakfa connector,并且开放了数据反序列化的接口DeserializationSchema与抽象类AbstractDeserializationSchema,实现该接口或者继承抽象类可以完成数据的反序列化与格式化,由于每一条数据都需要进过反序列化处理,那么可以在反序列化的同时进行指标统计

3.在flink中自定义Metric入口是RuntimeContext, 但是在反序列化抽象类中并没有提供访问RuntimeContext的接口,一般是在RichFunction中,与其相关只有FlinkKafkaConsumer,那么就可以在FlinkKafkaConsumer中将获取到的RuntimeContext传给AbstractDeserializationSchema

实现步骤

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

王知无(import_bigdata)

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

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

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

打赏作者

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

抵扣说明:

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

余额充值