signalfx-tracing
Version:
Provides auto-instrumentation for JavaScript libraries and frameworks
63 lines (47 loc) • 1.1 kB
JavaScript
'use strict'
const Tracer = require('opentracing').Tracer
const Scope = require('../scope/new/base')
const Span = require('./span')
class NoopTracer extends Tracer {
constructor (config) {
super(config)
let ScopeManager
if (process.env.SIGNALFX_CONTEXT_PROPAGATION === 'false') {
ScopeManager = require('../scope/noop/scope_manager')
} else {
ScopeManager = require('../scope/scope_manager')
}
this._scopeManager = new ScopeManager()
this._scope = new Scope()
this._span = new Span(this)
this._logInjectionTags = new Set()
}
withNonReportingScope (callback) {
return callback()
}
trace (name, options, fn) {
return fn(this._span, () => {})
}
wrap (name, options, fn) {
return fn
}
scopeManager () {
return this._scopeManager
}
scope () {
return this._scope
}
currentSpan () {
return null
}
_startSpan (name, options) {
return this._span
}
flush () {
return Promise.resolve()
}
logInjectionTags () {
return this._logInjectionTags
}
}
module.exports = NoopTracer