JavaScript APM Tracer
Latest commit 94870e1 Nov 16, 2018
Permalink
Failed to load latest commit information.
.circleci fix build Nov 15, 2018
benchmark fix wrong operation name used by the formatter when overriden (#359) Nov 7, 2018
docs add graphql option to configure variables to record as an array (#336) Oct 26, 2018
ext add the http.route tag which allows overriding the route (#348) Nov 5, 2018
lib v0.7.0 Oct 15, 2018
scripts fix windows support and split plugin tests (#374) Nov 15, 2018
src Merge branch 'master' into v0.7.0 Nov 15, 2018
test split build further Nov 15, 2018
.editorconfig project: added project structure with tests, benchmarks, CI and linti… Jan 22, 2018
.eslintignore fix node-memwatch being included in user dependencies (#281) Sep 14, 2018
.eslintrc.json add http request + test utilities (#2) Jan 26, 2018
.gitignore move supported module versions outside of the test folder (#309) Oct 15, 2018
.npmignore add npmignore to only include relevant files (#345) Nov 1, 2018
.nvmrc add http request + test utilities (#2) Jan 26, 2018
.nycrc fix windows support and split plugin tests (#374) Nov 15, 2018
CONTRIBUTING.md remove mentions of beta as the module is now stable (#195) Jul 24, 2018
LICENSE [license] add third party licenses and update README statement that t… Mar 20, 2018
LICENSE-3rdparty.csv fix windows support and split plugin tests (#374) Nov 15, 2018
README.md fix windows support and split plugin tests (#374) Nov 15, 2018
azure-pipelines.yml fix windows support and split plugin tests (#374) Nov 15, 2018
docker-compose.yml Merge remote-tracking branch 'origin/master' into v0.6.0 Sep 25, 2018
index.js add a tracer proxy as the module export (#17) Feb 22, 2018
package.json fix build Nov 15, 2018

README.md

dd-trace-js

npm npm (tag) CircleCI Build Status

JavaScript APM Tracer

Datadog APM tracing client for JavaScript.

Getting Started

For a basic product overview, check out our setup documentation.

For installation, configuration, and details about using the API, check out our API documentation.

For descriptions of terminology used in APM, take a look at the official documentation.

Development

Before contributing to this open source project, read our CONTRIBUTING.md.

Requirements

Since this project supports multiple Node versions, using a version manager such as nvm is recommended.

We use yarn for its workspace functionality, so make sure to install that as well.

To get started once you have Node and yarn installed, run:

$ yarn

Testing

Before running the tests, the data stores need to be running. The easiest way to start all of them is to use the provided docker-compose configuration:

$ docker-compose up -d -V --remove-orphans --force-recreate

Unit Tests

To run the unit tests, use:

$ yarn test

To run the unit tests continuously in watch mode while developing, use:

$ yarn tdd

Memory Leaks

To run the memory leak tests, use:

$ yarn leak

Please note that memory leak tests only run on Node >=8.

Linting

We use ESLint to make sure that new code is conform to our coding standards.

To run the linter, use:

$ yarn lint

Continuous Integration

We rely on CircleCI 2.0 for our tests. If you want to test how the CI behaves locally, you can use the CircleCI Command Line Interface as described here: https://circleci.com/docs/2.0/local-jobs/

After installing the circleci CLI, simply run one of the following:

$ circleci build --job lint
$ circleci build --job test-node-leaks
$ circleci build --job test-node-core-4
$ circleci build --job test-node-core-6
$ circleci build --job test-node-core-8
$ circleci build --job test-node-core-latest

Benchmarks

When two or more approaches must be compared, please write a benchmark in the benchmark/index.js module so that we can keep track of the most efficient algorithm. To run your benchmark, just:

$ yarn bench