@effect/opentelemetry 0.61.0 → 4.0.0-beta.1

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 (183) 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/index.js +29 -0
  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 +86 -119
  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 -36
  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/OtlpSerialization/package.json +0 -6
  60. package/OtlpTracer/package.json +0 -6
  61. package/Resource/package.json +0 -6
  62. package/Tracer/package.json +0 -6
  63. package/WebSdk/package.json +0 -6
  64. package/dist/cjs/Logger.js +0 -85
  65. package/dist/cjs/Logger.js.map +0 -1
  66. package/dist/cjs/Metrics.js +0 -24
  67. package/dist/cjs/Metrics.js.map +0 -1
  68. package/dist/cjs/NodeSdk.js +0 -53
  69. package/dist/cjs/NodeSdk.js.map +0 -1
  70. package/dist/cjs/Otlp.js +0 -64
  71. package/dist/cjs/Otlp.js.map +0 -1
  72. package/dist/cjs/OtlpLogger.js +0 -163
  73. package/dist/cjs/OtlpLogger.js.map +0 -1
  74. package/dist/cjs/OtlpMetrics.js +0 -357
  75. package/dist/cjs/OtlpMetrics.js.map +0 -1
  76. package/dist/cjs/OtlpResource.js +0 -136
  77. package/dist/cjs/OtlpResource.js.map +0 -1
  78. package/dist/cjs/OtlpSerialization.js +0 -55
  79. package/dist/cjs/OtlpSerialization.js.map +0 -1
  80. package/dist/cjs/OtlpTracer.js +0 -231
  81. package/dist/cjs/OtlpTracer.js.map +0 -1
  82. package/dist/cjs/Resource.js +0 -75
  83. package/dist/cjs/Resource.js.map +0 -1
  84. package/dist/cjs/Tracer.js +0 -87
  85. package/dist/cjs/Tracer.js.map +0 -1
  86. package/dist/cjs/WebSdk.js +0 -42
  87. package/dist/cjs/WebSdk.js.map +0 -1
  88. package/dist/cjs/index.js +0 -32
  89. package/dist/cjs/index.js.map +0 -1
  90. package/dist/cjs/internal/metrics.js +0 -288
  91. package/dist/cjs/internal/metrics.js.map +0 -1
  92. package/dist/cjs/internal/otlpExporter.js +0 -83
  93. package/dist/cjs/internal/otlpExporter.js.map +0 -1
  94. package/dist/cjs/internal/otlpProtobuf.js +0 -430
  95. package/dist/cjs/internal/otlpProtobuf.js.map +0 -1
  96. package/dist/cjs/internal/protobuf.js +0 -183
  97. package/dist/cjs/internal/protobuf.js.map +0 -1
  98. package/dist/cjs/internal/tracer.js +0 -306
  99. package/dist/cjs/internal/tracer.js.map +0 -1
  100. package/dist/cjs/internal/utils.js +0 -34
  101. package/dist/cjs/internal/utils.js.map +0 -1
  102. package/dist/dts/Logger.d.ts.map +0 -1
  103. package/dist/dts/Metrics.d.ts +0 -29
  104. package/dist/dts/Metrics.d.ts.map +0 -1
  105. package/dist/dts/NodeSdk.d.ts.map +0 -1
  106. package/dist/dts/Otlp.d.ts +0 -80
  107. package/dist/dts/Otlp.d.ts.map +0 -1
  108. package/dist/dts/OtlpLogger.d.ts +0 -47
  109. package/dist/dts/OtlpLogger.d.ts.map +0 -1
  110. package/dist/dts/OtlpMetrics.d.ts +0 -41
  111. package/dist/dts/OtlpMetrics.d.ts.map +0 -1
  112. package/dist/dts/OtlpResource.d.ts +0 -104
  113. package/dist/dts/OtlpResource.d.ts.map +0 -1
  114. package/dist/dts/OtlpSerialization.d.ts +0 -53
  115. package/dist/dts/OtlpSerialization.d.ts.map +0 -1
  116. package/dist/dts/OtlpTracer.d.ts +0 -50
  117. package/dist/dts/OtlpTracer.d.ts.map +0 -1
  118. package/dist/dts/Resource.d.ts.map +0 -1
  119. package/dist/dts/Tracer.d.ts +0 -143
  120. package/dist/dts/Tracer.d.ts.map +0 -1
  121. package/dist/dts/WebSdk.d.ts.map +0 -1
  122. package/dist/dts/index.d.ts +0 -54
  123. package/dist/dts/index.d.ts.map +0 -1
  124. package/dist/dts/internal/otlpExporter.d.ts +0 -2
  125. package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
  126. package/dist/dts/internal/otlpProtobuf.d.ts +0 -501
  127. package/dist/dts/internal/otlpProtobuf.d.ts.map +0 -1
  128. package/dist/dts/internal/protobuf.d.ts +0 -100
  129. package/dist/dts/internal/protobuf.d.ts.map +0 -1
  130. package/dist/dts/internal/tracer.d.ts +0 -2
  131. package/dist/dts/internal/tracer.d.ts.map +0 -1
  132. package/dist/dts/internal/utils.d.ts +0 -2
  133. package/dist/dts/internal/utils.d.ts.map +0 -1
  134. package/dist/esm/Logger.js +0 -75
  135. package/dist/esm/Logger.js.map +0 -1
  136. package/dist/esm/Metrics.js +0 -17
  137. package/dist/esm/Metrics.js.map +0 -1
  138. package/dist/esm/NodeSdk.js.map +0 -1
  139. package/dist/esm/Otlp.js +0 -56
  140. package/dist/esm/Otlp.js.map +0 -1
  141. package/dist/esm/OtlpLogger.js +0 -155
  142. package/dist/esm/OtlpLogger.js.map +0 -1
  143. package/dist/esm/OtlpMetrics.js +0 -349
  144. package/dist/esm/OtlpMetrics.js.map +0 -1
  145. package/dist/esm/OtlpResource.js +0 -124
  146. package/dist/esm/OtlpResource.js.map +0 -1
  147. package/dist/esm/OtlpSerialization.js +0 -46
  148. package/dist/esm/OtlpSerialization.js.map +0 -1
  149. package/dist/esm/OtlpTracer.js +0 -223
  150. package/dist/esm/OtlpTracer.js.map +0 -1
  151. package/dist/esm/Resource.js.map +0 -1
  152. package/dist/esm/Tracer.js +0 -80
  153. package/dist/esm/Tracer.js.map +0 -1
  154. package/dist/esm/WebSdk.js +0 -33
  155. package/dist/esm/WebSdk.js.map +0 -1
  156. package/dist/esm/index.js +0 -54
  157. package/dist/esm/index.js.map +0 -1
  158. package/dist/esm/internal/metrics.js +0 -278
  159. package/dist/esm/internal/metrics.js.map +0 -1
  160. package/dist/esm/internal/otlpExporter.js +0 -76
  161. package/dist/esm/internal/otlpExporter.js.map +0 -1
  162. package/dist/esm/internal/otlpProtobuf.js +0 -396
  163. package/dist/esm/internal/otlpProtobuf.js.map +0 -1
  164. package/dist/esm/internal/protobuf.js +0 -155
  165. package/dist/esm/internal/protobuf.js.map +0 -1
  166. package/dist/esm/internal/tracer.js +0 -297
  167. package/dist/esm/internal/tracer.js.map +0 -1
  168. package/dist/esm/internal/utils.js +0 -23
  169. package/dist/esm/internal/utils.js.map +0 -1
  170. package/dist/esm/package.json +0 -4
  171. package/index/package.json +0 -6
  172. package/src/Otlp.ts +0 -118
  173. package/src/OtlpLogger.ts +0 -263
  174. package/src/OtlpMetrics.ts +0 -575
  175. package/src/OtlpResource.ts +0 -232
  176. package/src/OtlpSerialization.ts +0 -64
  177. package/src/OtlpTracer.ts +0 -352
  178. package/src/internal/otlpExporter.ts +0 -126
  179. package/src/internal/otlpProtobuf.ts +0 -729
  180. package/src/internal/protobuf.ts +0 -219
  181. package/src/internal/tracer.ts +0 -448
  182. package/src/internal/utils.ts +0 -31
  183. /package/dist/{dts/internal → internal}/metrics.d.ts +0 -0
