gpt4 book ai didi

.net-core - 使用 MassTransit.RabbitMQ 将 OpenTracing TraceIds 从发布者传播到消费者

转载 作者:行者123 更新时间:2023-12-05 03:01:15 25 4
gpt4 key购买 nike

使用 MassTransit.RabbitMQ v5.3.2 和 OpenTracing.Contrib.NetCore v0.5.0。

我可以使用 MassTransit 向 RabbitMQ 发布和使用事件,并且我有 OpenTracing 与 Jaeger 一起工作,但我还没有设法让我的 OpenTracing TraceIds 从我的消息发布者传播到我的消息消费者 - 发布者和消费者跟踪具有不同的 TraceId。

我已使用以下过滤器配置 MassTransit:

cfg.UseDiagnosticsActivity(new DiagnosticListener("test"));

我实际上不确定监听器名称应该是什么,因此是“测试”。 documentation没有 OpenTracing 的示例。无论如何,这会在发布端的事件跟踪中添加一个“发布消息”跨度,并在消费者端自动设置一个“消费消息”跟踪;但是它们是单独的痕迹。我将如何着手将其合并为一条轨迹?

我可以使用以下方式设置 TraceId header :

cfg.ConfigureSend(configurator => configurator.UseExecute(context => context.Headers.Set("TraceId", GlobalTracer.Instance.ActiveSpan.Context.TraceId)))

但是我该如何配置我的消息消费者,使其成为根 TraceId?有兴趣看看我如何做到这一点,或者是否有不同的方法......

谢谢!

最佳答案

如果有人感兴趣;我最终通过创建一些发布和使用 MassTransit 中间件来分别通过跟踪注入(inject)和提取进行跟踪传播来解决这个问题。

我已将解决方案发布到 GitHub - https://github.com/yesmarket/MassTransit.OpenTracing

仍然有兴趣听听是否有更好的方法...

关于.net-core - 使用 MassTransit.RabbitMQ 将 OpenTracing TraceIds 从发布者传播到消费者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56054438/

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