tracing.js 898 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. import { iife } from "./tracing-utils.js";
  2. import { npmVersion } from "./version.js";
  3. let otel;
  4. let rawTracer;
  5. const tracer = {
  6. startActiveSpan(name, fn) {
  7. if (!otel) {
  8. return fn();
  9. }
  10. if (!rawTracer) {
  11. rawTracer = otel.trace.getTracer("drizzle-orm", npmVersion);
  12. }
  13. return iife(
  14. (otel2, rawTracer2) => rawTracer2.startActiveSpan(
  15. name,
  16. (span) => {
  17. try {
  18. return fn(span);
  19. } catch (e) {
  20. span.setStatus({
  21. code: otel2.SpanStatusCode.ERROR,
  22. message: e instanceof Error ? e.message : "Unknown error"
  23. // eslint-disable-line no-instanceof/no-instanceof
  24. });
  25. throw e;
  26. } finally {
  27. span.end();
  28. }
  29. }
  30. ),
  31. otel,
  32. rawTracer
  33. );
  34. }
  35. };
  36. export {
  37. tracer
  38. };
  39. //# sourceMappingURL=tracing.js.map