opentelemetry http instrumentation - SignatureDoesNotMatch

Viewed 78

I am using opentelemetry http instrumentation in my code. When I am using the aws-sdk to give a call to aws-sdk, I get an error -

SignatureDoesNotMatch: The request signature we calculated does not match the signature you provided. Check your key and signing method.

Without the instrumentation of http, the issue is not reproduced.

const opentelemetry = require("@opentelemetry/api");
const { NodeTracerProvider } = require("@opentelemetry/node");
const { SimpleSpanProcessor } = require("@opentelemetry/tracing");

const exporter = new JaegerExporter({ serviceName: "test" });

provider.addSpanProcessor(new SimpleSpanProcessor(exporter));

provider.register();

const AWS = require("aws-sdk");

const main = async () => {
    const cwl = new AWS.CloudWatchLogs({ region: "us-east-1" });

    const promises = new Array(100).fill(true).map(() => new Promise((resolve, reject) => {
        cwl.describeLogGroups(function (err, data) {
            if (err) {
                console.log(err.name);
             
                reject(err);
                return;
            }

            resolve(data);
        });
    }));

    const result = await Promise.all(promises);

    console.log(result.length);
};

main().catch(console.error);

I have checked a similar post in stackoverflow but I cannot upgrade to aws sdk v3.

0 Answers
Related