@effect/opentelemetry 0.19.0 → 0.21.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.
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.dev.js +30 -12
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.mjs +2 -2
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.prod.js +30 -12
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.esm.js +21 -13
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.dev.js +51 -24
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.mjs +5 -2
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.prod.js +51 -24
- package/Tracer/dist/effect-opentelemetry-Tracer.esm.js +22 -4
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.d.mts +2 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.d.mts.map +1 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.d.ts +2 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.d.ts.map +1 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.dev.js +81 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.js +7 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.mjs +4 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.cjs.prod.js +81 -0
- package/WebSdk/dist/effect-opentelemetry-WebSdk.esm.js +42 -0
- package/WebSdk/package.json +4 -0
- package/dist/declarations/src/NodeSdk.d.ts +18 -6
- package/dist/declarations/src/NodeSdk.d.ts.map +1 -1
- package/dist/declarations/src/Tracer.d.ts +20 -5
- package/dist/declarations/src/Tracer.d.ts.map +1 -1
- package/dist/declarations/src/WebSdk.d.ts +35 -0
- package/dist/declarations/src/WebSdk.d.ts.map +1 -0
- package/dist/declarations/src/index.d.ts +4 -0
- package/dist/declarations/src/index.d.ts.map +1 -1
- package/dist/effect-opentelemetry.cjs.dev.js +3 -0
- package/dist/effect-opentelemetry.cjs.mjs +2 -1
- package/dist/effect-opentelemetry.cjs.prod.js +3 -0
- package/dist/effect-opentelemetry.esm.js +2 -0
- package/internal/tracer.esm.js +26 -18
- package/package.json +28 -17
- package/src/NodeSdk.ts +60 -20
- package/src/Tracer.ts +23 -5
- package/src/WebSdk.ts +79 -0
- package/src/index.ts +5 -0
- package/src/internal/tracer.ts +47 -37
|
@@ -2,13 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var sdkTraceNode = require('@opentelemetry/sdk-trace-node');
|
|
6
6
|
var Effect = require('effect/Effect');
|
|
7
7
|
var Layer = require('effect/Layer');
|
|
8
|
+
var Metrics_dist_effectOpentelemetryMetrics = require('../../Metrics/dist/effect-opentelemetry-Metrics.cjs.dev.js');
|
|
8
9
|
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
|
|
10
|
+
var Tracer_dist_effectOpentelemetryTracer = require('../../Tracer/dist/effect-opentelemetry-Tracer.cjs.dev.js');
|
|
11
|
+
require('@opentelemetry/api');
|
|
12
|
+
require('@opentelemetry/sdk-metrics');
|
|
13
|
+
require('effect/HashSet');
|
|
14
|
+
require('effect/Metric');
|
|
15
|
+
require('effect/MetricKeyType');
|
|
16
|
+
require('effect/MetricState');
|
|
17
|
+
require('effect/Option');
|
|
9
18
|
require('@opentelemetry/resources');
|
|
10
19
|
require('@opentelemetry/semantic-conventions');
|
|
11
20
|
require('effect/Context');
|
|
21
|
+
require('effect/Cause');
|
|
22
|
+
require('effect/FiberRef');
|
|
23
|
+
require('effect/Tracer');
|
|
12
24
|
|
|
13
25
|
function _interopNamespace(e) {
|
|
14
26
|
if (e && e.__esModule) return e;
|
|
@@ -42,22 +54,28 @@ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
|
42
54
|
|
|
43
55
|
/**
|
|
44
56
|
* @since 1.0.0
|
|
45
|
-
* @category
|
|
57
|
+
* @category layers
|
|
46
58
|
*/
|
|
47
|
-
const
|
|
59
|
+
const layerTracerProvider = (processor, config) => Layer__namespace.scoped(Tracer_dist_effectOpentelemetryTracer.TracerProvider, Effect__namespace.flatMap(Resource_dist_effectOpentelemetryResource.Resource, resource => Effect__namespace.acquireRelease(Effect__namespace.sync(() => {
|
|
60
|
+
const provider = new sdkTraceNode.NodeTracerProvider({
|
|
61
|
+
...(config ?? {}),
|
|
62
|
+
resource
|
|
63
|
+
});
|
|
64
|
+
provider.addSpanProcessor(processor);
|
|
65
|
+
return provider;
|
|
66
|
+
}), provider => Effect__namespace.promise(() => provider.shutdown()))));
|
|
48
67
|
|
|
49
68
|
/**
|
|
50
69
|
* @since 1.0.0
|
|
51
70
|
* @category layer
|
|
52
71
|
*/
|
|
53
|
-
const layer =
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})), sdk => Effect__namespace.promise(() => sdk.shutdown())));
|
|
72
|
+
const layer = evaluate => Layer__namespace.unwrapEffect(Effect__namespace.sync(() => {
|
|
73
|
+
const config = evaluate();
|
|
74
|
+
const ResourceLive = Resource_dist_effectOpentelemetryResource.layer(config.resource);
|
|
75
|
+
const TracerLive = config.spanProcessor ? Tracer_dist_effectOpentelemetryTracer.layer.pipe(Layer__namespace.use(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer__namespace.effectDiscard(Effect__namespace.unit);
|
|
76
|
+
const MetricsLive = config.metricReader ? Metrics_dist_effectOpentelemetryMetrics.layer(() => config.metricReader) : Layer__namespace.effectDiscard(Effect__namespace.unit);
|
|
77
|
+
return Layer__namespace.merge(TracerLive, MetricsLive).pipe(Layer__namespace.useMerge(ResourceLive));
|
|
78
|
+
}));
|
|
61
79
|
|
|
62
|
-
exports.config = config;
|
|
63
80
|
exports.layer = layer;
|
|
81
|
+
exports.layerTracerProvider = layerTracerProvider;
|
|
@@ -2,13 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
4
|
|
|
5
|
-
var
|
|
5
|
+
var sdkTraceNode = require('@opentelemetry/sdk-trace-node');
|
|
6
6
|
var Effect = require('effect/Effect');
|
|
7
7
|
var Layer = require('effect/Layer');
|
|
8
|
+
var Metrics_dist_effectOpentelemetryMetrics = require('../../Metrics/dist/effect-opentelemetry-Metrics.cjs.prod.js');
|
|
8
9
|
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.prod.js');
|
|
10
|
+
var Tracer_dist_effectOpentelemetryTracer = require('../../Tracer/dist/effect-opentelemetry-Tracer.cjs.prod.js');
|
|
11
|
+
require('@opentelemetry/api');
|
|
12
|
+
require('@opentelemetry/sdk-metrics');
|
|
13
|
+
require('effect/HashSet');
|
|
14
|
+
require('effect/Metric');
|
|
15
|
+
require('effect/MetricKeyType');
|
|
16
|
+
require('effect/MetricState');
|
|
17
|
+
require('effect/Option');
|
|
9
18
|
require('@opentelemetry/resources');
|
|
10
19
|
require('@opentelemetry/semantic-conventions');
|
|
11
20
|
require('effect/Context');
|
|
21
|
+
require('effect/Cause');
|
|
22
|
+
require('effect/FiberRef');
|
|
23
|
+
require('effect/Tracer');
|
|
12
24
|
|
|
13
25
|
function _interopNamespace(e) {
|
|
14
26
|
if (e && e.__esModule) return e;
|
|
@@ -42,22 +54,28 @@ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
|
42
54
|
|
|
43
55
|
/**
|
|
44
56
|
* @since 1.0.0
|
|
45
|
-
* @category
|
|
57
|
+
* @category layers
|
|
46
58
|
*/
|
|
47
|
-
const
|
|
59
|
+
const layerTracerProvider = (processor, config) => Layer__namespace.scoped(Tracer_dist_effectOpentelemetryTracer.TracerProvider, Effect__namespace.flatMap(Resource_dist_effectOpentelemetryResource.Resource, resource => Effect__namespace.acquireRelease(Effect__namespace.sync(() => {
|
|
60
|
+
const provider = new sdkTraceNode.NodeTracerProvider({
|
|
61
|
+
...(config ?? {}),
|
|
62
|
+
resource
|
|
63
|
+
});
|
|
64
|
+
provider.addSpanProcessor(processor);
|
|
65
|
+
return provider;
|
|
66
|
+
}), provider => Effect__namespace.promise(() => provider.shutdown()))));
|
|
48
67
|
|
|
49
68
|
/**
|
|
50
69
|
* @since 1.0.0
|
|
51
70
|
* @category layer
|
|
52
71
|
*/
|
|
53
|
-
const layer =
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
})), sdk => Effect__namespace.promise(() => sdk.shutdown())));
|
|
72
|
+
const layer = evaluate => Layer__namespace.unwrapEffect(Effect__namespace.sync(() => {
|
|
73
|
+
const config = evaluate();
|
|
74
|
+
const ResourceLive = Resource_dist_effectOpentelemetryResource.layer(config.resource);
|
|
75
|
+
const TracerLive = config.spanProcessor ? Tracer_dist_effectOpentelemetryTracer.layer.pipe(Layer__namespace.use(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer__namespace.effectDiscard(Effect__namespace.unit);
|
|
76
|
+
const MetricsLive = config.metricReader ? Metrics_dist_effectOpentelemetryMetrics.layer(() => config.metricReader) : Layer__namespace.effectDiscard(Effect__namespace.unit);
|
|
77
|
+
return Layer__namespace.merge(TracerLive, MetricsLive).pipe(Layer__namespace.useMerge(ResourceLive));
|
|
78
|
+
}));
|
|
61
79
|
|
|
62
|
-
exports.config = config;
|
|
63
80
|
exports.layer = layer;
|
|
81
|
+
exports.layerTracerProvider = layerTracerProvider;
|
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
2
2
|
import * as Effect from 'effect/Effect';
|
|
3
3
|
import * as Layer from 'effect/Layer';
|
|
4
|
-
import {
|
|
4
|
+
import { layer as layer$3 } from '../../Metrics/dist/effect-opentelemetry-Metrics.esm.js';
|
|
5
|
+
import { Resource, layer as layer$1 } from '../../Resource/dist/effect-opentelemetry-Resource.esm.js';
|
|
6
|
+
import { TracerProvider, layer as layer$2 } from '../../Tracer/dist/effect-opentelemetry-Tracer.esm.js';
|
|
5
7
|
|
|
6
8
|
/**
|
|
7
9
|
* @since 1.0.0
|
|
@@ -14,21 +16,27 @@ import { Resource } from '../../Resource/dist/effect-opentelemetry-Resource.esm.
|
|
|
14
16
|
|
|
15
17
|
/**
|
|
16
18
|
* @since 1.0.0
|
|
17
|
-
* @category
|
|
19
|
+
* @category layers
|
|
18
20
|
*/
|
|
19
|
-
const
|
|
21
|
+
const layerTracerProvider = (processor, config) => Layer.scoped(TracerProvider, Effect.flatMap(Resource, resource => Effect.acquireRelease(Effect.sync(() => {
|
|
22
|
+
const provider = new NodeTracerProvider({
|
|
23
|
+
...(config ?? {}),
|
|
24
|
+
resource
|
|
25
|
+
});
|
|
26
|
+
provider.addSpanProcessor(processor);
|
|
27
|
+
return provider;
|
|
28
|
+
}), provider => Effect.promise(() => provider.shutdown()))));
|
|
20
29
|
|
|
21
30
|
/**
|
|
22
31
|
* @since 1.0.0
|
|
23
32
|
* @category layer
|
|
24
33
|
*/
|
|
25
|
-
const layer =
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
})), sdk => Effect.promise(() => sdk.shutdown())));
|
|
34
|
+
const layer = evaluate => Layer.unwrapEffect(Effect.sync(() => {
|
|
35
|
+
const config = evaluate();
|
|
36
|
+
const ResourceLive = layer$1(config.resource);
|
|
37
|
+
const TracerLive = config.spanProcessor ? layer$2.pipe(Layer.use(layerTracerProvider(config.spanProcessor, config.tracerConfig))) : Layer.effectDiscard(Effect.unit);
|
|
38
|
+
const MetricsLive = config.metricReader ? layer$3(() => config.metricReader) : Layer.effectDiscard(Effect.unit);
|
|
39
|
+
return Layer.merge(TracerLive, MetricsLive).pipe(Layer.useMerge(ResourceLive));
|
|
40
|
+
}));
|
|
33
41
|
|
|
34
|
-
export {
|
|
42
|
+
export { layer, layerTracerProvider };
|
|
@@ -7,11 +7,9 @@ var Cause = require('effect/Cause');
|
|
|
7
7
|
var Context = require('effect/Context');
|
|
8
8
|
var Effect = require('effect/Effect');
|
|
9
9
|
var FiberRef = require('effect/FiberRef');
|
|
10
|
-
var FiberRefs = require('effect/FiberRefs');
|
|
11
10
|
var Layer = require('effect/Layer');
|
|
12
|
-
var List = require('effect/List');
|
|
13
11
|
var Option = require('effect/Option');
|
|
14
|
-
var
|
|
12
|
+
var EffectTracer = require('effect/Tracer');
|
|
15
13
|
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
|
|
16
14
|
require('@opentelemetry/resources');
|
|
17
15
|
require('@opentelemetry/semantic-conventions');
|
|
@@ -39,22 +37,19 @@ var Cause__namespace = /*#__PURE__*/_interopNamespace(Cause);
|
|
|
39
37
|
var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
|
|
40
38
|
var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
41
39
|
var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
|
|
42
|
-
var FiberRefs__namespace = /*#__PURE__*/_interopNamespace(FiberRefs);
|
|
43
40
|
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
44
|
-
var List__namespace = /*#__PURE__*/_interopNamespace(List);
|
|
45
41
|
var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
|
|
46
|
-
var
|
|
42
|
+
var EffectTracer__namespace = /*#__PURE__*/_interopNamespace(EffectTracer);
|
|
47
43
|
|
|
48
44
|
/** @internal */
|
|
49
45
|
class OtelSpan {
|
|
50
46
|
_tag = "Span";
|
|
51
47
|
attributes = new Map();
|
|
52
|
-
constructor(contextApi, tracer, name, parent, context, links,
|
|
48
|
+
constructor(contextApi, tracer, name, parent, context, links, startTime) {
|
|
53
49
|
this.name = name;
|
|
54
50
|
this.parent = parent;
|
|
55
51
|
this.context = context;
|
|
56
52
|
this.links = links;
|
|
57
|
-
this.sampled = sampled;
|
|
58
53
|
const active = contextApi.active();
|
|
59
54
|
this.span = tracer.startSpan(name, {
|
|
60
55
|
startTime: nanosToHrTime(startTime),
|
|
@@ -70,6 +65,7 @@ class OtelSpan {
|
|
|
70
65
|
_tag: "Started",
|
|
71
66
|
startTime
|
|
72
67
|
};
|
|
68
|
+
this.sampled = (spanContext.traceFlags & OtelApi__namespace.TraceFlags.SAMPLED) === OtelApi__namespace.TraceFlags.SAMPLED;
|
|
73
69
|
}
|
|
74
70
|
attribute(key, value) {
|
|
75
71
|
this.span.setAttribute(key, unknownToAttributeValue(value));
|
|
@@ -109,24 +105,25 @@ class OtelSpan {
|
|
|
109
105
|
}
|
|
110
106
|
|
|
111
107
|
/** @internal */
|
|
112
|
-
const
|
|
108
|
+
const TracerProvider$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/TracerProvider");
|
|
113
109
|
|
|
114
110
|
/** @internal */
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
111
|
+
const Tracer$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/Tracer");
|
|
112
|
+
|
|
113
|
+
/** @internal */
|
|
114
|
+
const make$1 = /*#__PURE__*/Effect__namespace.map(Tracer$1, tracer => EffectTracer__namespace.make({
|
|
115
|
+
span(name, parent, context, links, startTime) {
|
|
116
|
+
return new OtelSpan(OtelApi__namespace.context, tracer, name, parent, context, links, startTime);
|
|
118
117
|
},
|
|
119
118
|
context(execution, fiber) {
|
|
120
|
-
const currentSpan =
|
|
121
|
-
if (currentSpan
|
|
119
|
+
const currentSpan = fiber.getFiberRef(FiberRef__namespace.currentContext).unsafeMap.get(EffectTracer__namespace.ParentSpan);
|
|
120
|
+
if (currentSpan === undefined) {
|
|
122
121
|
return execution();
|
|
123
122
|
}
|
|
124
|
-
return OtelApi__namespace.context.with(populateContext(OtelApi__namespace.context.active(), currentSpan
|
|
123
|
+
return OtelApi__namespace.context.with(populateContext(OtelApi__namespace.context.active(), currentSpan), execution);
|
|
125
124
|
}
|
|
126
125
|
}));
|
|
127
126
|
|
|
128
|
-
/** @internal */
|
|
129
|
-
|
|
130
127
|
/** @internal */
|
|
131
128
|
const traceFlagsTag = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/traceFlags");
|
|
132
129
|
|
|
@@ -151,7 +148,7 @@ const makeExternalSpan$1 = options => {
|
|
|
151
148
|
_tag: "ExternalSpan",
|
|
152
149
|
traceId: options.traceId,
|
|
153
150
|
spanId: options.spanId,
|
|
154
|
-
sampled: options.traceFlags ? options.traceFlags === OtelApi__namespace.TraceFlags.SAMPLED : true,
|
|
151
|
+
sampled: options.traceFlags ? (options.traceFlags & OtelApi__namespace.TraceFlags.SAMPLED) === OtelApi__namespace.TraceFlags.SAMPLED : true,
|
|
155
152
|
context
|
|
156
153
|
};
|
|
157
154
|
};
|
|
@@ -160,10 +157,19 @@ const makeExternalSpan$1 = options => {
|
|
|
160
157
|
const currentOtelSpan$1 = /*#__PURE__*/Effect__namespace.map(Effect__namespace.currentSpan, span => Option__namespace.map(Option__namespace.filter(span, span => "span" in span), _ => _.span));
|
|
161
158
|
|
|
162
159
|
/** @internal */
|
|
163
|
-
const
|
|
160
|
+
const layerGlobalProvider = /*#__PURE__*/Layer__namespace.sync(TracerProvider$1, () => OtelApi__namespace.trace.getTracerProvider());
|
|
164
161
|
|
|
165
162
|
/** @internal */
|
|
166
|
-
const
|
|
163
|
+
const layerTracer$1 = /*#__PURE__*/Layer__namespace.effect(Tracer$1, /*#__PURE__*/Effect__namespace.flatMap( /*#__PURE__*/Effect__namespace.zip(Resource_dist_effectOpentelemetryResource.Resource, TracerProvider$1), ([resource, provider]) => Effect__namespace.sync(() => provider.getTracer(resource.attributes["service.name"], resource.attributes["service.version"]))));
|
|
164
|
+
|
|
165
|
+
/** @internal */
|
|
166
|
+
const layerGlobalTracer$1 = /*#__PURE__*/layerTracer$1.pipe( /*#__PURE__*/Layer__namespace.use(layerGlobalProvider));
|
|
167
|
+
|
|
168
|
+
/** @internal */
|
|
169
|
+
const layerGlobal$1 = /*#__PURE__*/Layer__namespace.unwrapEffect(Effect__namespace.map(make$1, Layer__namespace.setTracer)).pipe( /*#__PURE__*/Layer__namespace.use(layerGlobalTracer$1));
|
|
170
|
+
|
|
171
|
+
/** @internal */
|
|
172
|
+
const layer$1 = /*#__PURE__*/Layer__namespace.unwrapEffect(Effect__namespace.map(make$1, Layer__namespace.setTracer)).pipe( /*#__PURE__*/Layer__namespace.use(layerTracer$1));
|
|
167
173
|
|
|
168
174
|
// -------------------------------------------------------------------------------------
|
|
169
175
|
// utils
|
|
@@ -236,13 +242,31 @@ const layer = layer$1;
|
|
|
236
242
|
* @since 1.0.0
|
|
237
243
|
* @category layers
|
|
238
244
|
*/
|
|
239
|
-
const
|
|
245
|
+
const layerGlobal = layerGlobal$1;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* @since 1.0.0
|
|
249
|
+
* @category layers
|
|
250
|
+
*/
|
|
251
|
+
const layerTracer = layerTracer$1;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* @since 1.0.0
|
|
255
|
+
* @category layers
|
|
256
|
+
*/
|
|
257
|
+
const layerGlobalTracer = layerGlobalTracer$1;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @since 1.0.0
|
|
261
|
+
* @category tags
|
|
262
|
+
*/
|
|
263
|
+
const TracerProvider = TracerProvider$1;
|
|
240
264
|
|
|
241
265
|
/**
|
|
242
266
|
* @since 1.0.0
|
|
243
267
|
* @category tags
|
|
244
268
|
*/
|
|
245
|
-
const
|
|
269
|
+
const Tracer = Tracer$1;
|
|
246
270
|
|
|
247
271
|
/**
|
|
248
272
|
* @since 1.0.0
|
|
@@ -256,11 +280,14 @@ const TraceFlags = traceFlagsTag;
|
|
|
256
280
|
*/
|
|
257
281
|
const TraceState = traceStateTag;
|
|
258
282
|
|
|
259
|
-
exports.OtelTracer = OtelTracer;
|
|
260
283
|
exports.TraceFlags = TraceFlags;
|
|
261
284
|
exports.TraceState = TraceState;
|
|
285
|
+
exports.Tracer = Tracer;
|
|
286
|
+
exports.TracerProvider = TracerProvider;
|
|
262
287
|
exports.currentOtelSpan = currentOtelSpan;
|
|
263
288
|
exports.layer = layer;
|
|
264
|
-
exports.
|
|
289
|
+
exports.layerGlobal = layerGlobal;
|
|
290
|
+
exports.layerGlobalTracer = layerGlobalTracer;
|
|
291
|
+
exports.layerTracer = layerTracer;
|
|
265
292
|
exports.make = make;
|
|
266
293
|
exports.makeExternalSpan = makeExternalSpan;
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
export {
|
|
2
|
-
OtelTracer,
|
|
3
2
|
TraceFlags,
|
|
4
3
|
TraceState,
|
|
4
|
+
Tracer,
|
|
5
|
+
TracerProvider,
|
|
5
6
|
currentOtelSpan,
|
|
6
7
|
layer,
|
|
7
|
-
|
|
8
|
+
layerGlobal,
|
|
9
|
+
layerGlobalTracer,
|
|
10
|
+
layerTracer,
|
|
8
11
|
make,
|
|
9
12
|
makeExternalSpan
|
|
10
13
|
} from "./effect-opentelemetry-Tracer.cjs.js";
|
|
@@ -7,11 +7,9 @@ var Cause = require('effect/Cause');
|
|
|
7
7
|
var Context = require('effect/Context');
|
|
8
8
|
var Effect = require('effect/Effect');
|
|
9
9
|
var FiberRef = require('effect/FiberRef');
|
|
10
|
-
var FiberRefs = require('effect/FiberRefs');
|
|
11
10
|
var Layer = require('effect/Layer');
|
|
12
|
-
var List = require('effect/List');
|
|
13
11
|
var Option = require('effect/Option');
|
|
14
|
-
var
|
|
12
|
+
var EffectTracer = require('effect/Tracer');
|
|
15
13
|
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.prod.js');
|
|
16
14
|
require('@opentelemetry/resources');
|
|
17
15
|
require('@opentelemetry/semantic-conventions');
|
|
@@ -39,22 +37,19 @@ var Cause__namespace = /*#__PURE__*/_interopNamespace(Cause);
|
|
|
39
37
|
var Context__namespace = /*#__PURE__*/_interopNamespace(Context);
|
|
40
38
|
var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
41
39
|
var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
|
|
42
|
-
var FiberRefs__namespace = /*#__PURE__*/_interopNamespace(FiberRefs);
|
|
43
40
|
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
44
|
-
var List__namespace = /*#__PURE__*/_interopNamespace(List);
|
|
45
41
|
var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
|
|
46
|
-
var
|
|
42
|
+
var EffectTracer__namespace = /*#__PURE__*/_interopNamespace(EffectTracer);
|
|
47
43
|
|
|
48
44
|
/** @internal */
|
|
49
45
|
class OtelSpan {
|
|
50
46
|
_tag = "Span";
|
|
51
47
|
attributes = new Map();
|
|
52
|
-
constructor(contextApi, tracer, name, parent, context, links,
|
|
48
|
+
constructor(contextApi, tracer, name, parent, context, links, startTime) {
|
|
53
49
|
this.name = name;
|
|
54
50
|
this.parent = parent;
|
|
55
51
|
this.context = context;
|
|
56
52
|
this.links = links;
|
|
57
|
-
this.sampled = sampled;
|
|
58
53
|
const active = contextApi.active();
|
|
59
54
|
this.span = tracer.startSpan(name, {
|
|
60
55
|
startTime: nanosToHrTime(startTime),
|
|
@@ -70,6 +65,7 @@ class OtelSpan {
|
|
|
70
65
|
_tag: "Started",
|
|
71
66
|
startTime
|
|
72
67
|
};
|
|
68
|
+
this.sampled = (spanContext.traceFlags & OtelApi__namespace.TraceFlags.SAMPLED) === OtelApi__namespace.TraceFlags.SAMPLED;
|
|
73
69
|
}
|
|
74
70
|
attribute(key, value) {
|
|
75
71
|
this.span.setAttribute(key, unknownToAttributeValue(value));
|
|
@@ -109,24 +105,25 @@ class OtelSpan {
|
|
|
109
105
|
}
|
|
110
106
|
|
|
111
107
|
/** @internal */
|
|
112
|
-
const
|
|
108
|
+
const TracerProvider$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/TracerProvider");
|
|
113
109
|
|
|
114
110
|
/** @internal */
|
|
115
|
-
const
|
|
116
|
-
|
|
117
|
-
|
|
111
|
+
const Tracer$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/Tracer");
|
|
112
|
+
|
|
113
|
+
/** @internal */
|
|
114
|
+
const make$1 = /*#__PURE__*/Effect__namespace.map(Tracer$1, tracer => EffectTracer__namespace.make({
|
|
115
|
+
span(name, parent, context, links, startTime) {
|
|
116
|
+
return new OtelSpan(OtelApi__namespace.context, tracer, name, parent, context, links, startTime);
|
|
118
117
|
},
|
|
119
118
|
context(execution, fiber) {
|
|
120
|
-
const currentSpan =
|
|
121
|
-
if (currentSpan
|
|
119
|
+
const currentSpan = fiber.getFiberRef(FiberRef__namespace.currentContext).unsafeMap.get(EffectTracer__namespace.ParentSpan);
|
|
120
|
+
if (currentSpan === undefined) {
|
|
122
121
|
return execution();
|
|
123
122
|
}
|
|
124
|
-
return OtelApi__namespace.context.with(populateContext(OtelApi__namespace.context.active(), currentSpan
|
|
123
|
+
return OtelApi__namespace.context.with(populateContext(OtelApi__namespace.context.active(), currentSpan), execution);
|
|
125
124
|
}
|
|
126
125
|
}));
|
|
127
126
|
|
|
128
|
-
/** @internal */
|
|
129
|
-
|
|
130
127
|
/** @internal */
|
|
131
128
|
const traceFlagsTag = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/traceFlags");
|
|
132
129
|
|
|
@@ -151,7 +148,7 @@ const makeExternalSpan$1 = options => {
|
|
|
151
148
|
_tag: "ExternalSpan",
|
|
152
149
|
traceId: options.traceId,
|
|
153
150
|
spanId: options.spanId,
|
|
154
|
-
sampled: options.traceFlags ? options.traceFlags === OtelApi__namespace.TraceFlags.SAMPLED : true,
|
|
151
|
+
sampled: options.traceFlags ? (options.traceFlags & OtelApi__namespace.TraceFlags.SAMPLED) === OtelApi__namespace.TraceFlags.SAMPLED : true,
|
|
155
152
|
context
|
|
156
153
|
};
|
|
157
154
|
};
|
|
@@ -160,10 +157,19 @@ const makeExternalSpan$1 = options => {
|
|
|
160
157
|
const currentOtelSpan$1 = /*#__PURE__*/Effect__namespace.map(Effect__namespace.currentSpan, span => Option__namespace.map(Option__namespace.filter(span, span => "span" in span), _ => _.span));
|
|
161
158
|
|
|
162
159
|
/** @internal */
|
|
163
|
-
const
|
|
160
|
+
const layerGlobalProvider = /*#__PURE__*/Layer__namespace.sync(TracerProvider$1, () => OtelApi__namespace.trace.getTracerProvider());
|
|
164
161
|
|
|
165
162
|
/** @internal */
|
|
166
|
-
const
|
|
163
|
+
const layerTracer$1 = /*#__PURE__*/Layer__namespace.effect(Tracer$1, /*#__PURE__*/Effect__namespace.flatMap( /*#__PURE__*/Effect__namespace.zip(Resource_dist_effectOpentelemetryResource.Resource, TracerProvider$1), ([resource, provider]) => Effect__namespace.sync(() => provider.getTracer(resource.attributes["service.name"], resource.attributes["service.version"]))));
|
|
164
|
+
|
|
165
|
+
/** @internal */
|
|
166
|
+
const layerGlobalTracer$1 = /*#__PURE__*/layerTracer$1.pipe( /*#__PURE__*/Layer__namespace.use(layerGlobalProvider));
|
|
167
|
+
|
|
168
|
+
/** @internal */
|
|
169
|
+
const layerGlobal$1 = /*#__PURE__*/Layer__namespace.unwrapEffect(Effect__namespace.map(make$1, Layer__namespace.setTracer)).pipe( /*#__PURE__*/Layer__namespace.use(layerGlobalTracer$1));
|
|
170
|
+
|
|
171
|
+
/** @internal */
|
|
172
|
+
const layer$1 = /*#__PURE__*/Layer__namespace.unwrapEffect(Effect__namespace.map(make$1, Layer__namespace.setTracer)).pipe( /*#__PURE__*/Layer__namespace.use(layerTracer$1));
|
|
167
173
|
|
|
168
174
|
// -------------------------------------------------------------------------------------
|
|
169
175
|
// utils
|
|
@@ -236,13 +242,31 @@ const layer = layer$1;
|
|
|
236
242
|
* @since 1.0.0
|
|
237
243
|
* @category layers
|
|
238
244
|
*/
|
|
239
|
-
const
|
|
245
|
+
const layerGlobal = layerGlobal$1;
|
|
246
|
+
|
|
247
|
+
/**
|
|
248
|
+
* @since 1.0.0
|
|
249
|
+
* @category layers
|
|
250
|
+
*/
|
|
251
|
+
const layerTracer = layerTracer$1;
|
|
252
|
+
|
|
253
|
+
/**
|
|
254
|
+
* @since 1.0.0
|
|
255
|
+
* @category layers
|
|
256
|
+
*/
|
|
257
|
+
const layerGlobalTracer = layerGlobalTracer$1;
|
|
258
|
+
|
|
259
|
+
/**
|
|
260
|
+
* @since 1.0.0
|
|
261
|
+
* @category tags
|
|
262
|
+
*/
|
|
263
|
+
const TracerProvider = TracerProvider$1;
|
|
240
264
|
|
|
241
265
|
/**
|
|
242
266
|
* @since 1.0.0
|
|
243
267
|
* @category tags
|
|
244
268
|
*/
|
|
245
|
-
const
|
|
269
|
+
const Tracer = Tracer$1;
|
|
246
270
|
|
|
247
271
|
/**
|
|
248
272
|
* @since 1.0.0
|
|
@@ -256,11 +280,14 @@ const TraceFlags = traceFlagsTag;
|
|
|
256
280
|
*/
|
|
257
281
|
const TraceState = traceStateTag;
|
|
258
282
|
|
|
259
|
-
exports.OtelTracer = OtelTracer;
|
|
260
283
|
exports.TraceFlags = TraceFlags;
|
|
261
284
|
exports.TraceState = TraceState;
|
|
285
|
+
exports.Tracer = Tracer;
|
|
286
|
+
exports.TracerProvider = TracerProvider;
|
|
262
287
|
exports.currentOtelSpan = currentOtelSpan;
|
|
263
288
|
exports.layer = layer;
|
|
264
|
-
exports.
|
|
289
|
+
exports.layerGlobal = layerGlobal;
|
|
290
|
+
exports.layerGlobalTracer = layerGlobalTracer;
|
|
291
|
+
exports.layerTracer = layerTracer;
|
|
265
292
|
exports.make = make;
|
|
266
293
|
exports.makeExternalSpan = makeExternalSpan;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { make as make$1, makeExternalSpan as makeExternalSpan$1, currentOtelSpan as currentOtelSpan$1, layer as layer$1,
|
|
1
|
+
import { make as make$1, makeExternalSpan as makeExternalSpan$1, currentOtelSpan as currentOtelSpan$1, layer as layer$1, layerGlobal as layerGlobal$1, layerTracer as layerTracer$1, layerGlobalTracer as layerGlobalTracer$1, TracerProvider as TracerProvider$1, Tracer as Tracer$1, traceFlagsTag, traceStateTag } from '../../internal/tracer.esm.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @since 1.0.0
|
|
@@ -31,13 +31,31 @@ const layer = layer$1;
|
|
|
31
31
|
* @since 1.0.0
|
|
32
32
|
* @category layers
|
|
33
33
|
*/
|
|
34
|
-
const
|
|
34
|
+
const layerGlobal = layerGlobal$1;
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* @since 1.0.0
|
|
38
|
+
* @category layers
|
|
39
|
+
*/
|
|
40
|
+
const layerTracer = layerTracer$1;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @since 1.0.0
|
|
44
|
+
* @category layers
|
|
45
|
+
*/
|
|
46
|
+
const layerGlobalTracer = layerGlobalTracer$1;
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* @since 1.0.0
|
|
50
|
+
* @category tags
|
|
51
|
+
*/
|
|
52
|
+
const TracerProvider = TracerProvider$1;
|
|
35
53
|
|
|
36
54
|
/**
|
|
37
55
|
* @since 1.0.0
|
|
38
56
|
* @category tags
|
|
39
57
|
*/
|
|
40
|
-
const
|
|
58
|
+
const Tracer = Tracer$1;
|
|
41
59
|
|
|
42
60
|
/**
|
|
43
61
|
* @since 1.0.0
|
|
@@ -51,4 +69,4 @@ const TraceFlags = traceFlagsTag;
|
|
|
51
69
|
*/
|
|
52
70
|
const TraceState = traceStateTag;
|
|
53
71
|
|
|
54
|
-
export {
|
|
72
|
+
export { TraceFlags, TraceState, Tracer, TracerProvider, currentOtelSpan, layer, layerGlobal, layerGlobalTracer, layerTracer, make, makeExternalSpan };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-opentelemetry-WebSdk.cjs.d.mts","sourceRoot":"","sources":["../../dist/declarations/src/WebSdk.d.ts"],"names":[],"mappings":"AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"effect-opentelemetry-WebSdk.cjs.d.ts","sourceRoot":"","sources":["../../dist/declarations/src/WebSdk.d.ts"],"names":[],"mappings":"AAAA"}
|