@effect/opentelemetry 0.60.0 → 4.0.0-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (160) hide show
  1. package/LICENSE +1 -1
  2. package/dist/{dts/Logger.d.ts → Logger.d.ts} +19 -13
  3. package/dist/Logger.d.ts.map +1 -0
  4. package/dist/Logger.js +76 -0
  5. package/dist/Logger.js.map +1 -0
  6. package/dist/Metrics.d.ts +76 -0
  7. package/dist/Metrics.d.ts.map +1 -0
  8. package/dist/Metrics.js +59 -0
  9. package/dist/Metrics.js.map +1 -0
  10. package/dist/{dts/NodeSdk.d.ts → NodeSdk.d.ts} +12 -9
  11. package/dist/NodeSdk.d.ts.map +1 -0
  12. package/dist/{esm/NodeSdk.js → NodeSdk.js} +23 -14
  13. package/dist/NodeSdk.js.map +1 -0
  14. package/dist/{dts/Resource.d.ts → Resource.d.ts} +10 -13
  15. package/dist/Resource.d.ts.map +1 -0
  16. package/dist/{esm/Resource.js → Resource.js} +12 -13
  17. package/dist/Resource.js.map +1 -0
  18. package/dist/Tracer.d.ts +129 -0
  19. package/dist/Tracer.d.ts.map +1 -0
  20. package/dist/Tracer.js +391 -0
  21. package/dist/Tracer.js.map +1 -0
  22. package/dist/{dts/WebSdk.d.ts → WebSdk.d.ts} +12 -9
  23. package/dist/WebSdk.d.ts.map +1 -0
  24. package/dist/WebSdk.js +41 -0
  25. package/dist/WebSdk.js.map +1 -0
  26. package/dist/index.d.ts +28 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/{esm/index.js → index.js} +4 -20
  29. package/dist/index.js.map +1 -0
  30. package/dist/internal/attributes.d.ts +2 -0
  31. package/dist/internal/attributes.d.ts.map +1 -0
  32. package/dist/internal/attributes.js +19 -0
  33. package/dist/internal/attributes.js.map +1 -0
  34. package/dist/{dts/internal → internal}/metrics.d.ts.map +1 -1
  35. package/dist/internal/metrics.js +406 -0
  36. package/dist/internal/metrics.js.map +1 -0
  37. package/dist/internal/utilities.d.ts +2 -0
  38. package/dist/internal/utilities.d.ts.map +1 -0
  39. package/dist/internal/utilities.js +3 -0
  40. package/dist/internal/utilities.js.map +1 -0
  41. package/package.json +70 -118
  42. package/src/Logger.ts +52 -55
  43. package/src/Metrics.ts +92 -18
  44. package/src/NodeSdk.ts +67 -64
  45. package/src/Resource.ts +16 -24
  46. package/src/Tracer.ts +469 -78
  47. package/src/WebSdk.ts +59 -51
  48. package/src/index.ts +7 -26
  49. package/src/internal/attributes.ts +21 -0
  50. package/src/internal/metrics.ts +381 -250
  51. package/src/internal/utilities.ts +5 -0
  52. package/Logger/package.json +0 -6
  53. package/Metrics/package.json +0 -6
  54. package/NodeSdk/package.json +0 -6
  55. package/Otlp/package.json +0 -6
  56. package/OtlpLogger/package.json +0 -6
  57. package/OtlpMetrics/package.json +0 -6
  58. package/OtlpResource/package.json +0 -6
  59. package/OtlpTracer/package.json +0 -6
  60. package/Resource/package.json +0 -6
  61. package/Tracer/package.json +0 -6
  62. package/WebSdk/package.json +0 -6
  63. package/dist/cjs/Logger.js +0 -85
  64. package/dist/cjs/Logger.js.map +0 -1
  65. package/dist/cjs/Metrics.js +0 -24
  66. package/dist/cjs/Metrics.js.map +0 -1
  67. package/dist/cjs/NodeSdk.js +0 -53
  68. package/dist/cjs/NodeSdk.js.map +0 -1
  69. package/dist/cjs/Otlp.js +0 -46
  70. package/dist/cjs/Otlp.js.map +0 -1
  71. package/dist/cjs/OtlpLogger.js +0 -158
  72. package/dist/cjs/OtlpLogger.js.map +0 -1
  73. package/dist/cjs/OtlpMetrics.js +0 -354
  74. package/dist/cjs/OtlpMetrics.js.map +0 -1
  75. package/dist/cjs/OtlpResource.js +0 -136
  76. package/dist/cjs/OtlpResource.js.map +0 -1
  77. package/dist/cjs/OtlpTracer.js +0 -229
  78. package/dist/cjs/OtlpTracer.js.map +0 -1
  79. package/dist/cjs/Resource.js +0 -75
  80. package/dist/cjs/Resource.js.map +0 -1
  81. package/dist/cjs/Tracer.js +0 -87
  82. package/dist/cjs/Tracer.js.map +0 -1
  83. package/dist/cjs/WebSdk.js +0 -42
  84. package/dist/cjs/WebSdk.js.map +0 -1
  85. package/dist/cjs/index.js +0 -30
  86. package/dist/cjs/index.js.map +0 -1
  87. package/dist/cjs/internal/metrics.js +0 -288
  88. package/dist/cjs/internal/metrics.js.map +0 -1
  89. package/dist/cjs/internal/otlpExporter.js +0 -81
  90. package/dist/cjs/internal/otlpExporter.js.map +0 -1
  91. package/dist/cjs/internal/tracer.js +0 -299
  92. package/dist/cjs/internal/tracer.js.map +0 -1
  93. package/dist/cjs/internal/utils.js +0 -34
  94. package/dist/cjs/internal/utils.js.map +0 -1
  95. package/dist/dts/Logger.d.ts.map +0 -1
  96. package/dist/dts/Metrics.d.ts +0 -29
  97. package/dist/dts/Metrics.d.ts.map +0 -1
  98. package/dist/dts/NodeSdk.d.ts.map +0 -1
  99. package/dist/dts/Otlp.d.ts +0 -31
  100. package/dist/dts/Otlp.d.ts.map +0 -1
  101. package/dist/dts/OtlpLogger.d.ts +0 -46
  102. package/dist/dts/OtlpLogger.d.ts.map +0 -1
  103. package/dist/dts/OtlpMetrics.d.ts +0 -40
  104. package/dist/dts/OtlpMetrics.d.ts.map +0 -1
  105. package/dist/dts/OtlpResource.d.ts +0 -104
  106. package/dist/dts/OtlpResource.d.ts.map +0 -1
  107. package/dist/dts/OtlpTracer.d.ts +0 -49
  108. package/dist/dts/OtlpTracer.d.ts.map +0 -1
  109. package/dist/dts/Resource.d.ts.map +0 -1
  110. package/dist/dts/Tracer.d.ts +0 -143
  111. package/dist/dts/Tracer.d.ts.map +0 -1
  112. package/dist/dts/WebSdk.d.ts.map +0 -1
  113. package/dist/dts/index.d.ts +0 -45
  114. package/dist/dts/index.d.ts.map +0 -1
  115. package/dist/dts/internal/otlpExporter.d.ts +0 -2
  116. package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
  117. package/dist/dts/internal/tracer.d.ts +0 -2
  118. package/dist/dts/internal/tracer.d.ts.map +0 -1
  119. package/dist/dts/internal/utils.d.ts +0 -2
  120. package/dist/dts/internal/utils.d.ts.map +0 -1
  121. package/dist/esm/Logger.js +0 -75
  122. package/dist/esm/Logger.js.map +0 -1
  123. package/dist/esm/Metrics.js +0 -17
  124. package/dist/esm/Metrics.js.map +0 -1
  125. package/dist/esm/NodeSdk.js.map +0 -1
  126. package/dist/esm/Otlp.js +0 -38
  127. package/dist/esm/Otlp.js.map +0 -1
  128. package/dist/esm/OtlpLogger.js +0 -150
  129. package/dist/esm/OtlpLogger.js.map +0 -1
  130. package/dist/esm/OtlpMetrics.js +0 -346
  131. package/dist/esm/OtlpMetrics.js.map +0 -1
  132. package/dist/esm/OtlpResource.js +0 -124
  133. package/dist/esm/OtlpResource.js.map +0 -1
  134. package/dist/esm/OtlpTracer.js +0 -221
  135. package/dist/esm/OtlpTracer.js.map +0 -1
  136. package/dist/esm/Resource.js.map +0 -1
  137. package/dist/esm/Tracer.js +0 -80
  138. package/dist/esm/Tracer.js.map +0 -1
  139. package/dist/esm/WebSdk.js +0 -33
  140. package/dist/esm/WebSdk.js.map +0 -1
  141. package/dist/esm/index.js.map +0 -1
  142. package/dist/esm/internal/metrics.js +0 -278
  143. package/dist/esm/internal/metrics.js.map +0 -1
  144. package/dist/esm/internal/otlpExporter.js +0 -74
  145. package/dist/esm/internal/otlpExporter.js.map +0 -1
  146. package/dist/esm/internal/tracer.js +0 -290
  147. package/dist/esm/internal/tracer.js.map +0 -1
  148. package/dist/esm/internal/utils.js +0 -23
  149. package/dist/esm/internal/utils.js.map +0 -1
  150. package/dist/esm/package.json +0 -4
  151. package/index/package.json +0 -6
  152. package/src/Otlp.ts +0 -66
  153. package/src/OtlpLogger.ts +0 -258
  154. package/src/OtlpMetrics.ts +0 -571
  155. package/src/OtlpResource.ts +0 -232
  156. package/src/OtlpTracer.ts +0 -349
  157. package/src/internal/otlpExporter.ts +0 -124
  158. package/src/internal/tracer.ts +0 -437
  159. package/src/internal/utils.ts +0 -31
  160. /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
