使用适用于 Go 的 X-Ray 开发工具包跟踪对下游 HTTP Web 服务的调用 - Amazon X-Ray
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用适用于 Go 的 X-Ray 开发工具包跟踪对下游 HTTP Web 服务的调用

当您的应用程序对微服务或公共 HTTP API 发出调用时,您可以使用 xray.Client 以 Go 应用程序子分段的方式检测这些调用,如以下示例中所示,其中 http-client 是一个 HTTP 客户端。

客户端创建所提供的 HTTP 客户端的阴影副本,默认为 http.DefaultClient,并带有使用 xray.RoundTripper 包装的往返处理器。

main.go - HTTP 客户端
myClient := xray.Client(http-client)
main.go — 使用 ctxhttp 库跟踪下游 HTTP 调用

以下示例借助使用 xray.Client 的 ctxhttp 库来检测传出 HTTP 调用。可以传递来自上游调用的 ctx。这样可以确保使用现有的区段上下文。例如,X-Ray 不允许在 Lambda 函数中创建新的分段,因此应使用现有的 Lambda 分段上下文。

resp, err := ctxhttp.Get(ctx, xray.Client(nil), url)