问题描述
我有一个lambda函数,可以多次查询dynamodb。我想使用xray
来获得有关查询的性能。
我在nodejs中创建了lambda:
this.documentClient = new DocumentClient({
service: new DynamoDB(),});
AWSXray.captureAWSClient((this.documentClient as any).service);
const segment = AWSXRay.getSegment();
const subsegment = segment.addNewSubsegment('query dynamodb');
await this.documentClient.query(...).promise();
await this.documentClient.query(...).promise();
await this.documentClient.query(...).promise();
...
subsegment.close();
我能够看到跟踪数据:
但是问题是query dynamodb
段不是其他动态发电机查询子段的父段。如何将所有dynamodb查询包装在自定义细分中?
解决方法
我认为这里的问题是query dynamodb
子段未在要为父项的DynamoDB
子段的上下文中设置。因此,所有子段的父级都是Lambda FacadeSegment。您可以尝试使用Manual Mode手动将subsegment
传递给DDB调用。有关详细信息,请参见example。