@ogcio/o11y-sdk-node
Version:
Opentelemetry standard instrumentation SDK for NodeJS based project
18 lines (17 loc) • 782 B
JavaScript
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));
}