Is there any way how to use XRay instrumentation for AWS NodeJS SDK v3? In SDK v2, AWSXray was able to capture any client and instrument it for tracing into XRay. I have been trying the same thing with v3 with following snippet
const {DynamoDBClient, ScanCommand} = require("@aws-sdk/client-dynamodb");
const AWSXRay = require("aws-xray-sdk");
// if uncommented, this throws an exception
// AWSXRay.captureAWSClient(DynamoDBClient);
const client = new DynamoDBClient({region: process.env.AWS_REGION});
// if uncommented, this throws an exception
// AWSXRay.captureAWSClient(client);
const scan = new ScanCommand({
TableName: 'xxx',
});
await client.send(scan) //?
but both commented lines throw service.customizeRequests is not a function
. This seems like AWS SDK s3 is not backward-compatible with original AWSXRay library.
I found that SDK v3 contains XRay client, but this is just a client that can send spans and traces into AWS, not an instrumentation agent.
What's recommended pattern of using XRay instrumentation with AWS SDK v3 for NodeJS?