3

我已经开始使用 AWSXRay 来更深入地了解为什么我的 lambda 函数的性能并不理想。这个 lambda 函数运行一个 gql 服务,这意味着它对其他 lambda 函数以及用于缓存的 dynamodb 有大量出站请求。

通过在我的处理程序中使用以下内容,我已将跟踪添加到所有 aws-sdk 客户端调用。它会改变导入的 AWS 模块,以便成功使用 AWS 客户端的所有后续使用都包括 aws-xray 跟踪,而不管导入的是哪个模块。惊人的!

import AWS from 'aws-sdk';
import AWSXRay from 'aws-xray-sdk';
AWSXRay.captureAWS(AWS);

下面是输出示例: 在此处输入图像描述

问题

问题是没有一个“跟踪”有关于请求参数的任何注释。每个跟踪的注释和元数据都是空的: 在此处输入图像描述

希望

希望有一种方法可以配置 AWSXRay CaptureAWS 修改,以便它们在注释或元数据中包含每个 aws-client 请求的参数。

问题

是否可以请求AWSXRay.captureAWS(AWS);在其生成的跟踪的注释或元数据中包含传递给 aws sdk 客户端调用的参数?

4

1 回答 1

3

资源部分包含一些客户端的高级参数,例如 DynamoDB 表名。默认情况下,并非所有参数都被捕获。这是因为它们可能包含用户不希望在其跟踪中跟踪的信息,并且也可能很冗长。

目前,对于任意 API 参数,X-Ray SDK 中不支持选择加入。作为目前的解决方法,我建议您将 sdk 调用包装在本地子段中,并将要捕获的参数记录为该子段的注释或元数据。如果您在查找允许您创建自己的子细分的文档方面需要任何帮助,请告诉我。

于 2019-05-15T15:14:02.320 回答