dd-trace
Version:
Datadog APM tracing client for JavaScript
55 lines (45 loc) • 1.17 kB
JavaScript
const { SpanStatsEncoder } = require('../../encode/span-stats')
const pkg = require('../../../../../package.json')
const BaseWriter = require('../common/writer')
const request = require('../common/request')
const log = require('../../log')
class Writer extends BaseWriter {
constructor ({ url }) {
super(...arguments)
this._url = url
this._encoder = new SpanStatsEncoder(this)
}
_sendPayload (data, _, done) {
makeRequest(data, this._url, (err, res) => {
if (err) {
log.error('Error sending span stats', err)
done()
return
}
log.debug('Response from the intake:', res)
done()
})
}
}
function makeRequest (data, url, cb) {
const options = {
path: '/v0.6/stats',
method: 'PUT',
headers: {
'Datadog-Meta-Lang': 'javascript',
'Datadog-Meta-Tracer-Version': pkg.version,
'Content-Type': 'application/msgpack',
},
protocol: url.protocol,
hostname: url.hostname,
port: url.port,
}
log.debug('Request to the intake: %j', options)
request(data, options, (err, res) => {
cb(err, res)
})
}
module.exports = {
Writer,
}