我正在尝试设置一个本地 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:
所以x-request-id
, x-b3-traceid
, x-b3-sampled
, 和x-b3-spanid
数学。有一些标题没有设置。另外,我通过 LoadBalancer 类型的 k8s 服务 IP 访问服务 A,而不是通过入口。不知道这是否可能是问题所在。
UPD:我已经设置了 istio 网关,所以现在我正在A
通过 istio 网关访问服务。但是结果是一样的,我可以看到跟踪gateway->A
但没有任何进一步的跟踪