Flink 中分布式追踪的最佳实践

问题描述 投票:0回答:1

我正在考虑在 Flink 上下文中分布式跟踪。我有以下问题:

  1. 如何在 Flink 管道本身内部实现跟踪?也就是说,如何将不同算子之间的跟踪上下文从源传播到接收器(进程内上下文传播)?

  2. 如何在边缘粘东西?也就是说,从源读取时提取上下文,并在写入接收器时将其放入(进程间上下文传播)?

特别是对于 2,我只需要支持 Kafka 源和接收器。我想典型的做法是使用 kafka headers,如here所述。这还有一个优点,例如不需要更改有效负载模式。

更一般地说,是否有任何(特定于 Flink 的)库/集成可以帮助完成手头的任务?例如,通过使用跟踪功能来装饰转换,如here为 Kafka Streams 所做的那样。另请参阅这个相关问题这个类似拦截器的包装器,这可能是有效扩大上下文以进行跟踪的另一种选择。

就其价值而言,我最感兴趣的是基于 OpenTracing 和/或 OpenTelemetry 的解决方案。

apache-kafka apache-flink open-telemetry opentracing
1个回答
0
投票
  1. 在过程中 java进程使用ThreadLocal来传递 不能侵入队列,框架,组件可以包裹对象,在包裹对象中传递

  2. 进程之间 标头传递中的 Rest、rpc、mq 协议

    请参阅跟踪实现以获取更多信息

© www.soinside.com 2019 - 2024. All rights reserved.