Skip to content

jhorwitz75/dd-trace-js

 
 

Repository files navigation

dd-trace-js

npm CircleCI

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.

To get started once you have a Node version installed, run:

$ npm install

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

Unit Tests

To run the unit tests, use:

$ npm test

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

$ npm run tdd

Memory Leaks

To run the memory leak tests, use:

$ npm run 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:

$ npm run 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-memory-leaks
$ circleci build --job build-node-4
$ circleci build --job build-node-6
$ circleci build --job build-node-8
$ circleci build --job build-node-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:

$ npm run bench

Packages

No packages published

Languages

  • JavaScript 100.0%