Istio跟踪使用头将多个请求绑定在一起



我正在使用带有跟踪的Istio。我有两个REST服务A1,它们调用A2。A1服务将从客户端接收的报头转发到REST服务A2。

然而,我无法在我的Jaeger UI中看到跟踪。我正在使用curl将头部中的一些随机值发送到我的服务A1:

curl -H "end-user: april1101" -H "x-request-id: april1a01" 
-H "x-b3-traceid: 1" -H "x-b3-spanid: 2" -H "x-b3-parentspanid: 3"
-H "x-b3-sampled: 4dfgdgsdfgdfg" -H "x-b3-flags: 5" 
-H "x-ot-span-context: 6"  http://trace-rest-2-service:9005/kafka/headerpass?arg=yo

我尝试过的另一个标头参数是:

curl -H "end-user: 34723b86-fe18-4e36-ac56-0ad12bf3d136" 
-H "x-request-id: 4aba321a-4e60-4b42-b0ca-654c2400d485" 
-H "x-b3-traceid: 308eec41-93bd-4584-8efe-2b968284c41e" 
-H "x-b3-spanid: 8395e40e-6a79-4a34-b444-18d401f597cb" 
-H "x-b3-parentspanid: c55f6cf0-3547-4202-b51e-9eaaa2136a73" 
-H "x-b3-sampled: 1948dd81-9e70-4694-95f9-018e3abdbe29" 
-H "x-b3-flags: acac5baf-42d2-45d8-84d0-645070a76f2e" 
-H "x-ot-span-context: 6ee27e27-45c4-47de-86e4-1d4227bcf638"  
http://trace-rest-2-service:9005/kafka/headerpass?arg=832amApril_1

不过,我在耶格尔身上看不到任何痕迹。如果只调用服务A3而不传递任何头,那么我在JaegerUI中看到了跟踪。

感谢

您可能遇到此问题的原因有几个。

来自istio文档:

为什么我的请求没有被跟踪?自Istio 1.0.3以来,default配置文件中的跟踪采样率已降至1%。这意味着,在Istio捕获的100个跟踪实例中,只有1个会报告给跟踪后端。demo配置文件中的采样率仍然设置为100%。有关如何设置采样率的更多信息,请参阅本节。

如果您仍然没有看到任何跟踪数据,请确认您的端口符合Istio端口命名约定,并且适当的容器端口已公开(例如,通过pod规范(,以启用sidecar代理(Envoy(的流量捕获。

如果您只看到与egress代理相关的跟踪数据,而没有看到ingress代理,那么它可能仍然与Istio端口命名约定有关。从Istio 1.3开始,将自动检测出站流量的协议。

希望它能有所帮助。

相关内容

  • 没有找到相关文章

最新更新