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

kam*_*myl 7 java spring-cloud traefik opentracing jaeger

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

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

感谢帮助!

小智 2

不可以,无法立即更改 HTTP 标头名称。但是,您可以使用 启用 B3 标头传播opentracing.jaeger.enable-b3-propagation=true。要将 Traefik 配置为将跟踪数据作为 B3 标头发送,请参阅https://github.com/containous/traefik/blob/master/docs/content/observability/tracing/jaeger.md#propagation。 traceContextHeaderName也应该按当时的方式配置X-B3-TraceId。