我想知道当前flink作业延迟了多久现在能通过什么指标可以获取到吗?想通过设置作业延迟告警来反馈作业健康状况,是否产生背压,是否需要增加资源等。 以mysql表实时同步到doris表为例:mysql binlog -> kafka -> flink -> doris 延迟指标包括: 1. 业务延迟:业务延迟=当前系统时间 - 当前系统处理的最后一条数据的事件时间(Event time) 例如:kafka消息写入doris的时间 - kafka消息数据本身产生时间(例如更新mysql记录的时间) 2. 数据滞留延迟:数据滞留时间=数据进入实时计算的时间 - 数据事件时间(Event time) 例如:flink消费到kafka消息时间 - 消费到的kafka消息数据本身产生时间(例如更新mysql记录的时间)
当前我们是用kafka消费组积压告警来替代的,但这个数据不准,一是因为flink checkpoint才会更新offset,二是因为生产流量在不同时段是不同的,在流量低的时候告警不及时。 查了官网有一个LatencyMarker可以开启使用,请问这个开启后要怎么观察延迟呢?这个metric需要上报到prometheus才可以读到吗? 我们遇到另一个问题是使用flink sql提交作业生成的metric名称很长,因为operatorId是根据sql内容来生成的,所以动不动就把prometheus给打爆了,这个有什么办法解决么?