39 lines
898 B
JavaScript
39 lines
898 B
JavaScript
import { iife } from "./tracing-utils.js";
|
|
import { npmVersion } from "./version.js";
|
|
let otel;
|
|
let rawTracer;
|
|
const tracer = {
|
|
startActiveSpan(name, fn) {
|
|
if (!otel) {
|
|
return fn();
|
|
}
|
|
if (!rawTracer) {
|
|
rawTracer = otel.trace.getTracer("drizzle-orm", npmVersion);
|
|
}
|
|
return iife(
|
|
(otel2, rawTracer2) => rawTracer2.startActiveSpan(
|
|
name,
|
|
(span) => {
|
|
try {
|
|
return fn(span);
|
|
} catch (e) {
|
|
span.setStatus({
|
|
code: otel2.SpanStatusCode.ERROR,
|
|
message: e instanceof Error ? e.message : "Unknown error"
|
|
// eslint-disable-line no-instanceof/no-instanceof
|
|
});
|
|
throw e;
|
|
} finally {
|
|
span.end();
|
|
}
|
|
}
|
|
),
|
|
otel,
|
|
rawTracer
|
|
);
|
|
}
|
|
};
|
|
export {
|
|
tracer
|
|
};
|
|
//# sourceMappingURL=tracing.js.map
|