@@ -0,0 +1,129 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Otel from "@opentelemetry/api";
5
+ import * as Cause from "effect/Cause";
6
+ import * as Effect from "effect/Effect";
7
+ import * as Layer from "effect/Layer";
8
+ import * as ServiceMap from "effect/ServiceMap";
9
+ import * as Tracer from "effect/Tracer";
10
+ import { Resource } from "./Resource.ts";
11
+ declare const OtelTracer_base: ServiceMap.ServiceClass<OtelTracer, "@effect/opentelemetry/Tracer", Otel.Tracer>;
12
+ /**
13
+ * @since 1.0.0
14
+ * @category Services
15
+ */
16
+ export declare class OtelTracer extends OtelTracer_base {
17
+ }
18
+ declare const OtelTracerProvider_base: ServiceMap.ServiceClass<OtelTracerProvider, "@effect/opentelemetry/Tracer/OtelTracerProvider", Otel.TracerProvider>;
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Services
22
+ */
23
+ export declare class OtelTracerProvider extends OtelTracerProvider_base {
24
+ }
25
+ declare const OtelTraceFlags_base: ServiceMap.ServiceClass<OtelTraceFlags, "@effect/opentelemetry/Tracer/OtelTraceFlags", Otel.TraceFlags>;
26
+ /**
27
+ * @since 1.0.0
28
+ * @category Services
29
+ */
30
+ export declare class OtelTraceFlags extends OtelTraceFlags_base {
31
+ }
32
+ declare const OtelTraceState_base: ServiceMap.ServiceClass<OtelTraceState, "@effect/opentelemetry/Tracer/OtelTraceState", Otel.TraceState>;
33
+ /**
34
+ * @since 1.0.0
35
+ * @category Services
36
+ */
37
+ export declare class OtelTraceState extends OtelTraceState_base {
38
+ }
39
+ /**
40
+ * @since 1.0.0
41
+ * @category Constructors
42
+ */
43
+ export declare const make: Effect.Effect<Tracer.Tracer, never, OtelTracer>;
44
+ /**
45
+ * @since 1.0.0
46
+ * @category Constructors
47
+ */
48
+ export declare const makeExternalSpan: (options: {
49
+ readonly traceId: string;
50
+ readonly spanId: string;
51
+ readonly traceFlags?: number | undefined;
52
+ readonly traceState?: string | Otel.TraceState | undefined;
53
+ }) => Tracer.ExternalSpan;
54
+ /**
55
+ * @since 1.0.0
56
+ * @category Layers
57
+ */
58
+ export declare const layerGlobalProvider: Layer.Layer<OtelTracerProvider>;
59
+ /**
60
+ * @since 1.0.0
61
+ * @category Layers
62
+ */
63
+ export declare const layerTracer: Layer.Layer<OtelTracer, never, OtelTracerProvider | Resource>;
64
+ /**
65
+ * @since 1.0.0
66
+ * @category Layers
67
+ */
68
+ export declare const layerGlobalTracer: Layer.Layer<OtelTracer, never, Resource>;
69
+ /**
70
+ * @since 1.0.0
71
+ * @category Layers
72
+ */
73
+ export declare const layerGlobal: Layer.Layer<OtelTracer, never, Resource>;
74
+ /**
75
+ * @since 1.0.0
76
+ * @category Layers
77
+ */
78
+ export declare const layerWithoutOtelTracer: Layer.Layer<never, never, OtelTracer>;
79
+ /**
80
+ * @since 1.0.0
81
+ * @category Layers
82
+ */
83
+ export declare const layer: Layer.Layer<OtelTracer, never, OtelTracerProvider | Resource>;
84
+ /**
85
+ * Get the current OpenTelemetry span.
86
+ *
87
+ * Works with both the official OpenTelemetry API (via `Tracer.layer`,
88
+ * `NodeSdk.layer`, etc.) and the lightweight OTLP module (`OtlpTracer.layer`).
89
+ *
90
+ * When using OTLP, the returned span is a wrapper that conforms to the
91
+ * OpenTelemetry `Span` interface.
92
+ *
93
+ * @since 1.0.0
94
+ * @category accessors
95
+ */
96
+ export declare const currentOtelSpan: Effect.Effect<Otel.Span, Cause.NoSuchElementError>;
97
+ /**
98
+ * Set the effect's parent span from the given opentelemetry `SpanContext`.
99
+ *
100
+ * This is handy when you set up OpenTelemetry outside of Effect and want to
101
+ * attach to a parent span.
102
+ *
103
+ * @since 1.0.0
104
+ * @category Propagation
105
+ */
106
+ export declare const withSpanContext: {
107
+ /**
108
+ * Set the effect's parent span from the given opentelemetry `SpanContext`.
109
+ *
110
+ * This is handy when you set up OpenTelemetry outside of Effect and want to
111
+ * attach to a parent span.
112
+ *
113
+ * @since 1.0.0
114
+ * @category Propagation
115
+ */
116
+ (spanContext: Otel.SpanContext): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
117
+ /**
118
+ * Set the effect's parent span from the given opentelemetry `SpanContext`.
119
+ *
120
+ * This is handy when you set up OpenTelemetry outside of Effect and want to
121
+ * attach to a parent span.
122
+ *
123
+ * @since 1.0.0
124
+ * @category Propagation
125
+ */
126
+ <A, E, R>(self: Effect.Effect<A, E, R>, spanContext: Otel.SpanContext): Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
127
+ };
128
+ export {};
129
+ //# sourceMappingURL=Tracer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../src/Tracer.ts"],"names":[],"mappings":"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"}
package/dist/Tracer.js ADDED
@@ -0,0 +1,391 @@
1
+ /**
2
+ * @since 1.0.0
3
+ */
4
+ import * as Otel from "@opentelemetry/api";
5
+ import * as OtelSemConv from "@opentelemetry/semantic-conventions";
6
+ import * as Cause from "effect/Cause";
7
+ import * as Effect from "effect/Effect";
8
+ import * as Exit from "effect/Exit";
9
+ import { constTrue, dual } from "effect/Function";
10
+ import * as Layer from "effect/Layer";
11
+ import * as Predicate from "effect/Predicate";
12
+ import * as ServiceMap from "effect/ServiceMap";
13
+ import * as Tracer from "effect/Tracer";
14
+ import { recordToAttributes, unknownToAttributeValue } from "./internal/attributes.js";
15
+ import { Resource } from "./Resource.js";
16
+ // =============================================================================
17
+ // Service Definitions
18
+ // =============================================================================
19
+ /**
20
+ * @since 1.0.0
21
+ * @category Services
22
+ */
23
+ export class OtelTracer extends /*#__PURE__*/ServiceMap.Service()("@effect/opentelemetry/Tracer") {}
24
+ /**
25
+ * @since 1.0.0
26
+ * @category Services
27
+ */
28
+ export class OtelTracerProvider extends /*#__PURE__*/ServiceMap.Service()("@effect/opentelemetry/Tracer/OtelTracerProvider") {}
29
+ /**
30
+ * @since 1.0.0
31
+ * @category Services
32
+ */
33
+ export class OtelTraceFlags extends /*#__PURE__*/ServiceMap.Service()("@effect/opentelemetry/Tracer/OtelTraceFlags") {}
34
+ /**
35
+ * @since 1.0.0
36
+ * @category Services
37
+ */
38
+ export class OtelTraceState extends /*#__PURE__*/ServiceMap.Service()("@effect/opentelemetry/Tracer/OtelTraceState") {}
39
+ // =============================================================================
40
+ // Constructors
41
+ // =============================================================================
42
+ /**
43
+ * @since 1.0.0
44
+ * @category Constructors
45
+ */
46
+ export const make = /*#__PURE__*/Effect.map(/*#__PURE__*/Effect.service(OtelTracer), tracer => Tracer.make({
47
+ span(options) {
48
+ return new OtelSpan(Otel.context, Otel.trace, tracer, options);
49
+ },
50
+ context(primitive, fiber) {
51
+ const currentSpan = fiber.currentSpan;
52
+ if (currentSpan === undefined) {
53
+ return primitive["~effect/Effect/evaluate"](fiber);
54
+ }
55
+ return Otel.context.with(populateContext(Otel.context.active(), currentSpan), () => primitive["~effect/Effect/evaluate"](fiber));
56
+ }
57
+ }));
58
+ /**
59
+ * @since 1.0.0
60
+ * @category Constructors
61
+ */
62
+ export const makeExternalSpan = options => {
63
+ let annotations = ServiceMap.empty();
64
+ if (options.traceFlags !== undefined) {
65
+ annotations = ServiceMap.add(annotations, OtelTraceFlags, options.traceFlags);
66
+ }
67
+ if (typeof options.traceState === "string") {
68
+ try {
69
+ const traceState = Otel.createTraceState(options.traceState);
70
+ annotations = ServiceMap.add(annotations, OtelTraceState, traceState);
71
+ } catch {
72
+ //
73
+ }
74
+ } else if (options.traceState) {
75
+ annotations = ServiceMap.add(annotations, OtelTraceState, options.traceState);
76
+ }
77
+ return {
78
+ _tag: "ExternalSpan",
79
+ traceId: options.traceId,
80
+ spanId: options.spanId,
81
+ sampled: Predicate.isNotUndefined(options.traceFlags) ? isSampled(options.traceFlags) : true,
82
+ annotations
83
+ };
84
+ };
85
+ // =============================================================================
86
+ // Layers
87
+ // =============================================================================
88
+ /**
89
+ * @since 1.0.0
90
+ * @category Layers
91
+ */
92
+ export const layerGlobalProvider = /*#__PURE__*/Layer.sync(OtelTracerProvider, () => Otel.trace.getTracerProvider());
93
+ /**
94
+ * @since 1.0.0
95
+ * @category Layers
96
+ */
97
+ export const layerTracer = /*#__PURE__*/Layer.effect(OtelTracer, /*#__PURE__*/Effect.gen(function* () {
98
+ const resource = yield* Resource;
99
+ const provider = yield* OtelTracerProvider;
100
+ return provider.getTracer(resource.attributes[OtelSemConv.ATTR_SERVICE_NAME], resource.attributes[OtelSemConv.ATTR_SERVICE_VERSION]);
101
+ }));
102
+ /**
103
+ * @since 1.0.0
104
+ * @category Layers
105
+ */
106
+ export const layerGlobalTracer = /*#__PURE__*/layerTracer.pipe(/*#__PURE__*/Layer.provide(layerGlobalProvider));
107
+ /**
108
+ * @since 1.0.0
109
+ * @category Layers
110
+ */
111
+ export const layerGlobal = /*#__PURE__*/Layer.effect(Tracer.Tracer, make).pipe(/*#__PURE__*/Layer.provideMerge(layerGlobalTracer));
112
+ /**
113
+ * @since 1.0.0
114
+ * @category Layers
115
+ */
116
+ export const layerWithoutOtelTracer = /*#__PURE__*/Layer.effect(Tracer.Tracer, make);
117
+ /**
118
+ * @since 1.0.0
119
+ * @category Layers
120
+ */
121
+ export const layer = /*#__PURE__*/layerWithoutOtelTracer.pipe(/*#__PURE__*/Layer.provideMerge(layerTracer));
122
+ // =============================================================================
123
+ // Utilities / Combinators
124
+ // =============================================================================
125
+ const bigint1e6 = /*#__PURE__*/BigInt(1_000_000);
126
+ const bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);
127
+ /**
128
+ * Get the current OpenTelemetry span.
129
+ *
130
+ * Works with both the official OpenTelemetry API (via `Tracer.layer`,
131
+ * `NodeSdk.layer`, etc.) and the lightweight OTLP module (`OtlpTracer.layer`).
132
+ *
133
+ * When using OTLP, the returned span is a wrapper that conforms to the
134
+ * OpenTelemetry `Span` interface.
135
+ *
136
+ * @since 1.0.0
137
+ * @category accessors
138
+ */
139
+ export const currentOtelSpan = /*#__PURE__*/Effect.clockWith(clock => Effect.map(Effect.currentSpan, span => OtelSpanTypeId in span ? span.span : makeOtelSpan(span, clock)));
140
+ const makeOtelSpan = (span, clock) => {
141
+ const spanContext = {
142
+ traceId: span.traceId,
143
+ spanId: span.spanId,
144
+ traceFlags: span.sampled ? Otel.TraceFlags.SAMPLED : Otel.TraceFlags.NONE,
145
+ isRemote: false
146
+ };
147
+ let exit = Exit.void;
148
+ const self = {
149
+ spanContext: () => spanContext,
150
+ setAttribute(key, value) {
151
+ span.attribute(key, value);
152
+ return self;
153
+ },
154
+ setAttributes(attributes) {
155
+ for (const [key, value] of Object.entries(attributes)) {
156
+ span.attribute(key, value);
157
+ }
158
+ return self;
159
+ },
160
+ addEvent(name) {
161
+ let attributes = undefined;
162
+ let startTime = undefined;
163
+ if (arguments.length === 3) {
164
+ attributes = arguments[1];
165
+ startTime = arguments[2];
166
+ } else {
167
+ startTime = arguments[1];
168
+ }
169
+ span.event(name, convertOtelTimeInput(startTime, clock), attributes);
170
+ return self;
171
+ },
172
+ addLink(link) {
173
+ span.addLinks([{
174
+ span: makeExternalSpan(link.context),
175
+ attributes: link.attributes ?? {}
176
+ }]);
177
+ return self;
178
+ },
179
+ addLinks(links) {
180
+ span.addLinks(links.map(link => ({
181
+ span: makeExternalSpan(link.context),
182
+ attributes: link.attributes ?? {}
183
+ })));
184
+ return self;
185
+ },
186
+ setStatus(status) {
187
+ exit = Otel.SpanStatusCode.ERROR ? Exit.die(status.message ?? "Unknown error") : Exit.void;
188
+ return self;
189
+ },
190
+ updateName: () => self,
191
+ end(endTime) {
192
+ const time = convertOtelTimeInput(endTime, clock);
193
+ span.end(time, exit);
194
+ return self;
195
+ },
196
+ isRecording: constTrue,
197
+ recordException(exception, timeInput) {
198
+ const time = convertOtelTimeInput(timeInput, clock);
199
+ const cause = Cause.fail(exception);
200
+ const error = Cause.prettyErrors(cause)[0];
201
+ span.event(error.message, time, {
202
+ "exception.type": error.name,
203
+ "exception.message": error.message,
204
+ "exception.stacktrace": error.stack ?? ""
205
+ });
206
+ }
207
+ };
208
+ return self;
209
+ };
210
+ const convertOtelTimeInput = (input, clock) => {
211
+ if (input === undefined) {
212
+ return clock.currentTimeNanosUnsafe();
213
+ } else if (typeof input === "number") {
214
+ return BigInt(Math.round(input * 1_000_000));
215
+ } else if (input instanceof Date) {
216
+ return BigInt(input.getTime()) * bigint1e6;
217
+ }
218
+ const [seconds, nanos] = input;
219
+ return BigInt(seconds) * bigint1e9 + BigInt(nanos);
220
+ };
221
+ /**
222
+ * Set the effect's parent span from the given opentelemetry `SpanContext`.
223
+ *
224
+ * This is handy when you set up OpenTelemetry outside of Effect and want to
225
+ * attach to a parent span.
226
+ *
227
+ * @since 1.0.0
228
+ * @category Propagation
229
+ */
230
+ export const withSpanContext = /*#__PURE__*/dual(2, (self, spanContext) => Effect.withParentSpan(self, makeExternalSpan(spanContext)));
231
+ // =============================================================================
232
+ // Internals
233
+ // =============================================================================
234
+ const OtelSpanTypeId = "~@effect/opentelemetry/Tracer/OtelSpan";
235
+ const kindMap = {
236
+ "internal": Otel.SpanKind.INTERNAL,
237
+ "client": Otel.SpanKind.CLIENT,
238
+ "server": Otel.SpanKind.SERVER,
239
+ "producer": Otel.SpanKind.PRODUCER,
240
+ "consumer": Otel.SpanKind.CONSUMER
241
+ };
242
+ /** @internal */
243
+ export class OtelSpan {
244
+ [OtelSpanTypeId];
245
+ _tag = "Span";
246
+ name;
247
+ kind;
248
+ annotations;
249
+ links;
250
+ span;
251
+ spanId;
252
+ traceId;
253
+ attributes = /*#__PURE__*/new Map();
254
+ sampled;
255
+ parent;
256
+ status;
257
+ constructor(contextApi, traceApi, tracer, options) {
258
+ this[OtelSpanTypeId] = OtelSpanTypeId;
259
+ this.name = options.name;
260
+ this.annotations = options.annotations;
261
+ this.links = options.links;
262
+ this.kind = options.kind;
263
+ const active = contextApi.active();
264
+ this.parent = options.parent ?? options?.root !== true ? getOtelParent(traceApi, active, options.annotations) : undefined;
265
+ this.span = tracer.startSpan(options.name, {
266
+ startTime: nanosToHrTime(options.startTime),
267
+ links: options.links.length > 0 ? options.links.map(link => ({
268
+ context: makeSpanContext(link.span),
269
+ attributes: recordToAttributes(link.attributes)
270
+ })) : undefined,
271
+ kind: kindMap[this.kind]
272
+ }, this.parent ? populateContext(active, this.parent, options.annotations) : Otel.trace.deleteSpan(active));
273
+ const spanContext = this.span.spanContext();
274
+ this.spanId = spanContext.spanId;
275
+ this.traceId = spanContext.traceId;
276
+ this.status = {
277
+ _tag: "Started",
278
+ startTime: options.startTime
279
+ };
280
+ this.sampled = isSampled(spanContext.traceFlags);
281
+ }
282
+ attribute(key, value) {
283
+ this.span.setAttribute(key, unknownToAttributeValue(value));
284
+ this.attributes.set(key, value);
285
+ }
286
+ addLinks(links) {
287
+ // oxlint-disable-next-line no-restricted-syntax
288
+ this.links.push(...links);
289
+ this.span.addLinks(links.map(link => ({
290
+ context: makeSpanContext(link.span),
291
+ attributes: recordToAttributes(link.attributes)
292
+ })));
293
+ }
294
+ end(endTime, exit) {
295
+ const hrTime = nanosToHrTime(endTime);
296
+ this.status = {
297
+ _tag: "Ended",
298
+ endTime,
299
+ exit,
300
+ startTime: this.status.startTime
301
+ };
302
+ if (exit._tag === "Success") {
303
+ this.span.setStatus({
304
+ code: Otel.SpanStatusCode.OK
305
+ });
306
+ } else {
307
+ if (Cause.hasInterruptsOnly(exit.cause)) {
308
+ this.span.setStatus({
309
+ code: Otel.SpanStatusCode.OK,
310
+ message: Cause.pretty(exit.cause)
311
+ });
312
+ this.span.setAttribute("span.label", "⚠︎ Interrupted");
313
+ this.span.setAttribute("status.interrupted", true);
314
+ } else {
315
+ const errors = Cause.prettyErrors(exit.cause);
316
+ if (errors.length > 0) {
317
+ for (const error of errors) {
318
+ this.span.recordException(error, hrTime);
319
+ }
320
+ this.span.setStatus({
321
+ code: Otel.SpanStatusCode.ERROR,
322
+ message: errors[0].message
323
+ });
324
+ } else {
325
+ // empty cause means no error
326
+ this.span.setStatus({
327
+ code: Otel.SpanStatusCode.OK
328
+ });
329
+ }
330
+ }
331
+ }
332
+ this.span.end(hrTime);
333
+ }
334
+ event(name, startTime, attributes) {
335
+ this.span.addEvent(name, attributes ? recordToAttributes(attributes) : undefined, nanosToHrTime(startTime));
336
+ }
337
+ }
338
+ const isSampled = traceFlags => (traceFlags & Otel.TraceFlags.SAMPLED) === Otel.TraceFlags.SAMPLED;
339
+ const nanosToHrTime = timestamp => {
340
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
341
+ };
342
+ const getOtelParent = (tracer, context, annotations) => {
343
+ const active = tracer.getSpan(context);
344
+ const otelParent = active ? active.spanContext() : undefined;
345
+ return otelParent ? Tracer.externalSpan({
346
+ spanId: otelParent.spanId,
347
+ traceId: otelParent.traceId,
348
+ sampled: (otelParent.traceFlags & 1) === 1,
349
+ annotations
350
+ }) : undefined;
351
+ };
352
+ const makeSpanContext = (span, annotations) => {
353
+ const traceFlags = makeTraceFlags(span, annotations);
354
+ const traceState = makeTraceState(span, annotations);
355
+ return {
356
+ spanId: span.spanId,
357
+ traceId: span.traceId,
358
+ isRemote: span._tag === "ExternalSpan",
359
+ traceFlags,
360
+ traceState
361
+ };
362
+ };
363
+ const makeTraceFlags = (span, annotations) => {
364
+ let traceFlags;
365
+ if (Predicate.isNotUndefined(annotations)) {
366
+ traceFlags = extractTraceService(span, annotations, OtelTraceFlags);
367
+ if (Predicate.isUndefined(traceFlags)) {
368
+ traceFlags = ServiceMap.getOrUndefined(span.annotations, OtelTraceFlags);
369
+ }
370
+ }
371
+ return traceFlags ?? Otel.TraceFlags.SAMPLED;
372
+ };
373
+ const makeTraceState = (span, annotations) => {
374
+ let traceState;
375
+ if (Predicate.isNotUndefined(annotations)) {
376
+ traceState = extractTraceService(span, annotations, OtelTraceState);
377
+ if (Predicate.isUndefined(traceState)) {
378
+ traceState = ServiceMap.getOrUndefined(span.annotations, OtelTraceState);
379
+ }
380
+ }
381
+ return traceState;
382
+ };
383
+ const extractTraceService = (parent, annotations, service) => {
384
+ const instance = ServiceMap.getOrUndefined(annotations, service);
385
+ if (Predicate.isNotUndefined(instance)) {
386
+ return instance;
387
+ }
388
+ return ServiceMap.getOrUndefined(parent.annotations, service);
389
+ };
390
+ const populateContext = (context, span, annotations) => span instanceof OtelSpan ? Otel.trace.setSpan(context, span.span) : Otel.trace.setSpanContext(context, makeSpanContext(span, annotations));
391
+ //# sourceMappingURL=Tracer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Tracer.js","names":["Otel","OtelSemConv","Cause","Effect","Exit","constTrue","dual","Layer","Predicate","ServiceMap","Tracer","recordToAttributes","unknownToAttributeValue","Resource","OtelTracer","Service","OtelTracerProvider","OtelTraceFlags","OtelTraceState","make","map","service","tracer","span","options","OtelSpan","context","trace","primitive","fiber","currentSpan","undefined","with","populateContext","active","makeExternalSpan","annotations","empty","traceFlags","add","traceState","createTraceState","_tag","traceId","spanId","sampled","isNotUndefined","isSampled","layerGlobalProvider","sync","getTracerProvider","layerTracer","effect","gen","resource","provider","getTracer","attributes","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","layerGlobalTracer","pipe","provide","layerGlobal","provideMerge","layerWithoutOtelTracer","layer","bigint1e6","BigInt","bigint1e9","currentOtelSpan","clockWith","clock","OtelSpanTypeId","makeOtelSpan","spanContext","TraceFlags","SAMPLED","NONE","isRemote","exit","void","self","setAttribute","key","value","attribute","setAttributes","Object","entries","addEvent","name","startTime","arguments","length","event","convertOtelTimeInput","addLink","link","addLinks","links","setStatus","status","SpanStatusCode","ERROR","die","message","updateName","end","endTime","time","isRecording","recordException","exception","timeInput","cause","fail","error","prettyErrors","stack","input","currentTimeNanosUnsafe","Math","round","Date","getTime","seconds","nanos","withSpanContext","withParentSpan","kindMap","SpanKind","INTERNAL","CLIENT","SERVER","PRODUCER","CONSUMER","kind","Map","parent","constructor","contextApi","traceApi","root","getOtelParent","startSpan","nanosToHrTime","makeSpanContext","deleteSpan","set","push","hrTime","code","OK","hasInterruptsOnly","pretty","errors","timestamp","Number","getSpan","otelParent","externalSpan","makeTraceFlags","makeTraceState","extractTraceService","isUndefined","getOrUndefined","instance","setSpan","setSpanContext"],"sources":["../src/Tracer.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
- import type * as OtelApi from "@opentelemetry/api";
4
+ import type * as Otel from "@opentelemetry/api";
5
5
  import type { LoggerProviderConfig, LogRecordProcessor } from "@opentelemetry/sdk-logs";
