node package manager
Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »


Datadog Tracer

npm Build Status codecov Code Climate Greenkeeper badge bitHound Dependencies

OpenTracing tracer implementation for Datadog in JavaScript. It is intended for use both on the server and in the browser.



npm install --save datadog-tracer

Node >= 4 is required.


The library supports CommonJS and AMD loaders and also exports globally as DatadogTracer.

NOTE: If you want to use binary propagation, make sure to also include the minimal version of protobuf.js before this library.


<script src="//"></script>

NOTE: Remember to replace the version tag with the exact release your project depends upon.


<script src="node_modules/datadog-tracer/dist/datadog-tracer.min.js"></script>


See the OpenTracing JavaScript documentation for more information.

Custom tracer options

  • service: name of the Datadog service
  • hostname: hostname of the Datadog agent (default: localhost)
  • port: port of the Datadog agent (default: 8126)
  • protocol: protocol of the Datadog agent (default: http)
  • endpoint: full URL of the Datadog agent (alternative to hostname+port+protocol)


const express = require('express')
const Tracer = require('datadog-tracer')
const app = express()
const tracer = new Tracer({ service: 'example' })
// handle errors from Datadog agent. omit this if you want to ignore errors
tracer.on('error', e => console.log(e))
app.get('/hello/:name', (req, res) => {
  const span = tracer.startSpan('say_hello')
    'resource': '/hello/:name', // required by Datadog
    'type': 'web', // required by Datadog
    'span.kind': 'server',
    'http.method': 'GET',
    'http.url': req.url,
    'http.status_code': '200'
  res.send(`Hello, ${}!`)

See the examples folder for more advanced examples.

API Documentation

See the OpenTracing JavaScript API

Additional Resources