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

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

适用于 Go 的 Amazon X-Ray 开发工具包

适用于 Go 的 X-Ray 开发工具包是一组面向 Go 应用程序的库,可提供类和方法来生成跟踪数据并将跟踪数据发送给 X-Ray 进程守护程序。跟踪数据包括由应用程序提供服务的传入 HTTP 请求的相关信息,以及应用程序使用 Amazon 开发工具包、HTTP 客户端或 SQL 数据库连接器对下游服务进行的调用。您还可以手动创建分段并在注释和元数据中添加调试信息。

使用 go getGitHub 存储库下载开发工具包:

$ go get -u github.com/aws/aws-xray-sdk-go/...

对于 Web 应用程序,首先使用 xray.Handler 功能跟踪传入请求。消息处理程序为每个被跟踪的请求创建一个分段并在发送响应时完成该分段。当分段打开时,您可以使用开发工具包客户端的方法将信息添加到分段,并创建子分段以跟踪下游调用。开发工具包还会自动记录在分段打开时应用程序引发的异常。

对于由经过检测的应用程序或服务调用的 Lambda 函数,Lambda 会读取跟踪标头并自动跟踪采样的请求。对于其他函数,您可以将 Lambda 配置为采样和跟踪传入请求。无论哪种情况,Lambda 都会创建分段并将其提供给 X-Ray 开发工具包。

注意

在 Lambda 上,X-Ray 开发工具包是可选的。如果您不在函数中使用它,您的服务映射仍将包含一个用于 Lambda 服务的节点,以及每个 Lambda 函数的节点。可通过添加该开发工具包检测函数代码,将子分段添加到 Lambda 记录的函数分段。参阅 Amazon Lambda 和 Amazon X-Ray 了解更多信息。

接下来,使用对 AWS 函数的调用包装您的客户端。此步骤可确保 X-Ray 检测对任何客户端方法的调用。您还可以检测对 SQL 数据库的调用

在开始使用开发工具包后,通过配置记录器和中间件来自定义其行为。您可以添加插件来记录有关应用程序上运行的计算资源的数据,通过定义采样规则来自定义采样行为,设置日志级别以在应用程序日志中查看来自开发工具包的更多或更少的信息。

记录有关请求以及应用程序在注释和元数据中所做的工作的其他信息。注释是简单的键值对,已为这些键值对编制索引以用于筛选条件表达式,以便您能够搜索包含特定数据的跟踪。元数据条目的限制性较低,并且可以记录整个对象和数组 - 可序列化为 JSON 的任何项目。

注释和元数据

注释和元数据是您使用 X-Ray 开发工具包添加到分段的任意文本。系统会对注释编制索引,以便与筛选表达式一起使用。元数据未编制索引,但可以使用 X-Ray 控制台或 API 在原始分段中查看。您授予 X-Ray 读取权限的任何人都可以查看这些数据。

当代码中具有大量检测的客户端时,一个请求分段可包含大量子分段,检测的客户端发起的每个调用均对应一个子分段。您可以通过将客户端调用包含在自定义子分段中来整理子分段并为其分组。您可以为整个函数或任何代码部分创建自定义子分段,并记录子分段的元数据和注释,而不是编写父分段的所有内容。

要求

适用于 Go 的 X-Ray 开发工具包需要 Go 1.9 或更高版本。

开发工具包在编译和运行时依赖于以下库:

  • 适用于 Go 的 Amazon 开发工具包版本 1.10.0 或更新版本

这些依赖项在开发工具包的 README.md 文件中声明。

参考文档

在下载开发工具包后,本地构建和托管文档以便在 Web 浏览器中查看文档。

查看参考文档
  1. 导航到 $GOPATH/src/github.com/aws/aws-xray-sdk-go(Linux 或 Mac)目录或 %GOPATH%\src\github.com\aws\aws-xray-sdk-go (Windows) 文件夹

  2. 运行 godoc 命令。

    $ godoc -http=:6060
  3. 打开浏览器,定位到 http://localhost:6060/pkg/github.com/aws/aws-xray-sdk-go/