官方的LatencyMarker 表示的是数据的流通性, 他和数据是在同一个pipeline 中顺序处理的,如果你的算子都是同步的情况
是可以反应出数据的真实处理延迟,生产上是可以使用的,但是 延迟粒度 metrics.latency.granularity 最好调整成 single或者
operator ,防止latency上报太多 压垮服务


但当你的算子是个异步 用AsyncWaitOperator实现的话,因为latencyMarker并没有像watermark一样
addToWorkQueue,直接处理上报metrics,所以延迟信息就不准确了

所以自己做端到端延迟的话,可以flink sql source 层 抽取其event time时间往下游发送,insert into sink的时候
,写一个udf (currenttime-eventime) 计算其延迟时间,写到外部数据库中,sink最好是influxdb之类的,方便统计






--
Sent from: http://apache-flink.147419.n8.nabble.com/

回复