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

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

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

当你的应用程序调用时AmazonX-Ray 开发工具包适用于 Go 的 X-Ray 开发工具包来跟踪下游的调用。子分段. 跟踪Amazon所跟踪服务中访问的资源 (例如,Amazon S3 存储桶或 Amazon SQS 队列),在 X-Ray 控制台的服务地图上显示为下游节点。

要跟踪 Amazon 开发工具包客户端,请将客户端对象与xray.AWS()调用,如以下示例所示。

例 main.go
var dynamo *dynamodb.DynamoDB func main() { dynamo = dynamodb.New(session.Must(session.NewSession())) xray.AWS(dynamo.Client) }

然后,当您使用 Amazon 开发工具包客户端时,请使用withContext调用方法的版本,然后向其传递context来自 的http.Request传递给的对象处理者.

例 main.go —AmazonSDK 调用
func listTablesWithContext(ctx context.Context) { output := dynamo.ListTablesWithContext(ctx, &dynamodb.ListTablesInput{}) doSomething(output) }

对于所有服务,可以在 X-Ray 控制台中看到调用的 API 名称。对于服务的子集,X-Ray SDK 将信息添加到区段中,以便在服务图中提供更多的粒度。

例如,当您使用受分析的 DynamoDB 客户端进行调用时,开发工具包会将表名添加到针对表的调用的区段中。在控制台中,每个表显示为服务映射中的单独节点,其中包含一个通用 DynamoDB 节点,用于不以表为目标的调用。

例 调用 DynamoDB 以保存项目的子区段
{ "id": "24756640c0d0978a", "start_time": 1.480305974194E9, "end_time": 1.4803059742E9, "name": "DynamoDB", "namespace": "aws", "http": { "response": { "content_length": 60, "status": 200 } }, "aws": { "table_name": "scorekeep-user", "operation": "UpdateItem", "request_id": "UBQNSO5AEM8T4FDA4RQDEB94OVTDRVV4K4HIRGVJF66Q9ASUAAJG", } }

在您访问指定的资源时,对以下服务的调用会在服务地图中创建额外的节点。没有定向到特定资源的调用,为服务创建了通用节点。

  • Amazon DynamoDB— 表名称

  • Amazon Simple Storage Service— 存储桶和密钥名称

  • Amazon Simple Queue Service— 队列名称