6
6
  import type { MetricReader } from "@opentelemetry/sdk-metrics";
7
7
  import type { SpanProcessor, TracerConfig } from "@opentelemetry/sdk-trace-base";
@@ -9,42 +9,45 @@ import type { NonEmptyReadonlyArray } from "effect/Array";
9
9
  import * as Effect from "effect/Effect";
10
10
  import { type LazyArg } from "effect/Function";
11
11
  import * as Layer from "effect/Layer";
12
- import * as Resource from "./Resource.js";
13
- import * as Tracer from "./Tracer.js";
12
+ import * as Metrics from "./Metrics.ts";
13
+ import * as Resource from "./Resource.ts";
14
+ import * as Tracer from "./Tracer.ts";
14
15
  /**
15
16
  * @since 1.0.0
16
- * @category model
17
+ * @category Models
17
18
  */
18
19
  export interface Configuration {
19
20
  readonly spanProcessor?: SpanProcessor | ReadonlyArray<SpanProcessor> | undefined;
20
21
  readonly tracerConfig?: Omit<TracerConfig, "resource">;
21
22
  readonly metricReader?: MetricReader | ReadonlyArray<MetricReader> | undefined;
23
+ readonly metricTemporality?: Metrics.TemporalityPreference | undefined;
22
24
  readonly logRecordProcessor?: LogRecordProcessor | ReadonlyArray<LogRecordProcessor> | undefined;
23
25
  readonly loggerProviderConfig?: Omit<LoggerProviderConfig, "resource"> | undefined;
26
+ readonly loggerMergeWithExisting?: boolean | undefined;
24
27
  readonly resource: {
25
28
  readonly serviceName: string;
26
29
  readonly serviceVersion?: string;
27
- readonly attributes?: OtelApi.Attributes;
30
+ readonly attributes?: Otel.Attributes;
28
31
  };
29
32
  }
