UNPKG

@embrace-io/web-sdk

Version:
26 lines (25 loc) 1.07 kB
import { KEY_EMB_TYPE } from "../../constants/attributes.js"; import { EmbraceExtendedSpan } from "./EmbraceExtendedSpan.js"; import { context, trace } from "@opentelemetry/api"; //#region src/managers/EmbraceTraceManager/EmbraceTraceManager.ts var EmbraceTraceManager = class { _tracer; constructor({ tracerProvider: globalTraceProviderOverride } = {}) { const tracerProvider = globalTraceProviderOverride ?? trace; this._tracer = tracerProvider.getTracer("embrace-web-sdk-traces"); } startSpan(name, options = {}, ctx) { options.attributes = options.attributes ? options.attributes : {}; options.attributes[KEY_EMB_TYPE] = "perf"; const activeContext = options.parentSpan ? trace.setSpan(context.active(), options.parentSpan) : ctx; return new EmbraceExtendedSpan(this._tracer.startSpan(name, options, activeContext)); } setSpan = trace.setSpan; getSpan(context) { const span = trace.getSpan(context); if (span) return new EmbraceExtendedSpan(span); } }; //#endregion export { EmbraceTraceManager }; //# sourceMappingURL=EmbraceTraceManager.js.map