@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.
- package/LICENSE +1 -1
- package/dist/{dts/Logger.d.ts → Logger.d.ts} +19 -13
- package/dist/Logger.d.ts.map +1 -0
- package/dist/Logger.js +76 -0
- package/dist/Logger.js.map +1 -0
- package/dist/Metrics.d.ts +76 -0
- package/dist/Metrics.d.ts.map +1 -0
- package/dist/Metrics.js +59 -0
- package/dist/Metrics.js.map +1 -0
- package/dist/{dts/NodeSdk.d.ts → NodeSdk.d.ts} +12 -9
- package/dist/NodeSdk.d.ts.map +1 -0
- package/dist/{esm/NodeSdk.js → NodeSdk.js} +23 -14
- package/dist/NodeSdk.js.map +1 -0
- package/dist/{dts/Resource.d.ts → Resource.d.ts} +10 -13
- package/dist/Resource.d.ts.map +1 -0
- package/dist/{esm/Resource.js → Resource.js} +12 -13
- package/dist/Resource.js.map +1 -0
- package/dist/Tracer.d.ts +129 -0
- package/dist/Tracer.d.ts.map +1 -0
- package/dist/Tracer.js +391 -0
- package/dist/Tracer.js.map +1 -0
- package/dist/{dts/WebSdk.d.ts → WebSdk.d.ts} +12 -9
- package/dist/WebSdk.d.ts.map +1 -0
- package/dist/WebSdk.js +41 -0
- package/dist/WebSdk.js.map +1 -0
- package/dist/index.d.ts +28 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +29 -0
- package/dist/index.js.map +1 -0
- package/dist/internal/attributes.d.ts +2 -0
- package/dist/internal/attributes.d.ts.map +1 -0
- package/dist/internal/attributes.js +19 -0
- package/dist/internal/attributes.js.map +1 -0
- package/dist/{dts/internal → internal}/metrics.d.ts.map +1 -1
- package/dist/internal/metrics.js +406 -0
- package/dist/internal/metrics.js.map +1 -0
- package/dist/internal/utilities.d.ts +2 -0
- package/dist/internal/utilities.d.ts.map +1 -0
- package/dist/internal/utilities.js +3 -0
- package/dist/internal/utilities.js.map +1 -0
- package/package.json +86 -119
- package/src/Logger.ts +52 -55
- package/src/Metrics.ts +92 -18
- package/src/NodeSdk.ts +67 -64
- package/src/Resource.ts +16 -24
- package/src/Tracer.ts +469 -78
- package/src/WebSdk.ts +59 -51
- package/src/index.ts +7 -36
- package/src/internal/attributes.ts +21 -0
- package/src/internal/metrics.ts +381 -250
- package/src/internal/utilities.ts +5 -0
- package/Logger/package.json +0 -6
- package/Metrics/package.json +0 -6
- package/NodeSdk/package.json +0 -6
- package/Otlp/package.json +0 -6
- package/OtlpLogger/package.json +0 -6
- package/OtlpMetrics/package.json +0 -6
- package/OtlpResource/package.json +0 -6
- package/OtlpSerialization/package.json +0 -6
- package/OtlpTracer/package.json +0 -6
- package/Resource/package.json +0 -6
- package/Tracer/package.json +0 -6
- package/WebSdk/package.json +0 -6
- package/dist/cjs/Logger.js +0 -85
- package/dist/cjs/Logger.js.map +0 -1
- package/dist/cjs/Metrics.js +0 -24
- package/dist/cjs/Metrics.js.map +0 -1
- package/dist/cjs/NodeSdk.js +0 -53
- package/dist/cjs/NodeSdk.js.map +0 -1
- package/dist/cjs/Otlp.js +0 -64
- package/dist/cjs/Otlp.js.map +0 -1
- package/dist/cjs/OtlpLogger.js +0 -163
- package/dist/cjs/OtlpLogger.js.map +0 -1
- package/dist/cjs/OtlpMetrics.js +0 -357
- package/dist/cjs/OtlpMetrics.js.map +0 -1
- package/dist/cjs/OtlpResource.js +0 -136
- package/dist/cjs/OtlpResource.js.map +0 -1
- package/dist/cjs/OtlpSerialization.js +0 -55
- package/dist/cjs/OtlpSerialization.js.map +0 -1
- package/dist/cjs/OtlpTracer.js +0 -231
- package/dist/cjs/OtlpTracer.js.map +0 -1
- package/dist/cjs/Resource.js +0 -75
- package/dist/cjs/Resource.js.map +0 -1
- package/dist/cjs/Tracer.js +0 -87
- package/dist/cjs/Tracer.js.map +0 -1
- package/dist/cjs/WebSdk.js +0 -42
- package/dist/cjs/WebSdk.js.map +0 -1
- package/dist/cjs/index.js +0 -32
- package/dist/cjs/index.js.map +0 -1
- package/dist/cjs/internal/metrics.js +0 -288
- package/dist/cjs/internal/metrics.js.map +0 -1
- package/dist/cjs/internal/otlpExporter.js +0 -83
- package/dist/cjs/internal/otlpExporter.js.map +0 -1
- package/dist/cjs/internal/otlpProtobuf.js +0 -430
- package/dist/cjs/internal/otlpProtobuf.js.map +0 -1
- package/dist/cjs/internal/protobuf.js +0 -183
- package/dist/cjs/internal/protobuf.js.map +0 -1
- package/dist/cjs/internal/tracer.js +0 -306
- package/dist/cjs/internal/tracer.js.map +0 -1
- package/dist/cjs/internal/utils.js +0 -34
- package/dist/cjs/internal/utils.js.map +0 -1
- package/dist/dts/Logger.d.ts.map +0 -1
- package/dist/dts/Metrics.d.ts +0 -29
- package/dist/dts/Metrics.d.ts.map +0 -1
- package/dist/dts/NodeSdk.d.ts.map +0 -1
- package/dist/dts/Otlp.d.ts +0 -80
- package/dist/dts/Otlp.d.ts.map +0 -1
- package/dist/dts/OtlpLogger.d.ts +0 -47
- package/dist/dts/OtlpLogger.d.ts.map +0 -1
- package/dist/dts/OtlpMetrics.d.ts +0 -41
- package/dist/dts/OtlpMetrics.d.ts.map +0 -1
- package/dist/dts/OtlpResource.d.ts +0 -104
- package/dist/dts/OtlpResource.d.ts.map +0 -1
- package/dist/dts/OtlpSerialization.d.ts +0 -53
- package/dist/dts/OtlpSerialization.d.ts.map +0 -1
- package/dist/dts/OtlpTracer.d.ts +0 -50
- package/dist/dts/OtlpTracer.d.ts.map +0 -1
- package/dist/dts/Resource.d.ts.map +0 -1
- package/dist/dts/Tracer.d.ts +0 -143
- package/dist/dts/Tracer.d.ts.map +0 -1
- package/dist/dts/WebSdk.d.ts.map +0 -1
- package/dist/dts/index.d.ts +0 -54
- package/dist/dts/index.d.ts.map +0 -1
- package/dist/dts/internal/otlpExporter.d.ts +0 -2
- package/dist/dts/internal/otlpExporter.d.ts.map +0 -1
- package/dist/dts/internal/otlpProtobuf.d.ts +0 -501
- package/dist/dts/internal/otlpProtobuf.d.ts.map +0 -1
- package/dist/dts/internal/protobuf.d.ts +0 -100
- package/dist/dts/internal/protobuf.d.ts.map +0 -1
- package/dist/dts/internal/tracer.d.ts +0 -2
- package/dist/dts/internal/tracer.d.ts.map +0 -1
- package/dist/dts/internal/utils.d.ts +0 -2
- package/dist/dts/internal/utils.d.ts.map +0 -1
- package/dist/esm/Logger.js +0 -75
- package/dist/esm/Logger.js.map +0 -1
- package/dist/esm/Metrics.js +0 -17
- package/dist/esm/Metrics.js.map +0 -1
- package/dist/esm/NodeSdk.js.map +0 -1
- package/dist/esm/Otlp.js +0 -56
- package/dist/esm/Otlp.js.map +0 -1
- package/dist/esm/OtlpLogger.js +0 -155
- package/dist/esm/OtlpLogger.js.map +0 -1
- package/dist/esm/OtlpMetrics.js +0 -349
- package/dist/esm/OtlpMetrics.js.map +0 -1
- package/dist/esm/OtlpResource.js +0 -124
- package/dist/esm/OtlpResource.js.map +0 -1
- package/dist/esm/OtlpSerialization.js +0 -46
- package/dist/esm/OtlpSerialization.js.map +0 -1
- package/dist/esm/OtlpTracer.js +0 -223
- package/dist/esm/OtlpTracer.js.map +0 -1
- package/dist/esm/Resource.js.map +0 -1
- package/dist/esm/Tracer.js +0 -80
- package/dist/esm/Tracer.js.map +0 -1
- package/dist/esm/WebSdk.js +0 -33
- package/dist/esm/WebSdk.js.map +0 -1
- package/dist/esm/index.js +0 -54
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/internal/metrics.js +0 -278
- package/dist/esm/internal/metrics.js.map +0 -1
- package/dist/esm/internal/otlpExporter.js +0 -76
- package/dist/esm/internal/otlpExporter.js.map +0 -1
- package/dist/esm/internal/otlpProtobuf.js +0 -396
- package/dist/esm/internal/otlpProtobuf.js.map +0 -1
- package/dist/esm/internal/protobuf.js +0 -155
- package/dist/esm/internal/protobuf.js.map +0 -1
- package/dist/esm/internal/tracer.js +0 -297
- package/dist/esm/internal/tracer.js.map +0 -1
- package/dist/esm/internal/utils.js +0 -23
- package/dist/esm/internal/utils.js.map +0 -1
- package/dist/esm/package.json +0 -4
- package/index/package.json +0 -6
- package/src/Otlp.ts +0 -118
- package/src/OtlpLogger.ts +0 -263
- package/src/OtlpMetrics.ts +0 -575
- package/src/OtlpResource.ts +0 -232
- package/src/OtlpSerialization.ts +0 -64
- package/src/OtlpTracer.ts +0 -352
- package/src/internal/otlpExporter.ts +0 -126
- package/src/internal/otlpProtobuf.ts +0 -729
- package/src/internal/protobuf.ts +0 -219
- package/src/internal/tracer.ts +0 -448
- package/src/internal/utils.ts +0 -31
- /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":"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","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":[]}
|
package/dist/esm/package.json
DELETED
package/index/package.json
DELETED
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))
|