import { trace } from '@opentelemetry/api'; import { startInactiveSpan, startSpanManual } from '@sentry/core'; function setupOpenTelemetryTracer() { trace.setGlobalTracerProvider(new SentryCloudflareTraceProvider()); } class SentryCloudflareTraceProvider { constructor() { this._tracers = /* @__PURE__ */ new Map(); } getTracer(name, version, options) { const key = `${name}@${version || ""}:${options?.schemaUrl || ""}`; if (!this._tracers.has(key)) { this._tracers.set(key, new SentryCloudflareTracer()); } return this._tracers.get(key); } } class SentryCloudflareTracer { startSpan(name, options) { return startInactiveSpan({ ...options, name, attributes: { ...options?.attributes, "sentry.cloudflare_tracer": true } }); } startActiveSpan(name, options, context, fn) { const opts = typeof options === "object" && options !== null ? options : {}; const spanOpts = { ...opts, name, attributes: { ...opts.attributes, "sentry.cloudflare_tracer": true } }; const callback = typeof options === "function" ? options : typeof context === "function" ? context : typeof fn === "function" ? fn : () => { }; return startSpanManual(spanOpts, callback); } } export { setupOpenTelemetryTracer }; //# sourceMappingURL=tracer.js.map