AWS X-Ray supports using OpenTelemetry JavaScript and the AWS Distro for OpenTelemetry (ADOT) Collector to instrument your application and send trace data to X-Ray. The OpenTelemetry SDKs are an industry-wide standard for tracing instrumentation. They provide more instrumentations and have a larger community for support, but may not have complete feature parity with the X-Ray SDKs. See choosing between the ADOT and X-Ray SDKs for more help with choosing between the two.
If you want additional features when tracing your Node.js applications, please open an issue on the OpenTelemetry JS Instrumentation repository.
The AWS X-Ray SDK for Node.js is compatible with Node.js version 14.x and later. There may be issues when running on the latest odd-numbered release of Node.js.
The latest stable version of the SDK is available from NPM. For local development, install the SDK in your project directory with npm.
npm install aws-xray-sdk
Use the --save option to save the SDK as a dependency in your application's package.json
.
npm install aws-xray-sdk --save
This repository hosts all the packages we publish, which each have their own README. The Core package README covers all basic use cases of the main X-Ray SDK, including its use in Lambda. The developer guide provides in-depth guidance about using the AWS X-Ray service and SDKs. The API Reference provides guidance for using this SDK and module-level documentation.
To get started with a functional web application instrumented with the X-Ray SDK, check out our sample app.
Use the following community resources for getting help with the SDK. We use the GitHub issues for tracking bugs and feature requests.
If you encounter a bug with the AWS X-Ray SDK for Node.js, we want to hear about it. Before opening a new issue, search the existing issues to see if others are also experiencing the issue. Include the version of the AWS X-Ray SDK for Node.js, Node.js runtime, and other dependencies if applicable. In addition, include the repro case when appropriate.
The GitHub issues are intended for bug reports and feature requests. For help and questions about using the AWS X-Ray SDK for Node.js, use the resources listed in the Getting Help section. Keeping the list of open issues lean helps us respond in a timely manner.
We support and accept PRs from the community.
This monorepo hosts the following npm packages for the SDK:
If you'd like to add support for a new web framework by writing middleware for X-Ray,
please do so by creating a new package within the sdk_contrib
directory.
We are not accepting pull requests for first-party packages at this time,
but will be more than happy to host them as community contributions. This means that AWS will:
AWS will not:
sdk_contrib
)This repo uses Lerna (use v6 or lower) to manage multiple packages. To install Lerna as a CLI:
npm install -g lerna
To install devDependencies and peerDependencies for all packages:
lerna bootstrap --hoist
This repo has a combination of TypeScript and JavaScript source files. To transpile the TypeScript files for testing, run:
lerna run compile
To run tests for all packages:
lerna run test
or go to each package and run npm test
as usual.
The AWS X-Ray SDK for Node.js is licensed under the Apache 2.0 License. See LICENSE and NOTICE.txt for more information.