/datadog-tracer-js

[DEPRECATED] OpenTracing tracer implementation for Datadog in JavaScript.

Primary LanguageJavaScriptMIT LicenseMIT

Datadog Tracer

npm Build Status codecov Code Climate Greenkeeper badge bitHound Dependencies

DEPRECATED: The official library dd-trace-js has now been released.

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

Installation

NodeJS

npm install --save datadog-tracer

Node >= 4 is required.

Browser

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.

CDN

<script src="//cdn.rawgit.com/rochdev/datadog-tracer-js/0.X.X/dist/datadog-tracer.min.js"></script>

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

Frontend

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

Usage

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)

Example

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')

  span.addTags({
    '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'
  })

  span.finish()

  res.send(`Hello, ${req.params.name}!`)
})

app.listen(3000)

See the examples folder for more advanced examples.

API Documentation

See the OpenTracing JavaScript API

Additional Resources