gpt4 book ai didi

monitoring - Flink 应用中的延迟监控

转载 作者:行者123 更新时间:2023-12-02 16:55:29 24 4
gpt4 key购买 nike

我正在寻求有关延迟监控 (flink 1.8.0) 的帮助。

假设我有一个简单的流式数据流,其中包含以下运算符:FlinkKafkaConsumer -> map -> 打印。

如果我想测量数据流中记录处理的延迟,最好的机会是什么?我想获取源中接收到的处理输入的持续时间,直到它被接收器/完成的接收器操作接收到为止。

我已经添加了我的代码:env.getConfig().setLatencyTrackingInterval(100);

然后,可以使用以下延迟指标:

enter image description here

但我不明白他们到底在测量什么?此外,在我看来,延迟平均值似乎与延迟无关。

我也尝试过使用 codahale 指标来获取某些方法的持续时间,但它并没有帮助我获取在我的整个管道中处理的记录的延迟。

解决方案与LatencyMarker相关吗?如果是,我如何才能在我的接收器操作中到达它以便检索它?

谢谢,罗伊。

最佳答案

-- 从邮件列表中复制我的回答以供将来引用

嗨罗伊,

通过延迟跟踪,您将获得 LatencyMarkers 从每个源运算符(operator)传输到每个下游运算符(operator)所花费的时间分布(每个非源运算符(operator)中每个源运算符(operator)默认一个直方图,请参阅 metrics.latency.granularity) .

LatencyMarkers 定期注入(inject)源中并流经拓扑。他们无法超越常规记录。 LatencyMarkers 通过函数(用户代码)没有任何延迟。这意味着延迟跟踪测量的延迟将仅反射(reflect)端到端延迟的一部分,特别是在非背压场景中。在背压场景中,延迟标记将在最慢的操作符之前排队(因为它们不能超过记录)并且延迟将更好地反射(reflect)管道中的真实延迟。在我看来,延迟标记不是衡量 Flink 应用程序中“面向用户/端到端延迟”的正确工具。对我来说,这是一个调试工具,用于查找延迟或拥塞 channel 的来源。

我建议,不要使用延迟跟踪,而是在接收器运算符中自己添加一个直方图指标,它描述了当前处理时间和事件时间之间的差异,以获得源端事件时间延迟的分布。如果您在源(以及任何其他兴趣点)中执行相同的操作,您将清楚地了解偶时滞后如何随时间变化。

希望这对您有所帮助。

干杯,

康斯坦丁

关于monitoring - Flink 应用中的延迟监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56578919/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com