AWS X-Ray 生成的非相关段

Non correlated segments generated by AWS X-Ray

我有两个服务 (Java),它们之间是 A 依赖于 B 的关系。这两个服务部署在两个启用了 X-Ray 的 AWS EB 上。当我向服务 A 发出 HTTP 请求时,AWS X-Ray 控制台向我显示了服务 A 和 B 的段,但服务 A 和 B 之间没有边界。

我的问题是为什么B段的ParentId字段为null。

我希望客户端 --> 服务 A --> 服务 B 在服务图上而不是客户端 --> 服务 A 和客户端 --> 服务 B。

你有什么想法吗?

谢谢

你是对的,如果你从 B 调用 A,B 的 parent id 不应该为 null。

A​​ 和 B 是否在同一轨迹中,即它们具有相同的轨迹 ID? 你如何从 A 调用 B。当 parent id 从调用者传播到被调用者时,A 和 B 之间建立连接。在 HTTP 的情况下,应该从 A 向 B 传递一个额外的 header,其中包含 parent id 以及跟踪 ID。 阅读 here 了解更多详情。

您应该在段 A 上看到一个子段,表示从 A 到 B 的客户端调用。此子段的 id 成为下游服务 B 的 parent id。这就是连接方式成立。

为了方便客户端传播这个 header aws-xray sdk 提供了一个辅助 HTTP 客户端,允许自动将这个 header 传递到下游。 你在使用这个 HTTP 客户端吗? http://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-java-httpclients.html