@embrace-io/web-sdk
Version:
26 lines (25 loc) • 1.07 kB
JavaScript
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