View a markdown version of this page

使用 X-Ray SDK for Go 生成自定义子区段 - AWS X-Ray

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

使用 X-Ray SDK for Go 生成自定义子区段

注意

X-Ray SDK/Daemon 维护通知 — 2026 年 2 月 25 日 AWS X-Ray SDKs/Daemon 将进入维护模式, AWS 将限制 X-Ray SDK 和 Daemon 版本仅用于解决安全问题。有关支持时间表的更多信息,请参阅 X-Ray SDK 和 Daemon Support 时间表。我们建议迁移到 OpenTelemetry。有关迁移到仪器的更多信息 OpenTelemetry,请参阅从 X-Ray 仪器迁移到 OpenTelemetry 仪器

子分段可为跟踪的分段扩展为了给请求提供服务而已完成的工作的详细信息。每次您使用装有检测功能的客户端进行通话时, X-Ray SDK 都会记录在子分段中生成的信息。您可以创建其他子分段来分组其他子分段,来度量某个代码段的性能如何,或是来记录注释和元数据。

使用 Capture 方法创建有关函数的子分段。

例 main.go - 自定义子分段
func criticalSection(ctx context.Context) { //this is an example of a subsegment xray.Capture(ctx, "GameModel.saveGame", func(ctx1 context.Context) error { var err error section.Lock() result := someLockedResource.Go() section.Unlock() xray.AddMetadata(ctx1, "ResourceResult", result) })

以下屏幕截图中显示的示例说明了 saveGame 子分段如何显示在应用程序 Scorekeep 的跟踪中。

跟踪时间轴,显示包含 DynamoDB 调用和操作的 SaveGame 子分段。 GetItem