How can we trace axios http requests with aws x-ray? How can we trace axios http requests with aws x-ray? node.js node.js

How can we trace axios http requests with aws x-ray?


Since axios will use node's http/https modules under the covers, if you globally capture http and https before you import/require axios, things should work as expected.

import AWSXRay from 'aws-xray-sdk';import http from 'http';import https from 'https';AWSXRay.captureHTTPsGlobal(http);AWSXRay.captureHTTPsGlobal(https);const axios = require('axios');


Simple example that should just work is

const  axios = require('axios'),  AWSXRay = require('aws-xray-sdk-core');AWSXRay.captureHTTPsGlobal(require('http')); // Globally instrument http clientAWSXRay.captureHTTPsGlobal(require('https')); // Globally instrument https clientconst http = require('http');const https = require('https');AWSXRay.capturePromise(); // We should capture promiesconst instance = axios.create({  httpAgent: new http.Agent(),  httpsAgent: new https.Agent(),}); // Instrument axious instanceconst post = async (url, body) => {  return await instance.post(url, body);}

Make sure Lambda has correct acces rights.