@effect/opentelemetry 0.20.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 +17 -13
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.mjs +2 -2
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.cjs.prod.js +17 -13
- package/NodeSdk/dist/effect-opentelemetry-NodeSdk.esm.js +16 -15
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.dev.js +44 -11
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.mjs +5 -2
- package/Tracer/dist/effect-opentelemetry-Tracer.cjs.prod.js +44 -11
- 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 +19 -7
- package/package.json +25 -15
- package/src/NodeSdk.ts +53 -25
- package/src/Tracer.ts +23 -5
- package/src/WebSdk.ts +79 -0
- package/src/index.ts +5 -0
- package/src/internal/tracer.ts +40 -22
|
@@ -2,11 +2,12 @@
|
|
|
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
8
|
var Metrics_dist_effectOpentelemetryMetrics = require('../../Metrics/dist/effect-opentelemetry-Metrics.cjs.dev.js');
|
|
9
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');
|
|
10
11
|
require('@opentelemetry/api');
|
|
11
12
|
require('@opentelemetry/sdk-metrics');
|
|
12
13
|
require('effect/HashSet');
|
|
@@ -17,6 +18,9 @@ require('effect/Option');
|
|
|
17
18
|
require('@opentelemetry/resources');
|
|
18
19
|
require('@opentelemetry/semantic-conventions');
|
|
19
20
|
require('effect/Context');
|
|
21
|
+
require('effect/Cause');
|
|
22
|
+
require('effect/FiberRef');
|
|
23
|
+
require('effect/Tracer');
|
|
20
24
|
|
|
21
25
|
function _interopNamespace(e) {
|
|
22
26
|
if (e && e.__esModule) return e;
|
|
@@ -50,18 +54,16 @@ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
|
50
54
|
|
|
51
55
|
/**
|
|
52
56
|
* @since 1.0.0
|
|
53
|
-
* @category
|
|
57
|
+
* @category layers
|
|
54
58
|
*/
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
...config,
|
|
59
|
-
metricReader: undefined,
|
|
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 ?? {}),
|
|
60
62
|
resource
|
|
61
63
|
});
|
|
62
|
-
|
|
63
|
-
return
|
|
64
|
-
}),
|
|
64
|
+
provider.addSpanProcessor(processor);
|
|
65
|
+
return provider;
|
|
66
|
+
}), provider => Effect__namespace.promise(() => provider.shutdown()))));
|
|
65
67
|
|
|
66
68
|
/**
|
|
67
69
|
* @since 1.0.0
|
|
@@ -69,9 +71,11 @@ const make = config => Effect__namespace.flatMap(Resource_dist_effectOpentelemet
|
|
|
69
71
|
*/
|
|
70
72
|
const layer = evaluate => Layer__namespace.unwrapEffect(Effect__namespace.sync(() => {
|
|
71
73
|
const config = evaluate();
|
|
72
|
-
const
|
|
73
|
-
|
|
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));
|
|
74
78
|
}));
|
|
75
79
|
|
|
76
|
-
exports.config = config;
|
|
77
80
|
exports.layer = layer;
|
|
81
|
+
exports.layerTracerProvider = layerTracerProvider;
|
|
@@ -2,11 +2,12 @@
|
|
|
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
8
|
var Metrics_dist_effectOpentelemetryMetrics = require('../../Metrics/dist/effect-opentelemetry-Metrics.cjs.prod.js');
|
|
9
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');
|
|
10
11
|
require('@opentelemetry/api');
|
|
11
12
|
require('@opentelemetry/sdk-metrics');
|
|
12
13
|
require('effect/HashSet');
|
|
@@ -17,6 +18,9 @@ require('effect/Option');
|
|
|
17
18
|
require('@opentelemetry/resources');
|
|
18
19
|
require('@opentelemetry/semantic-conventions');
|
|
19
20
|
require('effect/Context');
|
|
21
|
+
require('effect/Cause');
|
|
22
|
+
require('effect/FiberRef');
|
|
23
|
+
require('effect/Tracer');
|
|
20
24
|
|
|
21
25
|
function _interopNamespace(e) {
|
|
22
26
|
if (e && e.__esModule) return e;
|
|
@@ -50,18 +54,16 @@ var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
|
50
54
|
|
|
51
55
|
/**
|
|
52
56
|
* @since 1.0.0
|
|
53
|
-
* @category
|
|
57
|
+
* @category layers
|
|
54
58
|
*/
|
|
55
|
-
const
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
...config,
|
|
59
|
-
metricReader: undefined,
|
|
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 ?? {}),
|
|
60
62
|
resource
|
|
61
63
|
});
|
|
62
|
-
|
|
63
|
-
return
|
|
64
|
-
}),
|
|
64
|
+
provider.addSpanProcessor(processor);
|
|
65
|
+
return provider;
|
|
66
|
+
}), provider => Effect__namespace.promise(() => provider.shutdown()))));
|
|
65
67
|
|
|
66
68
|
/**
|
|
67
69
|
* @since 1.0.0
|
|
@@ -69,9 +71,11 @@ const make = config => Effect__namespace.flatMap(Resource_dist_effectOpentelemet
|
|
|
69
71
|
*/
|
|
70
72
|
const layer = evaluate => Layer__namespace.unwrapEffect(Effect__namespace.sync(() => {
|
|
71
73
|
const config = evaluate();
|
|
72
|
-
const
|
|
73
|
-
|
|
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));
|
|
74
78
|
}));
|
|
75
79
|
|
|
76
|
-
exports.config = config;
|
|
77
80
|
exports.layer = layer;
|
|
81
|
+
exports.layerTracerProvider = layerTracerProvider;
|
|
@@ -1,8 +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 { layer as layer$
|
|
5
|
-
import { Resource } from '../../Resource/dist/effect-opentelemetry-Resource.esm.js';
|
|
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';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* @since 1.0.0
|
|
@@ -15,18 +16,16 @@ import { Resource } from '../../Resource/dist/effect-opentelemetry-Resource.esm.
|
|
|
15
16
|
|
|
16
17
|
/**
|
|
17
18
|
* @since 1.0.0
|
|
18
|
-
* @category
|
|
19
|
+
* @category layers
|
|
19
20
|
*/
|
|
20
|
-
const
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
...config,
|
|
24
|
-
metricReader: undefined,
|
|
21
|
+
const layerTracerProvider = (processor, config) => Layer.scoped(TracerProvider, Effect.flatMap(Resource, resource => Effect.acquireRelease(Effect.sync(() => {
|
|
22
|
+
const provider = new NodeTracerProvider({
|
|
23
|
+
...(config ?? {}),
|
|
25
24
|
resource
|
|
26
25
|
});
|
|
27
|
-
|
|
28
|
-
return
|
|
29
|
-
}),
|
|
26
|
+
provider.addSpanProcessor(processor);
|
|
27
|
+
return provider;
|
|
28
|
+
}), provider => Effect.promise(() => provider.shutdown()))));
|
|
30
29
|
|
|
31
30
|
/**
|
|
32
31
|
* @since 1.0.0
|
|
@@ -34,8 +33,10 @@ const make = config => Effect.flatMap(Resource, resource => Effect.acquireReleas
|
|
|
34
33
|
*/
|
|
35
34
|
const layer = evaluate => Layer.unwrapEffect(Effect.sync(() => {
|
|
36
35
|
const config = evaluate();
|
|
37
|
-
const
|
|
38
|
-
|
|
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));
|
|
39
40
|
}));
|
|
40
41
|
|
|
41
|
-
export {
|
|
42
|
+
export { layer, layerTracerProvider };
|
|
@@ -9,7 +9,7 @@ var Effect = require('effect/Effect');
|
|
|
9
9
|
var FiberRef = require('effect/FiberRef');
|
|
10
10
|
var Layer = require('effect/Layer');
|
|
11
11
|
var Option = require('effect/Option');
|
|
12
|
-
var
|
|
12
|
+
var EffectTracer = require('effect/Tracer');
|
|
13
13
|
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.dev.js');
|
|
14
14
|
require('@opentelemetry/resources');
|
|
15
15
|
require('@opentelemetry/semantic-conventions');
|
|
@@ -39,7 +39,7 @@ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
|
39
39
|
var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
|
|
40
40
|
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
41
41
|
var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
|
|
42
|
-
var
|
|
42
|
+
var EffectTracer__namespace = /*#__PURE__*/_interopNamespace(EffectTracer);
|
|
43
43
|
|
|
44
44
|
/** @internal */
|
|
45
45
|
class OtelSpan {
|
|
@@ -105,15 +105,18 @@ class OtelSpan {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
/** @internal */
|
|
108
|
-
const
|
|
108
|
+
const TracerProvider$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/TracerProvider");
|
|
109
109
|
|
|
110
110
|
/** @internal */
|
|
111
|
-
const
|
|
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({
|
|
112
115
|
span(name, parent, context, links, startTime) {
|
|
113
116
|
return new OtelSpan(OtelApi__namespace.context, tracer, name, parent, context, links, startTime);
|
|
114
117
|
},
|
|
115
118
|
context(execution, fiber) {
|
|
116
|
-
const currentSpan = fiber.getFiberRef(FiberRef__namespace.currentContext).unsafeMap.get(
|
|
119
|
+
const currentSpan = fiber.getFiberRef(FiberRef__namespace.currentContext).unsafeMap.get(EffectTracer__namespace.ParentSpan);
|
|
117
120
|
if (currentSpan === undefined) {
|
|
118
121
|
return execution();
|
|
119
122
|
}
|
|
@@ -154,10 +157,19 @@ const makeExternalSpan$1 = options => {
|
|
|
154
157
|
const currentOtelSpan$1 = /*#__PURE__*/Effect__namespace.map(Effect__namespace.currentSpan, span => Option__namespace.map(Option__namespace.filter(span, span => "span" in span), _ => _.span));
|
|
155
158
|
|
|
156
159
|
/** @internal */
|
|
157
|
-
const
|
|
160
|
+
const layerGlobalProvider = /*#__PURE__*/Layer__namespace.sync(TracerProvider$1, () => OtelApi__namespace.trace.getTracerProvider());
|
|
161
|
+
|
|
162
|
+
/** @internal */
|
|
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));
|
|
158
167
|
|
|
159
168
|
/** @internal */
|
|
160
|
-
const
|
|
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));
|
|
161
173
|
|
|
162
174
|
// -------------------------------------------------------------------------------------
|
|
163
175
|
// utils
|
|
@@ -230,13 +242,31 @@ const layer = layer$1;
|
|
|
230
242
|
* @since 1.0.0
|
|
231
243
|
* @category layers
|
|
232
244
|
*/
|
|
233
|
-
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;
|
|
234
264
|
|
|
235
265
|
/**
|
|
236
266
|
* @since 1.0.0
|
|
237
267
|
* @category tags
|
|
238
268
|
*/
|
|
239
|
-
const
|
|
269
|
+
const Tracer = Tracer$1;
|
|
240
270
|
|
|
241
271
|
/**
|
|
242
272
|
* @since 1.0.0
|
|
@@ -250,11 +280,14 @@ const TraceFlags = traceFlagsTag;
|
|
|
250
280
|
*/
|
|
251
281
|
const TraceState = traceStateTag;
|
|
252
282
|
|
|
253
|
-
exports.OtelTracer = OtelTracer;
|
|
254
283
|
exports.TraceFlags = TraceFlags;
|
|
255
284
|
exports.TraceState = TraceState;
|
|
285
|
+
exports.Tracer = Tracer;
|
|
286
|
+
exports.TracerProvider = TracerProvider;
|
|
256
287
|
exports.currentOtelSpan = currentOtelSpan;
|
|
257
288
|
exports.layer = layer;
|
|
258
|
-
exports.
|
|
289
|
+
exports.layerGlobal = layerGlobal;
|
|
290
|
+
exports.layerGlobalTracer = layerGlobalTracer;
|
|
291
|
+
exports.layerTracer = layerTracer;
|
|
259
292
|
exports.make = make;
|
|
260
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";
|
|
@@ -9,7 +9,7 @@ var Effect = require('effect/Effect');
|
|
|
9
9
|
var FiberRef = require('effect/FiberRef');
|
|
10
10
|
var Layer = require('effect/Layer');
|
|
11
11
|
var Option = require('effect/Option');
|
|
12
|
-
var
|
|
12
|
+
var EffectTracer = require('effect/Tracer');
|
|
13
13
|
var Resource_dist_effectOpentelemetryResource = require('../../Resource/dist/effect-opentelemetry-Resource.cjs.prod.js');
|
|
14
14
|
require('@opentelemetry/resources');
|
|
15
15
|
require('@opentelemetry/semantic-conventions');
|
|
@@ -39,7 +39,7 @@ var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
|
39
39
|
var FiberRef__namespace = /*#__PURE__*/_interopNamespace(FiberRef);
|
|
40
40
|
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
41
41
|
var Option__namespace = /*#__PURE__*/_interopNamespace(Option);
|
|
42
|
-
var
|
|
42
|
+
var EffectTracer__namespace = /*#__PURE__*/_interopNamespace(EffectTracer);
|
|
43
43
|
|
|
44
44
|
/** @internal */
|
|
45
45
|
class OtelSpan {
|
|
@@ -105,15 +105,18 @@ class OtelSpan {
|
|
|
105
105
|
}
|
|
106
106
|
|
|
107
107
|
/** @internal */
|
|
108
|
-
const
|
|
108
|
+
const TracerProvider$1 = /*#__PURE__*/Context__namespace.Tag("@effect/opentelemetry/Tracer/TracerProvider");
|
|
109
109
|
|
|
110
110
|
/** @internal */
|
|
111
|
-
const
|
|
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({
|
|
112
115
|
span(name, parent, context, links, startTime) {
|
|
113
116
|
return new OtelSpan(OtelApi__namespace.context, tracer, name, parent, context, links, startTime);
|
|
114
117
|
},
|
|
115
118
|
context(execution, fiber) {
|
|
116
|
-
const currentSpan = fiber.getFiberRef(FiberRef__namespace.currentContext).unsafeMap.get(
|
|
119
|
+
const currentSpan = fiber.getFiberRef(FiberRef__namespace.currentContext).unsafeMap.get(EffectTracer__namespace.ParentSpan);
|
|
117
120
|
if (currentSpan === undefined) {
|
|
118
121
|
return execution();
|
|
119
122
|
}
|
|
@@ -154,10 +157,19 @@ const makeExternalSpan$1 = options => {
|
|
|
154
157
|
const currentOtelSpan$1 = /*#__PURE__*/Effect__namespace.map(Effect__namespace.currentSpan, span => Option__namespace.map(Option__namespace.filter(span, span => "span" in span), _ => _.span));
|
|
155
158
|
|
|
156
159
|
/** @internal */
|
|
157
|
-
const
|
|
160
|
+
const layerGlobalProvider = /*#__PURE__*/Layer__namespace.sync(TracerProvider$1, () => OtelApi__namespace.trace.getTracerProvider());
|
|
161
|
+
|
|
162
|
+
/** @internal */
|
|
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));
|
|
158
167
|
|
|
159
168
|
/** @internal */
|
|
160
|
-
const
|
|
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));
|
|
161
173
|
|
|
162
174
|
// -------------------------------------------------------------------------------------
|
|
163
175
|
// utils
|
|
@@ -230,13 +242,31 @@ const layer = layer$1;
|
|
|
230
242
|
* @since 1.0.0
|
|
231
243
|
* @category layers
|
|
232
244
|
*/
|
|
233
|
-
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;
|
|
234
264
|
|
|
235
265
|
/**
|
|
236
266
|
* @since 1.0.0
|
|
237
267
|
* @category tags
|
|
238
268
|
*/
|
|
239
|
-
const
|
|
269
|
+
const Tracer = Tracer$1;
|
|
240
270
|
|
|
241
271
|
/**
|
|
242
272
|
* @since 1.0.0
|
|
@@ -250,11 +280,14 @@ const TraceFlags = traceFlagsTag;
|
|
|
250
280
|
*/
|
|
251
281
|
const TraceState = traceStateTag;
|
|
252
282
|
|
|
253
|
-
exports.OtelTracer = OtelTracer;
|
|
254
283
|
exports.TraceFlags = TraceFlags;
|
|
255
284
|
exports.TraceState = TraceState;
|
|
285
|
+
exports.Tracer = Tracer;
|
|
286
|
+
exports.TracerProvider = TracerProvider;
|
|
256
287
|
exports.currentOtelSpan = currentOtelSpan;
|
|
257
288
|
exports.layer = layer;
|
|
258
|
-
exports.
|
|
289
|
+
exports.layerGlobal = layerGlobal;
|
|
290
|
+
exports.layerGlobalTracer = layerGlobalTracer;
|
|
291
|
+
exports.layerTracer = layerTracer;
|
|
259
292
|
exports.make = make;
|
|
260
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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var sdkTraceWeb = require('@opentelemetry/sdk-trace-web');
|
|
6
|
+
var Effect = require('effect/Effect');
|
|
7
|
+
var Layer = require('effect/Layer');
|
|
8
|
+
var Metrics_dist_effectOpentelemetryMetrics = require('../../Metrics/dist/effect-opentelemetry-Metrics.cjs.dev.js');
|
|
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');
|
|
18
|
+
require('@opentelemetry/resources');
|
|
19
|
+
require('@opentelemetry/semantic-conventions');
|
|
20
|
+
require('effect/Context');
|
|
21
|
+
require('effect/Cause');
|
|
22
|
+
require('effect/FiberRef');
|
|
23
|
+
require('effect/Tracer');
|
|
24
|
+
|
|
25
|
+
function _interopNamespace(e) {
|
|
26
|
+
if (e && e.__esModule) return e;
|
|
27
|
+
var n = Object.create(null);
|
|
28
|
+
if (e) {
|
|
29
|
+
Object.keys(e).forEach(function (k) {
|
|
30
|
+
if (k !== 'default') {
|
|
31
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
32
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () { return e[k]; }
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
n["default"] = e;
|
|
40
|
+
return Object.freeze(n);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var Effect__namespace = /*#__PURE__*/_interopNamespace(Effect);
|
|
44
|
+
var Layer__namespace = /*#__PURE__*/_interopNamespace(Layer);
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
*/
|
|
49
|
+
|
|
50
|
+
/**
|
|
51
|
+
* @since 1.0.0
|
|
52
|
+
* @category model
|
|
53
|
+
*/
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @since 1.0.0
|
|
57
|
+
* @category layers
|
|
58
|
+
*/
|
|
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 sdkTraceWeb.WebTracerProvider({
|
|
61
|
+
...(config ?? {}),
|
|
62
|
+
resource
|
|
63
|
+
});
|
|
64
|
+
provider.addSpanProcessor(processor);
|
|
65
|
+
return provider;
|
|
66
|
+
}), provider => Effect__namespace.promise(() => provider.shutdown()))));
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @since 1.0.0
|
|
70
|
+
* @category layer
|
|
71
|
+
*/
|
|
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
|
+
}));
|
|
79
|
+
|
|
80
|
+
exports.layer = layer;
|
|
81
|
+
exports.layerTracerProvider = layerTracerProvider;
|