signalfx-tracing
Version:
Provides auto-instrumentation for JavaScript libraries and frameworks
50 lines (44 loc) • 1.06 kB
JavaScript
const EventEmitter = require('events')
const id = require('./id')
const uuid = require('./uuid')
const now = require('./now')
const env = require('./env')
const validate = require('./validate')
const service = require('./service')
const request = require('./request')
const msgpack = require('./msgpack')
const metrics = require('./metrics')
const Uint64BE = require('./uint64be')
const emitter = new EventEmitter()
const platform = {
_config: {},
name: () => 'nodejs',
version: () => process.version,
engine: () => process.jsEngine || 'v8',
configure (config) {
this._config = config
},
runtime () {
return {
id: () => {
return this._config._runtimeId || (this._config._runtimeId = this.uuid())
}
}
},
id,
uuid,
now,
env,
validate,
service,
request,
msgpack,
metrics,
Uint64BE,
on: emitter.on.bind(emitter),
once: emitter.once.bind(emitter),
off: emitter.removeListener.bind(emitter)
}
process.once('beforeExit', () => emitter.emit('exit'))
module.exports = platform