【Flink实战系列】Flink 如何实现全链路延迟监控

Flink 如何实现全链路延迟监控

需求 & 背景

在实际的生产环境中,我们希望可以监控一个任务整个链路的延迟情况,用来分析 Flink 应用的性能表现.

分析

Flink 的全链路延迟监控指的是从任务的 source 经过中间的 operator 到最后的 sink 端到端的延迟,这是一个非常重要的指标,可以用来衡量 Flink 任务的整体性能和响应延迟,下面就来介绍一下如何实现全链路的监控.

思考

既然要计算端到端的延迟,很容易想到的办法就是在 source 端获取一个时间戳,然后在 sink 的时候再获取一个时间戳,用 sink 时的时间戳减去source 时的时间戳就是整个链路的延迟.这个结果是一个比较准备的值,那具体要怎么实现呢?

实现

一般我们流式的计算 source 都是 MQ,这里拿 kafka 来举例,再读取 kafka 的数据时候可以获取到 kafka 的 timestamp 时间戳,代码实现如下:

package flink.utils;

import bean.JasonEntity;
import com.alibaba

你可能感兴趣的:(Flink实战系列,flink)