如何在 opentracing 中更改 trace-id 标头?

Posted

技术标签:

【中文标题】如何在 opentracing 中更改 trace-id 标头?【英文标题】:How to change trace-id header in opentracing? 【发布时间】:2019-11-13 18:18:40 【问题描述】:

有没有办法配置 opentracing-spring-jaeger-cloud-starter 来处理除 Uber-Trace-Id 之外的任何其他标头?我将 Traefik 作为我的 kubernetes 集群中的入口。 Traefik 可以配置为更改 traceContextHeaderName。默认值为“uber-trace-id”。当我将其更改为某种自定义时,服务之间没有连接(我的意思是跨度连接)。我相信 opentracing 只适用于 Uber-Trace-Id。有没有办法配置它?

我在 minikube 中使用 Traefik 作为入口对此进行了测试。然后所有请求都转到 spring-cloud-gateway 并传播到服务。

感谢您的帮助!

【问题讨论】:

【参考方案1】:

不,没有开箱即用的可能性来更改 HTTP 标头名称。 但是,您可以使用 opentracing.jaeger.enable-b3-propagation=true 启用 B3 标头传播。 要配置 Traefik 以将跟踪数据作为 B3 标头发送,请参阅https://github.com/containous/traefik/blob/master/docs/content/observability/tracing/jaeger.md#propagation。 那么traceContextHeaderName也应该配置成X-B3-TraceId

【讨论】:

以上是关于如何在 opentracing 中更改 trace-id 标头?的主要内容,如果未能解决你的问题,请参考以下文章

[源码分析] OpenTracing之跟踪Redis

OpenTracing基本知识点总结

Jaeger-Opentracing的Java-client完整分布式追踪链

链路追踪(Tracing)的前世今生(上)

9、Skywalking的埋点-Trace的基本概念

链路追踪(Tracing)的前世今生(上)