UNPKG

@ogcio/o11y-sdk-node

Version:

Opentelemetry standard instrumentation SDK for NodeJS based project

18 lines (17 loc) 782 B
import { trace } from "@opentelemetry/api"; import { selfContainedSpanHandlerGenerator } from "../../sdk-core/lib/utils/traces.js"; import { getNodeSdkConfig } from "./config-manager.js"; /** * Gets the currently active OpenTelemetry span. * * @returns {Span | undefined} The active span with redaction logic applied, * or `undefined` if there is no active span in context. */ export function getActiveSpan() { return trace.getActiveSpan(); } export function withSpan({ traceName, spanName, spanOptions = {}, fn, }) { const sdkConfig = getNodeSdkConfig(); const tracer = trace.getTracer(traceName ?? sdkConfig?.serviceName ?? "o11y-sdk", sdkConfig?.serviceVersion); return tracer.startActiveSpan(spanName, spanOptions, selfContainedSpanHandlerGenerator(fn)); }