我正在尝试设置本地 k8s 集群minikube
已安装istio
我在使用 Jaeger 启用分布式跟踪时遇到问题。
我有3个微服务A -> B -> C
。我正在传播所需的所有标头:
{"x-request-id", "x-b3-traceid", "x-b3-spanid", "x-b3-parentspanid", "x-b3-sampled", "x-b3-flags", "x-ot-span-context"}
但是在Jaeger界面上,我只能看到对服务A的请求,而看不到对服务B的请求。
我已记录请求中发送的标头。
来自服务 A 的标头:
Header - x-request-id: c2804368-2ff0-9d90-a2aa-972537968924
Header - x-b3-traceid: 3a2400b40bbe5ed8
Header - x-b3-spanid: 3a2400b40bbe5ed8
Header - x-b3-parentspanid:
Header - x-b3-sampled: 1
Header - x-b3-flags:
Header - x-ot-span-context:
来自服务 B 的标头:
Header - x-request-id: c2804368-2ff0-9d90-a2aa-972537968924
Header - x-b3-traceid: 3a2400b40bbe5ed8
Header - x-b3-spanid: 3a2400b40bbe5ed8
Header - x-b3-parentspanid:
Header - x-b3-sampled: 1
Header - x-b3-flags:
Header - x-ot-span-context:
So the x-request-id
, x-b3-traceid
, x-b3-sampled
, and x-b3-spanid
火柴。有一些标头未设置。
另外,我通过 LoadBalancer 类型的 k8s 服务 IP 访问服务 A,而不是通过入口。不知道这是否可能是问题所在。
UPD:我已经设置了 istio 网关,所以现在我正在访问服务A
通过 istio 网关。但结果是一样的,我可以看到痕迹gateway->A
但没有任何进一步的追踪