dd-trace
Version:
Datadog APM tracing client for JavaScript
50 lines (43 loc) • 1.18 kB
JavaScript
const log = require('./log')
const { profiler } = require('./profiling')
// Stop profiler upon exit in order to collect and export the current profile
process.once('beforeExit', () => { profiler.stop() })
module.exports = {
start: config => {
const { service, version, env, url, hostname, port, tags, repositoryUrl, commitSHA, injectionEnabled } = config
const { enabled, sourceMap, exporters } = config.profiling
const logger = {
debug: (message) => log.debug(message),
info: (message) => log.info(message),
warn: (message) => log.warn(message),
error: (...args) => log.error(...args)
}
const libraryInjected = injectionEnabled.length > 0
let activation
if (enabled === 'auto') {
activation = 'auto'
} else if (enabled === 'true') {
activation = 'manual'
} // else activation = undefined
return profiler.start({
service,
version,
env,
logger,
sourceMap,
exporters,
url,
hostname,
port,
tags,
repositoryUrl,
commitSHA,
libraryInjected,
activation
})
},
stop: () => {
profiler.stop()
}
}