30
33
  /**
31
34
  * @since 1.0.0
32
- * @category layers
35
+ * @category Layers
33
36
  */
34
37
  export declare const layerTracerProvider: (processor: SpanProcessor | NonEmptyReadonlyArray<SpanProcessor>, config?: Omit<TracerConfig, "resource">) => Layer.Layer<Tracer.OtelTracerProvider, never, Resource.Resource>;
35
38
  /**
36
39
  * @since 1.0.0
37
- * @category layer
40
+ * @category Layers
38
41
  */
39
42
  export declare const layer: {
40
43
  /**
41
44
  * @since 1.0.0
42
- * @category layer
45
+ * @category Layers
43
46
  */
44
47
  (evaluate: LazyArg<Configuration>): Layer.Layer<Resource.Resource>;
45
48
  /**
46
49
  * @since 1.0.0
47
- * @category layer
50
+ * @category Layers
48
51
  */
49
52
  <E, R>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>;
50
53
  };
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebSdk.d.ts","sourceRoot":"","sources":["../src/WebSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IAC9E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAA;IAChG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,GAAG,SAAS,CAAA;IAClF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;KACtC,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAC/D,SAAS,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAoB/D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;;OAGG;IACH,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE;;;OAGG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CAoCzF,CAAA"}
package/dist/WebSdk.js ADDED
@@ -0,0 +1,41 @@
1
+ import { WebTracerProvider } from "@opentelemetry/sdk-trace-web";
2
+ import * as Effect from "effect/Effect";
3
+ import { constant } from "effect/Function";
4
+ import * as Layer from "effect/Layer";
5
+ import { isNonEmpty } from "./internal/utilities.js";
6
+ import * as Logger from "./Logger.js";
7
+ import * as Metrics from "./Metrics.js";
8
+ import * as Resource from "./Resource.js";
9
+ import * as Tracer from "./Tracer.js";
10
+ /**
11
+ * @since 1.0.0
12
+ * @category Layers
13
+ */
14
+ export const layerTracerProvider = (processor, config) => Layer.effect(Tracer.OtelTracerProvider, Effect.gen(function* () {
15
+ const resource = yield* Resource.Resource;
16
+ return yield* Effect.acquireRelease(Effect.sync(() => {
17
+ const provider = new WebTracerProvider({
18
+ ...(config ?? undefined),
19
+ resource,
20
+ spanProcessors: Array.isArray(processor) ? processor : [processor]
21
+ });
22
+ return provider;
23
+ }), provider => Effect.ignore(Effect.promise(() => provider.forceFlush().then(() => provider.shutdown()))));
24
+ }));
25
+ /**
26
+ * @since 1.0.0
27
+ * @category Layers
28
+ */
29
+ export const layer = evaluate => Layer.unwrap(Effect.gen(function* () {
30
+ const config = yield* Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate);
31
+ const ResourceLive = Resource.layer(config.resource);
32
+ const TracerLive = isNonEmpty(config.spanProcessor) ? Layer.provide(Tracer.layer, layerTracerProvider(config.spanProcessor, config.tracerConfig)) : Layer.empty;
33
+ const LoggerLive = isNonEmpty(config.logRecordProcessor) ? Layer.provide(Logger.layer({
34
+ mergeWithExisting: config.loggerMergeWithExisting
35
+ }), Logger.layerLoggerProvider(config.logRecordProcessor, config.loggerProviderConfig)) : Layer.empty;
36
+ const MetricsLive = isNonEmpty(config.metricReader) ? Metrics.layer(constant(config.metricReader), {
37
+ temporality: config.metricTemporality
38
+ }) : Layer.empty;
39
+ return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(Layer.provideMerge(ResourceLive));
40
+ }));
41
+ //# sourceMappingURL=WebSdk.js.map