UNPKG

dd-trace

Version:

Datadog APM tracing client for JavaScript

32 lines (22 loc) 596 B
'use strict' const { storage } = require('../../../../datadog-core') function getRootSpan () { let span = storage('legacy').getStore()?.span 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, }