本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用适用于 Go 的 X-Ray 开发工具包跟踪对下游 HTTP Web 服务的调用
注意
End-of-support 注意 — 2027 年 2 月 25 日, AWS X-Ray 将停止对 AWS X-Ray SDKs 和守护程序的支持。2027 年 2 月 25 日之后,您将不再收到更新或发布。有关支持时间表的更多信息,请参阅X-Ray SDK 和守护程序终止支持时间表。我们建议迁移到 OpenTelemetry。有关迁移到的更多信息 OpenTelemetry,请参阅从 X-Ray 仪器迁移到 OpenTelemetry 仪器。
当您的应用程序调用微服务或公共 HTTP 时 APIs,您可以使用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
)