使用X-Ray SDK for Node.js跟踪 AWS 开发工具包调用 - AWS X-Ray
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

使用X-Ray SDK for Node.js跟踪 AWS 开发工具包调用

应用程序调用 AWS 服务来存储数据、写入队列或发送通知时,X-Ray SDK for Node.js在子分段中跟踪下游的调用。所跟踪 AWS 服务以及您在这些服务中访问的资源(例如,Amazon S3 存储桶或 Amazon SQS 队列),在 X-Ray 控制台的服务地图上显示为下游节点。

您可以通过在对 AWSXRay.captureAWS 的调用中包装 aws-sdk require 语句来检测所有 AWS 开发工具包客户端。

例 app.js - AWS 开发工具包分析

var AWS = AWSXRay.captureAWS(require('aws-sdk'));

要分析单独的客户端,请将 AWS 开发工具包客户端包装到对 AWSXRay.captureAWSClient 的调用中。例如,要分析 AmazonDynamoDB 客户端:

例 app.js - DynamoDB 客户端分析

var AWSXRay = require('aws-xray-sdk'); ... var ddb = AWSXRay.captureAWSClient(new AWS.DynamoDB());
警告

不要将 captureAWScaptureAWSClient 一起使用。这将导致重复的子分段。

对于所有服务,您都可以看到在 X-Ray 控制台中调用的 API 的名称。对于一部分服务,X-Ray 开发工具包会向分段中添加信息以在服务地图中提供更好的精细度。

例如,当您使用已分析的 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 – 队列名称