@@ -1,297 +0,0 @@
1
- import * as OtelApi from "@opentelemetry/api";
2
- import * as OtelSemConv from "@opentelemetry/semantic-conventions";
3
- import * as Cause from "effect/Cause";
4
- import * as Context from "effect/Context";
5
- import * as Effect from "effect/Effect";
6
- import * as Exit from "effect/Exit";
7
- import { constTrue, dual } from "effect/Function";
8
- import * as Layer from "effect/Layer";
9
- import * as Option from "effect/Option";
10
- import * as EffectTracer from "effect/Tracer";
11
- import { Resource } from "../Resource.js";
12
- import { nanosToHrTime, recordToAttributes, unknownToAttributeValue } from "./utils.js";
13
- const OtelSpanTypeId = /*#__PURE__*/Symbol.for("@effect/opentelemetry/Tracer/OtelSpan");
14
- const kindMap = {
15
- "internal": OtelApi.SpanKind.INTERNAL,
16
- "client": OtelApi.SpanKind.CLIENT,
17
- "server": OtelApi.SpanKind.SERVER,
18
- "producer": OtelApi.SpanKind.PRODUCER,
19
- "consumer": OtelApi.SpanKind.CONSUMER
20
- };
21
- const getOtelParent = (tracer, otelContext, context) => {
22
- const active = tracer.getSpan(otelContext);
23
- const otelParent = active ? active.spanContext() : undefined;
24
- return otelParent ? Option.some(EffectTracer.externalSpan({
25
- spanId: otelParent.spanId,
26
- traceId: otelParent.traceId,
27
- sampled: (otelParent.traceFlags & 1) === 1,
28
- context
29
- })) : Option.none();
30
- };
31
- /** @internal */
32
- export class OtelSpan {
33
- name;
34
- context;
35
- links;
36
- kind;
37
- [OtelSpanTypeId];
38
- _tag = "Span";
39
- span;
40
- spanId;
41
- traceId;
42
- attributes = /*#__PURE__*/new Map();
43
- sampled;
44
- parent;
45
- status;
46
- constructor(contextApi, traceApi, tracer, name, effectParent, context, links, startTime, kind, options) {
47
- this.name = name;
48
- this.context = context;
49
- this.links = links;
50
- this.kind = kind;
51
- this[OtelSpanTypeId] = OtelSpanTypeId;
52
- const active = contextApi.active();
53
- this.parent = effectParent._tag === "Some" ? effectParent : options?.root !== true ? getOtelParent(traceApi, active, context) : Option.none();
54
- this.span = tracer.startSpan(name, {
55
- startTime: nanosToHrTime(startTime),
56
- links: links.length > 0 ? links.map(link => ({
57
- context: makeSpanContext(link.span),
58
- attributes: recordToAttributes(link.attributes)
59
- })) : undefined,
60
- kind: kindMap[this.kind]
61
- }, this.parent._tag === "Some" ? populateContext(active, this.parent.value, context) : OtelApi.trace.deleteSpan(active));
62
- const spanContext = this.span.spanContext();
63
- this.spanId = spanContext.spanId;
64
- this.traceId = spanContext.traceId;
65
- this.status = {
66
- _tag: "Started",
67
- startTime
68
- };
69
- this.sampled = (spanContext.traceFlags & OtelApi.TraceFlags.SAMPLED) === OtelApi.TraceFlags.SAMPLED;
70
- }
71
- attribute(key, value) {
72
- this.span.setAttribute(key, unknownToAttributeValue(value));
73
- this.attributes.set(key, value);
74
- }
75
- addLinks(links) {
76
- // eslint-disable-next-line no-restricted-syntax
77
- this.links.push(...links);
78
- this.span.addLinks(links.map(link => ({
79
- context: makeSpanContext(link.span),
80
- attributes: recordToAttributes(link.attributes)
81
- })));
82
- }
83
- end(endTime, exit) {
84
- const hrTime = nanosToHrTime(endTime);
85
- this.status = {
86
- _tag: "Ended",
87
- endTime,
88
- exit,
89
- startTime: this.status.startTime
90
- };
91
- if (exit._tag === "Success") {
92
- this.span.setStatus({
93
- code: OtelApi.SpanStatusCode.OK
94
- });
95
- } else {
96
- if (Cause.isInterruptedOnly(exit.cause)) {
97
- this.span.setStatus({
98
- code: OtelApi.SpanStatusCode.OK,
99
- message: Cause.pretty(exit.cause)
100
- });
101
- this.span.setAttribute("span.label", "⚠︎ Interrupted");
102
- this.span.setAttribute("status.interrupted", true);
103
- } else {
104
- const firstError = Cause.prettyErrors(exit.cause)[0];
105
- if (firstError) {
106
- firstError.stack = Cause.pretty(exit.cause, {
107
- renderErrorCause: true
108
- });
109
- this.span.recordException(firstError, hrTime);
110
- this.span.setStatus({
111
- code: OtelApi.SpanStatusCode.ERROR,
112
- message: firstError.message
113
- });
114
- } else {
115
- // empty cause means no error
116
- this.span.setStatus({
117
- code: OtelApi.SpanStatusCode.OK
118
- });
119
- }
120
- }
121
- }
122
- this.span.end(hrTime);
123
- }
124
- event(name, startTime, attributes) {
125
- this.span.addEvent(name, attributes ? recordToAttributes(attributes) : undefined, nanosToHrTime(startTime));
126
- }
127
- }
128
- /** @internal */
129
- export const TracerProvider = /*#__PURE__*/Context.GenericTag("@effect/opentelemetry/Tracer/OtelTracerProvider");
130
- /** @internal */
131
- export const Tracer = /*#__PURE__*/Context.GenericTag("@effect/opentelemetry/Tracer/OtelTracer");
132
- /** @internal */
133
- export const make = /*#__PURE__*/Effect.map(Tracer, tracer => EffectTracer.make({
134
- span(name, parent, context, links, startTime, kind, options) {
135
- return new OtelSpan(OtelApi.context, OtelApi.trace, tracer, name, parent, context, links.slice(), startTime, kind, options);
136
- },
137
- context(execution, fiber) {
138
- const currentSpan = fiber.currentSpan;
139
- if (currentSpan === undefined) {
140
- return execution();
141
- }
142
- return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan), execution);
143
- }
144
- }));
145
- /** @internal */
146
- export const traceFlagsTag = /*#__PURE__*/Context.GenericTag("@effect/opentelemetry/Tracer/OtelTraceFlags");
147
- /** @internal */
148
- export const traceStateTag = /*#__PURE__*/Context.GenericTag("@effect/opentelemetry/Tracer/OtelTraceState");
149
- /** @internal */
150
- export const makeExternalSpan = options => {
151
- let context = Context.empty();
152
- if (options.traceFlags !== undefined) {
153
- context = Context.add(context, traceFlagsTag, options.traceFlags);
154
- }
155
- if (typeof options.traceState === "string") {
156
- context = Option.match(createTraceState(options.traceState), {
157
- onNone: () => context,
158
- onSome: traceState => Context.add(context, traceStateTag, traceState)
159
- });
160
- } else if (options.traceState) {
161
- context = Context.add(context, traceStateTag, options.traceState);
162
- }
163
- return {
164
- _tag: "ExternalSpan",
165
- traceId: options.traceId,
166
- spanId: options.spanId,
167
- sampled: options.traceFlags !== undefined ? (options.traceFlags & OtelApi.TraceFlags.SAMPLED) === OtelApi.TraceFlags.SAMPLED : true,
168
- context
169
- };
170
- };
171
- const makeOtelSpan = (span, clock) => {
172
- const spanContext = {
173
- traceId: span.traceId,
174
- spanId: span.spanId,
175
- traceFlags: span.sampled ? OtelApi.TraceFlags.SAMPLED : OtelApi.TraceFlags.NONE,
176
- isRemote: false
177
- };
178
- let exit = Exit.void;
179
- const self = {
180
- spanContext: () => spanContext,
181
- setAttribute(key, value) {
182
- span.attribute(key, value);
183
- return self;
184
- },
185
- setAttributes(attributes) {
186
- for (const [key, value] of Object.entries(attributes)) {
187
- span.attribute(key, value);
188
- }
189
- return self;
190
- },
191
- addEvent(name) {
192
- let attributes = undefined;
193
- let startTime = undefined;
194
- if (arguments.length === 3) {
195
- attributes = arguments[1];
196
- startTime = arguments[2];
197
- } else if (arguments.length === 2) {
198
- const arg1 = arguments[1];
199
- if (isTimeInput(arg1)) {
200
- startTime = arg1;
201
- } else {
202
- attributes = arg1;
203
- }
204
- }
205
- span.event(name, convertOtelTimeInput(startTime, clock), attributes);
206
- return self;
207
- },
208
- addLink(link) {
209
- span.addLinks([{
210
- _tag: "SpanLink",
211
- span: makeExternalSpan(link.context),
212
- attributes: link.attributes ?? {}
213
- }]);
214
- return self;
215
- },
216
- addLinks(links) {
217
- span.addLinks(links.map(link => ({
218
- _tag: "SpanLink",
219
- span: makeExternalSpan(link.context),
220
- attributes: link.attributes ?? {}
221
- })));
222
- return self;
223
- },
224
- setStatus(status) {
225
- exit = OtelApi.SpanStatusCode.ERROR ? Exit.die(status.message ?? "Unknown error") : Exit.void;
226
- return self;
227
- },
228
- updateName: () => self,
229
- end(endTime) {
230
- const time = convertOtelTimeInput(endTime, clock);
231
- span.end(time, exit);
232
- return self;
233
- },
234
- isRecording: constTrue,
235
- recordException(exception, timeInput) {
236
- const time = convertOtelTimeInput(timeInput, clock);
237
- const cause = Cause.fail(exception);
238
- const error = Cause.prettyErrors(cause)[0];
239
- span.event(error.message, time, {
240
- "exception.type": error.name,
241
- "exception.message": error.message,
242
- "exception.stacktrace": error.stack ?? ""
243
- });
244
- }
245
- };
246
- return self;
247
- };
248
- const bigint1e6 = /*#__PURE__*/BigInt(1_000_000);
249
- const bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);
250
- /** Distinguishes TimeInput (number | Date | [number, number]) from Attributes (plain object) */
251
- const isTimeInput = u => typeof u === "number" || u instanceof Date || Array.isArray(u) && u.length === 2 && typeof u[0] === "number" && typeof u[1] === "number";
252
- const convertOtelTimeInput = (input, clock) => {
253
- if (input === undefined) {
254
- return clock.unsafeCurrentTimeNanos();
255
- } else if (typeof input === "number") {
256
- return BigInt(Math.round(input * 1_000_000));
257
- } else if (input instanceof Date) {
258
- return BigInt(input.getTime()) * bigint1e6;
259
- }
260
- const [seconds, nanos] = input;
261
- return BigInt(seconds) * bigint1e9 + BigInt(nanos);
262
- };
263
- /** @internal */
264
- export const currentOtelSpan = /*#__PURE__*/Effect.clockWith(clock => Effect.map(Effect.currentSpan, span => {
265
- if (OtelSpanTypeId in span) {
266
- return span.span;
267
- }
268
- return makeOtelSpan(span, clock);
269
- }));
270
- /** @internal */
271
- export const layerGlobalProvider = /*#__PURE__*/Layer.sync(TracerProvider, () => OtelApi.trace.getTracerProvider());
272
- /** @internal */
273
- export const layerTracer = /*#__PURE__*/Layer.effect(Tracer, /*#__PURE__*/Effect.flatMap(/*#__PURE__*/Effect.zip(Resource, TracerProvider), ([resource, provider]) => Effect.sync(() => provider.getTracer(resource.attributes[OtelSemConv.ATTR_SERVICE_NAME], resource.attributes[OtelSemConv.ATTR_SERVICE_VERSION]))));
274
- /** @internal */
275
- export const layerGlobalTracer = /*#__PURE__*/layerTracer.pipe(/*#__PURE__*/Layer.provide(layerGlobalProvider));
276
- /** @internal */
277
- export const layerGlobal = /*#__PURE__*/Layer.unwrapEffect(Effect.map(make, Layer.setTracer)).pipe(/*#__PURE__*/Layer.provideMerge(layerGlobalTracer));
278
- /** @internal */
279
- export const layerWithoutOtelTracer = /*#__PURE__*/Layer.unwrapEffect(/*#__PURE__*/Effect.map(make, Layer.setTracer));
280
- /** @internal */
281
- export const layer = /*#__PURE__*/layerWithoutOtelTracer.pipe(/*#__PURE__*/Layer.provideMerge(layerTracer));
282
- // -------------------------------------------------------------------------------------
283
- // utils
284
- // -------------------------------------------------------------------------------------
285
- const createTraceState = /*#__PURE__*/Option.liftThrowable(OtelApi.createTraceState);
286
- const populateContext = (otelContext, span, context) => span instanceof OtelSpan ? OtelApi.trace.setSpan(otelContext, span.span) : OtelApi.trace.setSpanContext(otelContext, makeSpanContext(span, context));
287
- const makeSpanContext = (span, context) => ({
288
- spanId: span.spanId,
289
- traceId: span.traceId,
290
- isRemote: span._tag === "ExternalSpan",
291
- traceFlags: Option.getOrElse(context ? extractTraceTag(span, context, traceFlagsTag) : Context.getOption(span.context, traceFlagsTag), () => OtelApi.TraceFlags.SAMPLED),
292
- traceState: Option.getOrUndefined(context ? extractTraceTag(span, context, traceStateTag) : Context.getOption(span.context, traceStateTag))
293
- });
294
- const extractTraceTag = (parent, context, tag) => Option.orElse(Context.getOption(context, tag), () => Context.getOption(parent.context, tag));
295
- /** @internal */
296
- export const withSpanContext = /*#__PURE__*/dual(2, (effect, spanContext) => Effect.withParentSpan(effect, makeExternalSpan(spanContext)));
297
- //# sourceMappingURL=tracer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tracer.js","names":["OtelApi","OtelSemConv","Cause","Context","Effect","Exit","constTrue","dual","Layer","Option","EffectTracer","Resource","nanosToHrTime","recordToAttributes","unknownToAttributeValue","OtelSpanTypeId","Symbol","for","kindMap","SpanKind","INTERNAL","CLIENT","SERVER","PRODUCER","CONSUMER","getOtelParent","tracer","otelContext","context","active","getSpan","otelParent","spanContext","undefined","some","externalSpan","spanId","traceId","sampled","traceFlags","none","OtelSpan","name","links","kind","_tag","span","attributes","Map","parent","status","constructor","contextApi","traceApi","effectParent","startTime","options","root","startSpan","length","map","link","makeSpanContext","populateContext","value","trace","deleteSpan","TraceFlags","SAMPLED","attribute","key","setAttribute","set","addLinks","push","end","endTime","exit","hrTime","setStatus","code","SpanStatusCode","OK","isInterruptedOnly","cause","message","pretty","firstError","prettyErrors","stack","renderErrorCause","recordException","ERROR","event","addEvent","TracerProvider","GenericTag","Tracer","make","slice","execution","fiber","currentSpan","with","traceFlagsTag","traceStateTag","makeExternalSpan","empty","add","traceState","match","createTraceState","onNone","onSome","makeOtelSpan","clock","NONE","isRemote","void","self","setAttributes","Object","entries","arguments","arg1","isTimeInput","convertOtelTimeInput","addLink","die","updateName","time","isRecording","exception","timeInput","fail","error","bigint1e6","BigInt","bigint1e9","u","Date","Array","isArray","input","unsafeCurrentTimeNanos","Math","round","getTime","seconds","nanos","currentOtelSpan","clockWith","layerGlobalProvider","sync","getTracerProvider","layerTracer","effect","flatMap","zip","resource","provider","getTracer","ATTR_SERVICE_NAME","ATTR_SERVICE_VERSION","layerGlobalTracer","pipe","provide","layerGlobal","unwrapEffect","setTracer","provideMerge","layerWithoutOtelTracer","layer","liftThrowable","setSpan","setSpanContext","getOrElse","extractTraceTag","getOption","getOrUndefined","tag","orElse","withSpanContext","withParentSpan"],"sources":["../../../src/internal/tracer.ts"],"sourcesContent":[null],"mappings":"AAAA,OAAO,KAAKA,OAAO,MAAM,oBAAoB;AAC7C,OAAO,KAAKC,WAAW,MAAM,qCAAqC;AAClE,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,OAAO,KAAKC,OAAO,MAAM,gBAAgB;AACzC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,IAAI,MAAM,aAAa;AACnC,SAASC,SAAS,EAAEC,IAAI,QAAQ,iBAAiB;AACjD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,OAAO,KAAKC,YAAY,MAAM,eAAe;AAC7C,SAASC,QAAQ,QAAQ,gBAAgB;AAEzC,SAASC,aAAa,EAAEC,kBAAkB,EAAEC,uBAAuB,QAAQ,YAAY;AAEvF,MAAMC,cAAc,gBAAGC,MAAM,CAACC,GAAG,CAAC,uCAAuC,CAAC;AAE1E,MAAMC,OAAO,GAAG;EACd,UAAU,EAAElB,OAAO,CAACmB,QAAQ,CAACC,QAAQ;EACrC,QAAQ,EAAEpB,OAAO,CAACmB,QAAQ,CAACE,MAAM;EACjC,QAAQ,EAAErB,OAAO,CAACmB,QAAQ,CAACG,MAAM;EACjC,UAAU,EAAEtB,OAAO,CAACmB,QAAQ,CAACI,QAAQ;EACrC,UAAU,EAAEvB,OAAO,CAACmB,QAAQ,CAACK;CAC9B;AAED,MAAMC,aAAa,GAAGA,CAACC,MAAwB,EAAEC,WAA4B,EAAEC,OAA+B,KAAI;EAChH,MAAMC,MAAM,GAAGH,MAAM,CAACI,OAAO,CAACH,WAAW,CAAC;EAC1C,MAAMI,UAAU,GAAGF,MAAM,GAAGA,MAAM,CAACG,WAAW,EAAE,GAAGC,SAAS;EAC5D,OAAOF,UAAU,GACbtB,MAAM,CAACyB,IAAI,CACXxB,YAAY,CAACyB,YAAY,CAAC;IACxBC,MAAM,EAAEL,UAAU,CAACK,MAAM;IACzBC,OAAO,EAAEN,UAAU,CAACM,OAAO;IAC3BC,OAAO,EAAE,CAACP,UAAU,CAACQ,UAAU,GAAG,CAAC,MAAM,CAAC;IAC1CX;GACD,CAAC,CACH,GACCnB,MAAM,CAAC+B,IAAI,EAAE;AACnB,CAAC;AAED;AACA,OAAM,MAAOC,QAAQ;EAgBRC,IAAA;EAEAd,OAAA;EACAe,KAAA;EAEAC,IAAA;EApBF,CAAC7B,cAAc;EACf8B,IAAI,GAAG,MAAM;EAEbC,IAAI;EACJV,MAAM;EACNC,OAAO;EACPU,UAAU,gBAAG,IAAIC,GAAG,EAAmB;EACvCV,OAAO;EACPW,MAAM;EACfC,MAAM;EAENC,YACEC,UAA8B,EAC9BC,QAA0B,EAC1B3B,MAAsB,EACbgB,IAAY,EACrBY,YAAiD,EACxC1B,OAA+B,EAC/Be,KAAmC,EAC5CY,SAAiB,EACRX,IAA2B,EACpCY,OAAkC;IANzB,KAAAd,IAAI,GAAJA,IAAI;IAEJ,KAAAd,OAAO,GAAPA,OAAO;IACP,KAAAe,KAAK,GAALA,KAAK;IAEL,KAAAC,IAAI,GAAJA,IAAI;IAGb,IAAI,CAAC7B,cAAc,CAAC,GAAGA,cAAc;IACrC,MAAMc,MAAM,GAAGuB,UAAU,CAACvB,MAAM,EAAE;IAClC,IAAI,CAACoB,MAAM,GAAGK,YAAY,CAACT,IAAI,KAAK,MAAM,GACtCS,YAAY,GACXE,OAAO,EAAEC,IAAI,KAAK,IAAI,GACvBhC,aAAa,CAAC4B,QAAQ,EAAExB,MAAM,EAAED,OAAO,CAAC,GACxCnB,MAAM,CAAC+B,IAAI,EAAE;IACjB,IAAI,CAACM,IAAI,GAAGpB,MAAM,CAACgC,SAAS,CAC1BhB,IAAI,EACJ;MACEa,SAAS,EAAE3C,aAAa,CAAC2C,SAAS,CAAC;MACnCZ,KAAK,EAAEA,KAAK,CAACgB,MAAM,GAAG,CAAC,GACnBhB,KAAK,CAACiB,GAAG,CAAEC,IAAI,KAAM;QACrBjC,OAAO,EAAEkC,eAAe,CAACD,IAAI,CAACf,IAAI,CAAC;QACnCC,UAAU,EAAElC,kBAAkB,CAACgD,IAAI,CAACd,UAAU;OAC/C,CAAC,CAAC,GACDd,SAAgB;MACpBW,IAAI,EAAE1B,OAAO,CAAC,IAAI,CAAC0B,IAAI;KACxB,EACD,IAAI,CAACK,MAAM,CAACJ,IAAI,KAAK,MAAM,GACvBkB,eAAe,CAAClC,MAAM,EAAE,IAAI,CAACoB,MAAM,CAACe,KAAK,EAAEpC,OAAO,CAAC,GACnD5B,OAAO,CAACiE,KAAK,CAACC,UAAU,CAACrC,MAAM,CAAC,CACrC;IACD,MAAMG,WAAW,GAAG,IAAI,CAACc,IAAI,CAACd,WAAW,EAAE;IAC3C,IAAI,CAACI,MAAM,GAAGJ,WAAW,CAACI,MAAM;IAChC,IAAI,CAACC,OAAO,GAAGL,WAAW,CAACK,OAAO;IAClC,IAAI,CAACa,MAAM,GAAG;MACZL,IAAI,EAAE,SAAS;MACfU;KACD;IACD,IAAI,CAACjB,OAAO,GAAG,CAACN,WAAW,CAACO,UAAU,GAAGvC,OAAO,CAACmE,UAAU,CAACC,OAAO,MAAMpE,OAAO,CAACmE,UAAU,CAACC,OAAO;EACrG;EAEAC,SAASA,CAACC,GAAW,EAAEN,KAAc;IACnC,IAAI,CAAClB,IAAI,CAACyB,YAAY,CAACD,GAAG,EAAExD,uBAAuB,CAACkD,KAAK,CAAC,CAAC;IAC3D,IAAI,CAACjB,UAAU,CAACyB,GAAG,CAACF,GAAG,EAAEN,KAAK,CAAC;EACjC;EAEAS,QAAQA,CAAC9B,KAA2C;IAClD;IACA,IAAI,CAACA,KAAK,CAAC+B,IAAI,CAAC,GAAG/B,KAAK,CAAC;IACzB,IAAI,CAACG,IAAI,CAAC2B,QAAQ,CAAC9B,KAAK,CAACiB,GAAG,CAAEC,IAAI,KAAM;MACtCjC,OAAO,EAAEkC,eAAe,CAACD,IAAI,CAACf,IAAI,CAAC;MACnCC,UAAU,EAAElC,kBAAkB,CAACgD,IAAI,CAACd,UAAU;KAC/C,CAAC,CAAC,CAAC;EACN;EAEA4B,GAAGA,CAACC,OAAe,EAAEC,IAAiC;IACpD,MAAMC,MAAM,GAAGlE,aAAa,CAACgE,OAAO,CAAC;IACrC,IAAI,CAAC1B,MAAM,GAAG;MACZL,IAAI,EAAE,OAAO;MACb+B,OAAO;MACPC,IAAI;MACJtB,SAAS,EAAE,IAAI,CAACL,MAAM,CAACK;KACxB;IAED,IAAIsB,IAAI,CAAChC,IAAI,KAAK,SAAS,EAAE;MAC3B,IAAI,CAACC,IAAI,CAACiC,SAAS,CAAC;QAAEC,IAAI,EAAEhF,OAAO,CAACiF,cAAc,CAACC;MAAE,CAAE,CAAC;IAC1D,CAAC,MAAM;MACL,IAAIhF,KAAK,CAACiF,iBAAiB,CAACN,IAAI,CAACO,KAAK,CAAC,EAAE;QACvC,IAAI,CAACtC,IAAI,CAACiC,SAAS,CAAC;UAClBC,IAAI,EAAEhF,OAAO,CAACiF,cAAc,CAACC,EAAE;UAC/BG,OAAO,EAAEnF,KAAK,CAACoF,MAAM,CAACT,IAAI,CAACO,KAAK;SACjC,CAAC;QACF,IAAI,CAACtC,IAAI,CAACyB,YAAY,CAAC,YAAY,EAAE,gBAAgB,CAAC;QACtD,IAAI,CAACzB,IAAI,CAACyB,YAAY,CAAC,oBAAoB,EAAE,IAAI,CAAC;MACpD,CAAC,MAAM;QACL,MAAMgB,UAAU,GAAGrF,KAAK,CAACsF,YAAY,CAACX,IAAI,CAACO,KAAK,CAAC,CAAC,CAAC,CAAC;QACpD,IAAIG,UAAU,EAAE;UACdA,UAAU,CAACE,KAAK,GAAGvF,KAAK,CAACoF,MAAM,CAACT,IAAI,CAACO,KAAK,EAAE;YAAEM,gBAAgB,EAAE;UAAI,CAAE,CAAC;UACvE,IAAI,CAAC5C,IAAI,CAAC6C,eAAe,CAACJ,UAAU,EAAET,MAAM,CAAC;UAC7C,IAAI,CAAChC,IAAI,CAACiC,SAAS,CAAC;YAClBC,IAAI,EAAEhF,OAAO,CAACiF,cAAc,CAACW,KAAK;YAClCP,OAAO,EAAEE,UAAU,CAACF;WACrB,CAAC;QACJ,CAAC,MAAM;UACL;UACA,IAAI,CAACvC,IAAI,CAACiC,SAAS,CAAC;YAAEC,IAAI,EAAEhF,OAAO,CAACiF,cAAc,CAACC;UAAE,CAAE,CAAC;QAC1D;MACF;IACF;IACA,IAAI,CAACpC,IAAI,CAAC6B,GAAG,CAACG,MAAM,CAAC;EACvB;EAEAe,KAAKA,CAACnD,IAAY,EAAEa,SAAiB,EAAER,UAAoC;IACzE,IAAI,CAACD,IAAI,CAACgD,QAAQ,CAChBpD,IAAI,EACJK,UAAU,GAAGlC,kBAAkB,CAACkC,UAAU,CAAC,GAAGd,SAAS,EACvDrB,aAAa,CAAC2C,SAAS,CAAC,CACzB;EACH;;AAGF;AACA,OAAO,MAAMwC,cAAc,gBAAG5F,OAAO,CAAC6F,UAAU,CAC9C,iDAAiD,CAClD;AAED;AACA,OAAO,MAAMC,MAAM,gBAAG9F,OAAO,CAAC6F,UAAU,CAA6B,yCAAyC,CAAC;AAE/G;AACA,OAAO,MAAME,IAAI,gBAAG9F,MAAM,CAACwD,GAAG,CAACqC,MAAM,EAAGvE,MAAM,IAC5ChB,YAAY,CAACwF,IAAI,CAAC;EAChBpD,IAAIA,CAACJ,IAAI,EAAEO,MAAM,EAAErB,OAAO,EAAEe,KAAK,EAAEY,SAAS,EAAEX,IAAI,EAAEY,OAAO;IACzD,OAAO,IAAIf,QAAQ,CACjBzC,OAAO,CAAC4B,OAAO,EACf5B,OAAO,CAACiE,KAAK,EACbvC,MAAM,EACNgB,IAAI,EACJO,MAAM,EACNrB,OAAO,EACPe,KAAK,CAACwD,KAAK,EAAE,EACb5C,SAAS,EACTX,IAAI,EACJY,OAAO,CACR;EACH,CAAC;EACD5B,OAAOA,CAACwE,SAAS,EAAEC,KAAK;IACtB,MAAMC,WAAW,GAAGD,KAAK,CAACC,WAAW;IAErC,IAAIA,WAAW,KAAKrE,SAAS,EAAE;MAC7B,OAAOmE,SAAS,EAAE;IACpB;IAEA,OAAOpG,OAAO,CAAC4B,OAAO,CAAC2E,IAAI,CACzBxC,eAAe,CAAC/D,OAAO,CAAC4B,OAAO,CAACC,MAAM,EAAE,EAAEyE,WAAW,CAAC,EACtDF,SAAS,CACV;EACH;CACD,CAAC,CAAC;AAEL;AACA,OAAO,MAAMI,aAAa,gBAAGrG,OAAO,CAAC6F,UAAU,CAC7C,6CAA6C,CAC9C;AAED;AACA,OAAO,MAAMS,aAAa,gBAAGtG,OAAO,CAAC6F,UAAU,CAC7C,6CAA6C,CAC9C;AAED;AACA,OAAO,MAAMU,gBAAgB,GAAIlD,OAKhC,IAA+B;EAC9B,IAAI5B,OAAO,GAAGzB,OAAO,CAACwG,KAAK,EAAE;EAE7B,IAAInD,OAAO,CAACjB,UAAU,KAAKN,SAAS,EAAE;IACpCL,OAAO,GAAGzB,OAAO,CAACyG,GAAG,CAAChF,OAAO,EAAE4E,aAAa,EAAEhD,OAAO,CAACjB,UAAU,CAAC;EACnE;EAEA,IAAI,OAAOiB,OAAO,CAACqD,UAAU,KAAK,QAAQ,EAAE;IAC1CjF,OAAO,GAAGnB,MAAM,CAACqG,KAAK,CAACC,gBAAgB,CAACvD,OAAO,CAACqD,UAAU,CAAC,EAAE;MAC3DG,MAAM,EAAEA,CAAA,KAAMpF,OAAO;MACrBqF,MAAM,EAAGJ,UAAU,IAAK1G,OAAO,CAACyG,GAAG,CAAChF,OAAO,EAAE6E,aAAa,EAAEI,UAAU;KACvE,CAAC;EACJ,CAAC,MAAM,IAAIrD,OAAO,CAACqD,UAAU,EAAE;IAC7BjF,OAAO,GAAGzB,OAAO,CAACyG,GAAG,CAAChF,OAAO,EAAE6E,aAAa,EAAEjD,OAAO,CAACqD,UAAU,CAAC;EACnE;EAEA,OAAO;IACLhE,IAAI,EAAE,cAAc;IACpBR,OAAO,EAAEmB,OAAO,CAACnB,OAAO;IACxBD,MAAM,EAAEoB,OAAO,CAACpB,MAAM;IACtBE,OAAO,EAAEkB,OAAO,CAACjB,UAAU,KAAKN,SAAS,GACrC,CAACuB,OAAO,CAACjB,UAAU,GAAGvC,OAAO,CAACmE,UAAU,CAACC,OAAO,MAAMpE,OAAO,CAACmE,UAAU,CAACC,OAAO,GAChF,IAAI;IACRxC;GACD;AACH,CAAC;AAED,MAAMsF,YAAY,GAAGA,CAACpE,IAAuB,EAAEqE,KAAkB,KAAkB;EACjF,MAAMnF,WAAW,GAAwB;IACvCK,OAAO,EAAES,IAAI,CAACT,OAAO;IACrBD,MAAM,EAAEU,IAAI,CAACV,MAAM;IACnBG,UAAU,EAAEO,IAAI,CAACR,OAAO,GAAGtC,OAAO,CAACmE,UAAU,CAACC,OAAO,GAAGpE,OAAO,CAACmE,UAAU,CAACiD,IAAI;IAC/EC,QAAQ,EAAE;GACX;EAED,IAAIxC,IAAI,GAAGxE,IAAI,CAACiH,IAAI;EAEpB,MAAMC,IAAI,GAAiB;IACzBvF,WAAW,EAAEA,CAAA,KAAMA,WAAW;IAC9BuC,YAAYA,CAACD,GAAG,EAAEN,KAAK;MACrBlB,IAAI,CAACuB,SAAS,CAACC,GAAG,EAAEN,KAAK,CAAC;MAC1B,OAAOuD,IAAI;IACb,CAAC;IACDC,aAAaA,CAACzE,UAAU;MACtB,KAAK,MAAM,CAACuB,GAAG,EAAEN,KAAK,CAAC,IAAIyD,MAAM,CAACC,OAAO,CAAC3E,UAAU,CAAC,EAAE;QACrDD,IAAI,CAACuB,SAAS,CAACC,GAAG,EAAEN,KAAK,CAAC;MAC5B;MACA,OAAOuD,IAAI;IACb,CAAC;IACDzB,QAAQA,CAACpD,IAAI;MACX,IAAIK,UAAU,GAAmCd,SAAS;MAC1D,IAAIsB,SAAS,GAAkCtB,SAAS;MACxD,IAAI0F,SAAS,CAAChE,MAAM,KAAK,CAAC,EAAE;QAC1BZ,UAAU,GAAG4E,SAAS,CAAC,CAAC,CAAC;QACzBpE,SAAS,GAAGoE,SAAS,CAAC,CAAC,CAAC;MAC1B,CAAC,MAAM,IAAIA,SAAS,CAAChE,MAAM,KAAK,CAAC,EAAE;QACjC,MAAMiE,IAAI,GAAGD,SAAS,CAAC,CAAC,CAAC;QACzB,IAAIE,WAAW,CAACD,IAAI,CAAC,EAAE;UACrBrE,SAAS,GAAGqE,IAAI;QAClB,CAAC,MAAM;UACL7E,UAAU,GAAG6E,IAAI;QACnB;MACF;MACA9E,IAAI,CAAC+C,KAAK,CAACnD,IAAI,EAAEoF,oBAAoB,CAACvE,SAAS,EAAE4D,KAAK,CAAC,EAAEpE,UAAU,CAAC;MACpE,OAAOwE,IAAI;IACb,CAAC;IACDQ,OAAOA,CAAClE,IAAI;MACVf,IAAI,CAAC2B,QAAQ,CAAC,CAAC;QACb5B,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAE4D,gBAAgB,CAAC7C,IAAI,CAACjC,OAAO,CAAC;QACpCmB,UAAU,EAAEc,IAAI,CAACd,UAAU,IAAI;OAChC,CAAC,CAAC;MACH,OAAOwE,IAAI;IACb,CAAC;IACD9C,QAAQA,CAAC9B,KAAK;MACZG,IAAI,CAAC2B,QAAQ,CAAC9B,KAAK,CAACiB,GAAG,CAAEC,IAAI,KAAM;QACjChB,IAAI,EAAE,UAAU;QAChBC,IAAI,EAAE4D,gBAAgB,CAAC7C,IAAI,CAACjC,OAAO,CAAC;QACpCmB,UAAU,EAAEc,IAAI,CAACd,UAAU,IAAI;OAChC,CAAC,CAAC,CAAC;MACJ,OAAOwE,IAAI;IACb,CAAC;IACDxC,SAASA,CAAC7B,MAAM;MACd2B,IAAI,GAAG7E,OAAO,CAACiF,cAAc,CAACW,KAAK,GAC/BvF,IAAI,CAAC2H,GAAG,CAAC9E,MAAM,CAACmC,OAAO,IAAI,eAAe,CAAC,GAC3ChF,IAAI,CAACiH,IAAI;MACb,OAAOC,IAAI;IACb,CAAC;IACDU,UAAU,EAAEA,CAAA,KAAMV,IAAI;IACtB5C,GAAGA,CAACC,OAAO;MACT,MAAMsD,IAAI,GAAGJ,oBAAoB,CAAClD,OAAO,EAAEuC,KAAK,CAAC;MACjDrE,IAAI,CAAC6B,GAAG,CAACuD,IAAI,EAAErD,IAAI,CAAC;MACpB,OAAO0C,IAAI;IACb,CAAC;IACDY,WAAW,EAAE7H,SAAS;IACtBqF,eAAeA,CAACyC,SAAS,EAAEC,SAAS;MAClC,MAAMH,IAAI,GAAGJ,oBAAoB,CAACO,SAAS,EAAElB,KAAK,CAAC;MACnD,MAAM/B,KAAK,GAAGlF,KAAK,CAACoI,IAAI,CAACF,SAAS,CAAC;MACnC,MAAMG,KAAK,GAAGrI,KAAK,CAACsF,YAAY,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;MAC1CtC,IAAI,CAAC+C,KAAK,CAAC0C,KAAK,CAAClD,OAAO,EAAE6C,IAAI,EAAE;QAC9B,gBAAgB,EAAEK,KAAK,CAAC7F,IAAI;QAC5B,mBAAmB,EAAE6F,KAAK,CAAClD,OAAO;QAClC,sBAAsB,EAAEkD,KAAK,CAAC9C,KAAK,IAAI;OACxC,CAAC;IACJ;GACD;EACD,OAAO8B,IAAI;AACb,CAAC;AAED,MAAMiB,SAAS,gBAAGC,MAAM,CAAC,SAAS,CAAC;AACnC,MAAMC,SAAS,gBAAGD,MAAM,CAAC,aAAa,CAAC;AAEvC;AACA,MAAMZ,WAAW,GAAIc,CAAU,IAC7B,OAAOA,CAAC,KAAK,QAAQ,IACrBA,CAAC,YAAYC,IAAI,IAChBC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAIA,CAAC,CAAChF,MAAM,KAAK,CAAC,IAAI,OAAOgF,CAAC,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAOA,CAAC,CAAC,CAAC,CAAC,KAAK,QAAS;AAE9F,MAAMb,oBAAoB,GAAGA,CAACiB,KAAoC,EAAE5B,KAAkB,KAAY;EAChG,IAAI4B,KAAK,KAAK9G,SAAS,EAAE;IACvB,OAAOkF,KAAK,CAAC6B,sBAAsB,EAAE;EACvC,CAAC,MAAM,IAAI,OAAOD,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAON,MAAM,CAACQ,IAAI,CAACC,KAAK,CAACH,KAAK,GAAG,SAAS,CAAC,CAAC;EAC9C,CAAC,MAAM,IAAIA,KAAK,YAAYH,IAAI,EAAE;IAChC,OAAOH,MAAM,CAACM,KAAK,CAACI,OAAO,EAAE,CAAC,GAAGX,SAAS;EAC5C;EACA,MAAM,CAACY,OAAO,EAAEC,KAAK,CAAC,GAAGN,KAAK;EAC9B,OAAON,MAAM,CAACW,OAAO,CAAC,GAAGV,SAAS,GAAGD,MAAM,CAACY,KAAK,CAAC;AACpD,CAAC;AAED;AACA,OAAO,MAAMC,eAAe,gBAA8DlJ,MAAM,CAACmJ,SAAS,CAAEpC,KAAK,IAC/G/G,MAAM,CAACwD,GAAG,CAACxD,MAAM,CAACkG,WAAW,EAAGxD,IAAI,IAAkB;EACpD,IAAI/B,cAAc,IAAI+B,IAAI,EAAE;IAC1B,OAAQA,IAAiB,CAACA,IAAI;EAChC;EACA,OAAOoE,YAAY,CAACpE,IAAI,EAAEqE,KAAK,CAAC;AAClC,CAAC,CAAC,CACH;AAED;AACA,OAAO,MAAMqC,mBAAmB,gBAAGhJ,KAAK,CAACiJ,IAAI,CAC3C1D,cAAc,EACd,MAAM/F,OAAO,CAACiE,KAAK,CAACyF,iBAAiB,EAAE,CACxC;AAED;AACA,OAAO,MAAMC,WAAW,gBAAGnJ,KAAK,CAACoJ,MAAM,CACrC3D,MAAM,eACN7F,MAAM,CAACyJ,OAAO,cACZzJ,MAAM,CAAC0J,GAAG,CAACnJ,QAAQ,EAAEoF,cAAc,CAAC,EACpC,CAAC,CAACgE,QAAQ,EAAEC,QAAQ,CAAC,KACnB5J,MAAM,CAACqJ,IAAI,CAAC,MACVO,QAAQ,CAACC,SAAS,CAChBF,QAAQ,CAAChH,UAAU,CAAC9C,WAAW,CAACiK,iBAAiB,CAAW,EAC5DH,QAAQ,CAAChH,UAAU,CAAC9C,WAAW,CAACkK,oBAAoB,CAAW,CAChE,CACF,CACJ,CACF;AAED;AACA,OAAO,MAAMC,iBAAiB,gBAAGT,WAAW,CAACU,IAAI,cAC/C7J,KAAK,CAAC8J,OAAO,CAACd,mBAAmB,CAAC,CACnC;AAED;AACA,OAAO,MAAMe,WAAW,gBAAG/J,KAAK,CAACgK,YAAY,CAACpK,MAAM,CAACwD,GAAG,CAACsC,IAAI,EAAE1F,KAAK,CAACiK,SAAS,CAAC,CAAC,CAACJ,IAAI,cACnF7J,KAAK,CAACkK,YAAY,CAACN,iBAAiB,CAAC,CACtC;AAED;AACA,OAAO,MAAMO,sBAAsB,gBAAGnK,KAAK,CAACgK,YAAY,cAACpK,MAAM,CAACwD,GAAG,CAACsC,IAAI,EAAE1F,KAAK,CAACiK,SAAS,CAAC,CAAC;AAE3F;AACA,OAAO,MAAMG,KAAK,gBAAGD,sBAAsB,CAACN,IAAI,cAC9C7J,KAAK,CAACkK,YAAY,CAACf,WAAW,CAAC,CAChC;AAED;AACA;AACA;AAEA,MAAM5C,gBAAgB,gBAAGtG,MAAM,CAACoK,aAAa,CAAC7K,OAAO,CAAC+G,gBAAgB,CAAC;AAEvE,MAAMhD,eAAe,GAAGA,CACtBpC,WAA4B,EAC5BmB,IAA0B,EAC1BlB,OAAgC,KAEhCkB,IAAI,YAAYL,QAAQ,GACtBzC,OAAO,CAACiE,KAAK,CAAC6G,OAAO,CAACnJ,WAAW,EAAEmB,IAAI,CAACA,IAAI,CAAC,GAC7C9C,OAAO,CAACiE,KAAK,CAAC8G,cAAc,CAACpJ,WAAW,EAAEmC,eAAe,CAAChB,IAAI,EAAElB,OAAO,CAAC,CAAC;AAE7E,MAAMkC,eAAe,GAAGA,CAAChB,IAA0B,EAAElB,OAAgC,MAA2B;EAC9GQ,MAAM,EAAEU,IAAI,CAACV,MAAM;EACnBC,OAAO,EAAES,IAAI,CAACT,OAAO;EACrBgF,QAAQ,EAAEvE,IAAI,CAACD,IAAI,KAAK,cAAc;EACtCN,UAAU,EAAE9B,MAAM,CAACuK,SAAS,CAC1BpJ,OAAO,GACLqJ,eAAe,CAACnI,IAAI,EAAElB,OAAO,EAAE4E,aAAa,CAAC,GAC7CrG,OAAO,CAAC+K,SAAS,CAACpI,IAAI,CAAClB,OAAO,EAAE4E,aAAa,CAAC,EAChD,MAAMxG,OAAO,CAACmE,UAAU,CAACC,OAAO,CACjC;EACDyC,UAAU,EAAEpG,MAAM,CAAC0K,cAAc,CAC/BvJ,OAAO,GACLqJ,eAAe,CAACnI,IAAI,EAAElB,OAAO,EAAE6E,aAAa,CAAC,GAC7CtG,OAAO,CAAC+K,SAAS,CAACpI,IAAI,CAAClB,OAAO,EAAE6E,aAAa,CAAC;CAEnD,CAAC;AAEF,MAAMwE,eAAe,GAAGA,CACtBhI,MAA4B,EAC5BrB,OAA+B,EAC/BwJ,GAAsB,KAEtB3K,MAAM,CAAC4K,MAAM,CACXlL,OAAO,CAAC+K,SAAS,CAACtJ,OAAO,EAAEwJ,GAAG,CAAC,EAC/B,MAAMjL,OAAO,CAAC+K,SAAS,CAACjI,MAAM,CAACrB,OAAO,EAAEwJ,GAAG,CAAC,CAC7C;AAEH;AACA,OAAO,MAAME,eAAe,gBAAG/K,IAAI,CAQjC,CAAC,EAAE,CACHqJ,MAA8B,EAC9B5H,WAAgC,KAEhC5B,MAAM,CAACmL,cAAc,CAAC3B,MAAM,EAAElD,gBAAgB,CAAC1E,WAAW,CAAC,CAAC,CAAC","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- import * as Inspectable from "effect/Inspectable";
2
- const bigint1e9 = 1000000000n;
3
- /** @internal */
4
- export const nanosToHrTime = timestamp => {
5
- return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
6
- };
7
- /** @internal */
8
- export const recordToAttributes = value => Object.entries(value).reduce((acc, [key, value]) => {
9
- acc[key] = unknownToAttributeValue(value);
10
- return acc;
11
- }, {});
12
- /** @internal */
13
- export const unknownToAttributeValue = value => {
14
- if (typeof value === "string" || typeof value === "number" || typeof value === "boolean") {
15
- return value;
16
- } else if (typeof value === "bigint") {
17
- return value.toString();
18
- }
19
- return Inspectable.toStringUnknown(value);
20
- };
21
- /** @internal */
22
- export const isNonEmpty = a => a !== undefined && !(Array.isArray(a) && a.length === 0);
23
- //# sourceMappingURL=utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"utils.js","names":["Inspectable","bigint1e9","nanosToHrTime","timestamp","Number","recordToAttributes","value","Object","entries","reduce","acc","key","unknownToAttributeValue","toString","toStringUnknown","isNonEmpty","a","undefined","Array","isArray","length"],"sources":["../../../src/internal/utils.ts"],"sourcesContent":[null],"mappings":"AAEA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD,MAAMC,SAAS,GAAG,WAAc;AAEhC;AACA,OAAO,MAAMC,aAAa,GAAIC,SAAiB,IAAoB;EACjE,OAAO,CAACC,MAAM,CAACD,SAAS,GAAGF,SAAS,CAAC,EAAEG,MAAM,CAACD,SAAS,GAAGF,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;AACA,OAAO,MAAMI,kBAAkB,GAAIC,KAA8B,IAC/DC,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,CAACG,MAAM,CAAC,CAACC,GAAG,EAAE,CAACC,GAAG,EAAEL,KAAK,CAAC,KAAI;EACjDI,GAAG,CAACC,GAAG,CAAC,GAAGC,uBAAuB,CAACN,KAAK,CAAC;EACzC,OAAOI,GAAG;AACZ,CAAC,EAAE,EAAwB,CAAC;AAE9B;AACA,OAAO,MAAME,uBAAuB,GAAIN,KAAc,IAA4B;EAChF,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOA,KAAK,CAACO,QAAQ,EAAE;EACzB;EACA,OAAOb,WAAW,CAACc,eAAe,CAACR,KAAK,CAAC;AAC3C,CAAC;AAED;AACA,OAAO,MAAMS,UAAU,GAAOC,CAAmC,IAC/DA,CAAC,KAAKC,SAAS,IAAI,EAAEC,KAAK,CAACC,OAAO,CAACH,CAAC,CAAC,IAAIA,CAAC,CAACI,MAAM,KAAK,CAAC,CAAC","ignoreList":[]}
@@ -1,4 +0,0 @@
1
- {
2
- "type": "module",
3
- "sideEffects": []
4
- }
@@ -1,6 +0,0 @@
1
- {
2
- "sideEffects": [],
3
- "main": "../dist/cjs/index.js",
4
- "module": "../dist/esm/index.js",
5
- "types": "../dist/dts/index.d.ts"
6
- }
package/src/Otlp.ts DELETED
@@ -1,118 +0,0 @@
1
- /**
2
- * @since 1.0.0
3
- */
4
- import type * as Headers from "@effect/platform/Headers"
5
- import type * as HttpClient from "@effect/platform/HttpClient"
6
- import * as HttpClientRequest from "@effect/platform/HttpClientRequest"
7
- import type * as Duration from "effect/Duration"
8
- import { flow } from "effect/Function"
9
- import * as Layer from "effect/Layer"
10
- import type * as Logger from "effect/Logger"
11
- import type * as Tracer from "effect/Tracer"
12
- import * as OtlpLogger from "./OtlpLogger.js"
13
- import * as OtlpMetrics from "./OtlpMetrics.js"
14
- import * as OtlpSerialization from "./OtlpSerialization.js"
15
- import * as OtlpTracer from "./OtlpTracer.js"
16
-
17
- /**
18
- * Creates an OTLP layer.
19
- *
20
- * @since 1.0.0
21
- * @category Layers
22
- */
23
- export const layer = (options: {
24
- readonly baseUrl: string
25
- readonly resource?: {
26
- readonly serviceName?: string | undefined
27
- readonly serviceVersion?: string | undefined
28
- readonly attributes?: Record<string, unknown>
29
- }
30
- readonly headers?: Headers.Input | undefined
31
- readonly maxBatchSize?: number | undefined
32
- readonly replaceLogger?: Logger.Logger<any, any> | undefined
33
- readonly tracerContext?: (<X>(f: () => X, span: Tracer.AnySpan) => X) | undefined
34
- readonly loggerExportInterval?: Duration.DurationInput | undefined
35
- readonly loggerExcludeLogSpans?: boolean | undefined
36
- readonly metricsExportInterval?: Duration.DurationInput | undefined
37
- readonly tracerExportInterval?: Duration.DurationInput | undefined
38
- readonly shutdownTimeout?: Duration.DurationInput | undefined
39
- }): Layer.Layer<never, never, HttpClient.HttpClient | OtlpSerialization.OtlpSerialization> => {
40
- const baseReq = HttpClientRequest.get(options.baseUrl)
41
- const url = (path: string) => HttpClientRequest.appendUrl(baseReq, path).url
42
- return Layer.mergeAll(
43
- OtlpLogger.layer({
44
- replaceLogger: options.replaceLogger,
45
- url: url("/v1/logs"),
46
- resource: options.resource,
47
- headers: options.headers,
48
- exportInterval: options.loggerExportInterval,
49
- maxBatchSize: options.maxBatchSize,
50
- shutdownTimeout: options.shutdownTimeout,
51
- excludeLogSpans: options.loggerExcludeLogSpans
52
- }),
53
- OtlpMetrics.layer({
54
- url: url("/v1/metrics"),
55
- resource: options.resource,
56
- headers: options.headers,
57
- exportInterval: options.metricsExportInterval,
58
- shutdownTimeout: options.shutdownTimeout
59
- }),
60
- OtlpTracer.layer({
61
- url: url("/v1/traces"),
62
- resource: options.resource,
63
- headers: options.headers,
64
- exportInterval: options.tracerExportInterval,
65
- maxBatchSize: options.maxBatchSize,
66
- context: options.tracerContext,
67
- shutdownTimeout: options.shutdownTimeout
68
- })
69
- )
70
- }
71
-
72
- /**
73
- * Creates an OTLP layer with JSON serialization.
74
- *
75
- * @since 1.0.0
76
- * @category Layers
77
- */
78
- export const layerJson: (options: {
79
- readonly baseUrl: string
80
- readonly resource?: {
81
- readonly serviceName?: string | undefined
82
- readonly serviceVersion?: string | undefined
83
- readonly attributes?: Record<string, unknown>
84
- }
85
- readonly headers?: Headers.Input | undefined
86
- readonly maxBatchSize?: number | undefined
87
- readonly replaceLogger?: Logger.Logger<any, any> | undefined
88
- readonly tracerContext?: (<X>(f: () => X, span: Tracer.AnySpan) => X) | undefined
89
- readonly loggerExportInterval?: Duration.DurationInput | undefined
90
- readonly loggerExcludeLogSpans?: boolean | undefined
91
- readonly metricsExportInterval?: Duration.DurationInput | undefined
92
- readonly tracerExportInterval?: Duration.DurationInput | undefined
93
- readonly shutdownTimeout?: Duration.DurationInput | undefined
94
- }) => Layer.Layer<never, never, HttpClient.HttpClient> = flow(layer, Layer.provide(OtlpSerialization.layerJson))
95
-
96
- /**
97
- * Creates an OTLP layer with Protobuf serialization.
98
- *
99
- * @since 1.0.0
100
- * @category Layers
101
- */
102
- export const layerProtobuf: (options: {
103
- readonly baseUrl: string
104
- readonly resource?: {
105
- readonly serviceName?: string | undefined
106
- readonly serviceVersion?: string | undefined
107
- readonly attributes?: Record<string, unknown>
108
- }
109
- readonly headers?: Headers.Input | undefined
110
- readonly maxBatchSize?: number | undefined
111
- readonly replaceLogger?: Logger.Logger<any, any> | undefined
112
- readonly tracerContext?: (<X>(f: () => X, span: Tracer.AnySpan) => X) | undefined
113
- readonly loggerExportInterval?: Duration.DurationInput | undefined
114
- readonly loggerExcludeLogSpans?: boolean | undefined
115
- readonly metricsExportInterval?: Duration.DurationInput | undefined
116
- readonly tracerExportInterval?: Duration.DurationInput | undefined
117
- readonly shutdownTimeout?: Duration.DurationInput | undefined
118
- }) => Layer.Layer<never, never, HttpClient.HttpClient> = flow(layer, Layer.provide(OtlpSerialization.layerProtobuf))