@embrace-io/web-sdk
Version:
27 lines (26 loc) • 1.47 kB
JavaScript
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
const require_constants_attributes = require("../../constants/attributes.cjs");
const require_managers_EmbraceTraceManager_EmbraceExtendedSpan = require("./EmbraceExtendedSpan.cjs");
let _opentelemetry_api = require("@opentelemetry/api");
//#region src/managers/EmbraceTraceManager/EmbraceTraceManager.ts
var EmbraceTraceManager = class {
_tracer;
constructor({ tracerProvider: globalTraceProviderOverride } = {}) {
const tracerProvider = globalTraceProviderOverride ?? _opentelemetry_api.trace;
this._tracer = tracerProvider.getTracer("embrace-web-sdk-traces");
}
startSpan(name, options = {}, ctx) {
options.attributes = options.attributes ? options.attributes : {};
options.attributes[require_constants_attributes.KEY_EMB_TYPE] = "perf";
const activeContext = options.parentSpan ? _opentelemetry_api.trace.setSpan(_opentelemetry_api.context.active(), options.parentSpan) : ctx;
return new require_managers_EmbraceTraceManager_EmbraceExtendedSpan.EmbraceExtendedSpan(this._tracer.startSpan(name, options, activeContext));
}
setSpan = _opentelemetry_api.trace.setSpan;
getSpan(context) {
const span = _opentelemetry_api.trace.getSpan(context);
if (span) return new require_managers_EmbraceTraceManager_EmbraceExtendedSpan.EmbraceExtendedSpan(span);
}
};
//#endregion
exports.EmbraceTraceManager = EmbraceTraceManager;
//# sourceMappingURL=EmbraceTraceManager.cjs.map