dd-trace
Version:
Datadog APM tracing client for JavaScript
51 lines (41 loc) • 826 B
JavaScript
class NoopSpanProcessor {
forceFlush () {
return Promise.resolve()
}
onStart (span, context) {}
onEnd (span) {}
shutdown () {
return Promise.resolve()
}
}
class MultiSpanProcessor extends NoopSpanProcessor {
constructor (spanProcessors) {
super()
this._processors = spanProcessors
}
forceFlush () {
return Promise.all(
this._processors.map(p => p.forceFlush())
)
}
onStart (span, context) {
for (const processor of this._processors) {
processor.onStart(span, context)
}
}
onEnd (span) {
for (const processor of this._processors) {
processor.onEnd(span)
}
}
shutdown () {
return Promise.all(
this._processors.map(p => p.shutdown())
)
}
}
module.exports = {
MultiSpanProcessor,
NoopSpanProcessor
}