dd-trace
Version:
Datadog APM tracing client for JavaScript
30 lines (21 loc) • 533 B
JavaScript
function getRootSpan (tracer) {
let span = tracer.scope().active()
if (!span) return
const context = span.context()
const started = context._trace.started
let parentId = context._parentId
while (parentId) {
const parent = started.find(s => s.context()._spanId === parentId)
const pContext = parent?.context()
if (!pContext) break
parentId = pContext._parentId
if (!pContext._tags?._inferred_span) {
span = parent
}
}
return span
}
module.exports = {
getRootSpan
}