Datadog Tracer
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' })
tracer.on('error', e => console.log(e))
app.get('/hello/:name', (req, res) => {
const span = tracer.startSpan('say_hello')
span.addTags({
'resource': '/hello/:name',
'type': 'web',
'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