@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
|
@@ -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;
|
|
@@ -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.prod.js');
|
|
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');
|
|
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;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { WebTracerProvider } from '@opentelemetry/sdk-trace-web';
|
|
2
|
+
import * as Effect from 'effect/Effect';
|
|
3
|
+
import * as Layer from 'effect/Layer';
|
|
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';
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @since 1.0.0
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* @since 1.0.0
|
|
14
|
+
* @category model
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @since 1.0.0
|
|
19
|
+
* @category layers
|
|
20
|
+
*/
|
|
21
|
+
const layerTracerProvider = (processor, config) => Layer.scoped(TracerProvider, Effect.flatMap(Resource, resource => Effect.acquireRelease(Effect.sync(() => {
|
|
22
|
+
const provider = new WebTracerProvider({
|
|
23
|
+
...(config ?? {}),
|
|
24
|
+
resource
|
|
25
|
+
});
|
|
26
|
+
provider.addSpanProcessor(processor);
|
|
27
|
+
return provider;
|
|
28
|
+
}), provider => Effect.promise(() => provider.shutdown()))));
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @since 1.0.0
|
|
32
|
+
* @category layer
|
|
33
|
+
*/
|
|
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
|
+
}));
|
|
41
|
+
|
|
42
|
+
export { layer, layerTracerProvider };
|
|
@@ -1,23 +1,35 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import type {
|
|
4
|
+
import type { TracerProvider } from "@opentelemetry/api";
|
|
5
|
+
import type * as Resources from "@opentelemetry/resources";
|
|
6
|
+
import type { MetricReader } from "@opentelemetry/sdk-metrics";
|
|
7
|
+
import type { SpanProcessor, TracerConfig } from "@opentelemetry/sdk-trace-base";
|
|
5
8
|
import type { LazyArg } from "effect/Function";
|
|
6
9
|
import * as Layer from "effect/Layer";
|
|
7
|
-
import
|
|
10
|
+
import * as Resource from "./Resource.js";
|
|
8
11
|
/**
|
|
9
12
|
* @since 1.0.0
|
|
10
13
|
* @category model
|
|
11
14
|
*/
|
|
12
|
-
export
|
|
15
|
+
export interface Configuration {
|
|
16
|
+
readonly spanProcessor?: SpanProcessor;
|
|
17
|
+
readonly tracerConfig?: Omit<TracerConfig, "resource">;
|
|
18
|
+
readonly metricReader?: MetricReader;
|
|
19
|
+
readonly resource: {
|
|
20
|
+
readonly serviceName: string;
|
|
21
|
+
readonly serviceVersion?: string;
|
|
22
|
+
readonly attributes?: Resources.ResourceAttributes;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
13
25
|
/**
|
|
14
26
|
* @since 1.0.0
|
|
15
|
-
* @category
|
|
27
|
+
* @category layers
|
|
16
28
|
*/
|
|
17
|
-
export declare const
|
|
29
|
+
export declare const layerTracerProvider: (processor: SpanProcessor, config?: Omit<TracerConfig, "resource">) => Layer.Layer<Resource.Resource, never, TracerProvider>;
|
|
18
30
|
/**
|
|
19
31
|
* @since 1.0.0
|
|
20
32
|
* @category layer
|
|
21
33
|
*/
|
|
22
|
-
export declare const layer: (
|
|
34
|
+
export declare const layer: (evaluate: LazyArg<Configuration>) => Layer.Layer<never, never, Resource.Resource>;
|
|
23
35
|
//# sourceMappingURL=NodeSdk.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSdk.d.ts","sourceRoot":"../../../src","sources":["NodeSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"NodeSdk.d.ts","sourceRoot":"../../../src","sources":["NodeSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAGhF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,sBAAkB;AAGtC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAA;KACnD,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,WACf,KAAK,YAAY,EAAE,UAAU,CAAC,KACtC,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAkBpD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,aACN,QAAQ,aAAa,CAAC,KAC/B,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAiB3C,CAAA"}
|
|
@@ -6,13 +6,13 @@ import type { Tag } from "effect/Context";
|
|
|
6
6
|
import type { Effect } from "effect/Effect";
|
|
7
7
|
import type { Layer } from "effect/Layer";
|
|
8
8
|
import type * as Option from "effect/Option";
|
|
9
|
-
import type { ExternalSpan, Tracer } from "effect/Tracer";
|
|
9
|
+
import type { ExternalSpan, Tracer as EffectTracer } from "effect/Tracer";
|
|
10
10
|
import type { Resource } from "./Resource.js";
|
|
11
11
|
/**
|
|
12
12
|
* @since 1.0.0
|
|
13
13
|
* @category constructors
|
|
14
14
|
*/
|
|
15
|
-
export declare const make: Effect<Otel.Tracer, never,
|
|
15
|
+
export declare const make: Effect<Otel.Tracer, never, EffectTracer>;
|
|
16
16
|
/**
|
|
17
17
|
* @since 1.0.0
|
|
18
18
|
* @category constructors
|
|
@@ -32,17 +32,32 @@ export declare const currentOtelSpan: Effect<never, never, Option.Option<Otel.Sp
|
|
|
32
32
|
* @since 1.0.0
|
|
33
33
|
* @category layers
|
|
34
34
|
*/
|
|
35
|
-
export declare const layer: Layer<Resource, never, never>;
|
|
35
|
+
export declare const layer: Layer<Resource | Otel.TracerProvider, never, never>;
|
|
36
36
|
/**
|
|
37
37
|
* @since 1.0.0
|
|
38
38
|
* @category layers
|
|
39
39
|
*/
|
|
40
|
-
export declare const
|
|
40
|
+
export declare const layerGlobal: Layer<Resource, never, never>;
|
|
41
|
+
/**
|
|
42
|
+
* @since 1.0.0
|
|
43
|
+
* @category layers
|
|
44
|
+
*/
|
|
45
|
+
export declare const layerTracer: Layer<Resource | Otel.TracerProvider, never, Otel.Tracer>;
|
|
46
|
+
/**
|
|
47
|
+
* @since 1.0.0
|
|
48
|
+
* @category layers
|
|
49
|
+
*/
|
|
50
|
+
export declare const layerGlobalTracer: Layer<Resource, never, Otel.Tracer>;
|
|
51
|
+
/**
|
|
52
|
+
* @since 1.0.0
|
|
53
|
+
* @category tags
|
|
54
|
+
*/
|
|
55
|
+
export declare const TracerProvider: Tag<Otel.TracerProvider, Otel.TracerProvider>;
|
|
41
56
|
/**
|
|
42
57
|
* @since 1.0.0
|
|
43
58
|
* @category tags
|
|
44
59
|
*/
|
|
45
|
-
export declare const
|
|
60
|
+
export declare const Tracer: Tag<Otel.Tracer, Otel.Tracer>;
|
|
46
61
|
/**
|
|
47
62
|
* @since 1.0.0
|
|
48
63
|
* @category tags
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tracer.d.ts","sourceRoot":"../../../src","sources":["Tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;
|
|
1
|
+
{"version":3,"file":"Tracer.d.ts","sourceRoot":"../../../src","sources":["Tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,MAAM,eAAe,CAAA;AAC5C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,eAAe,CAAA;AAEzE,OAAO,KAAK,EAAE,QAAQ,EAAE,sBAAkB;AAE1C;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,YAAY,CAAiB,CAAA;AAE3E;;;GAGG;AACH,eAAO,MAAM,gBAAgB,EAAE,CAC7B,OAAO,EAAE;IACP,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,UAAU,GAAG,SAAS,CAAA;CAC3D,KACE,YAAwC,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAA4B,CAAA;AAEvG;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,KAAK,CAAkB,CAAA;AAExF;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAwB,CAAA;AAE9E;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAwB,CAAA;AAE1G;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAA8B,CAAA;AAEhG;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,cAAc,CAA2B,CAAA;AAEpG;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAmB,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAA0B,CAAA;AAEvF;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,UAAU,CAA0B,CAAA"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @since 1.0.0
|
|
3
|
+
*/
|
|
4
|
+
import type { TracerProvider } from "@opentelemetry/api";
|
|
5
|
+
import type * as Resources from "@opentelemetry/resources";
|
|
6
|
+
import type { MetricReader } from "@opentelemetry/sdk-metrics";
|
|
7
|
+
import type { SpanProcessor, TracerConfig } from "@opentelemetry/sdk-trace-base";
|
|
8
|
+
import type { LazyArg } from "effect/Function";
|
|
9
|
+
import * as Layer from "effect/Layer";
|
|
10
|
+
import * as Resource from "./Resource.js";
|
|
11
|
+
/**
|
|
12
|
+
* @since 1.0.0
|
|
13
|
+
* @category model
|
|
14
|
+
*/
|
|
15
|
+
export interface Configuration {
|
|
16
|
+
readonly spanProcessor?: SpanProcessor;
|
|
17
|
+
readonly tracerConfig?: Omit<TracerConfig, "resource">;
|
|
18
|
+
readonly metricReader?: MetricReader;
|
|
19
|
+
readonly resource: {
|
|
20
|
+
readonly serviceName: string;
|
|
21
|
+
readonly serviceVersion?: string;
|
|
22
|
+
readonly attributes?: Resources.ResourceAttributes;
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* @since 1.0.0
|
|
27
|
+
* @category layers
|
|
28
|
+
*/
|
|
29
|
+
export declare const layerTracerProvider: (processor: SpanProcessor, config?: Omit<TracerConfig, "resource">) => Layer.Layer<Resource.Resource, never, TracerProvider>;
|
|
30
|
+
/**
|
|
31
|
+
* @since 1.0.0
|
|
32
|
+
* @category layer
|
|
33
|
+
*/
|
|
34
|
+
export declare const layer: (evaluate: LazyArg<Configuration>) => Layer.Layer<never, never, Resource.Resource>;
|
|
35
|
+
//# sourceMappingURL=WebSdk.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"WebSdk.d.ts","sourceRoot":"../../../src","sources":["WebSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAC1D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAGhF,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,QAAQ,sBAAkB;AAGtC;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,CAAA;IACtC,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAA;IACtD,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE;QACjB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,kBAAkB,CAAA;KACnD,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,WACf,KAAK,YAAY,EAAE,UAAU,CAAC,KACtC,WAAW,CAAC,iBAAiB,EAAE,KAAK,EAAE,cAAc,CAkBpD,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,aACN,QAAQ,aAAa,CAAC,KAC/B,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAe3C,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,QAAQ,sBAAsC;AAE1D;;GAEG;AACH,OAAO,KAAK,MAAM,oBAAoC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"../../../src","sources":["index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,OAAO,qBAAqC;AAExD;;GAEG;AACH,OAAO,KAAK,QAAQ,sBAAsC;AAE1D;;GAEG;AACH,OAAO,KAAK,MAAM,oBAAoC;AAEtD;;GAEG;AACH,OAAO,KAAK,MAAM,oBAAoC"}
|
|
@@ -6,6 +6,7 @@ var Metrics = require('@effect/opentelemetry/Metrics');
|
|
|
6
6
|
var NodeSdk = require('@effect/opentelemetry/NodeSdk');
|
|
7
7
|
var Resource = require('@effect/opentelemetry/Resource');
|
|
8
8
|
var Tracer = require('@effect/opentelemetry/Tracer');
|
|
9
|
+
var WebSdk = require('@effect/opentelemetry/WebSdk');
|
|
9
10
|
|
|
10
11
|
function _interopNamespace(e) {
|
|
11
12
|
if (e && e.__esModule) return e;
|
|
@@ -29,6 +30,7 @@ var Metrics__namespace = /*#__PURE__*/_interopNamespace(Metrics);
|
|
|
29
30
|
var NodeSdk__namespace = /*#__PURE__*/_interopNamespace(NodeSdk);
|
|
30
31
|
var Resource__namespace = /*#__PURE__*/_interopNamespace(Resource);
|
|
31
32
|
var Tracer__namespace = /*#__PURE__*/_interopNamespace(Tracer);
|
|
33
|
+
var WebSdk__namespace = /*#__PURE__*/_interopNamespace(WebSdk);
|
|
32
34
|
|
|
33
35
|
|
|
34
36
|
|
|
@@ -36,3 +38,4 @@ exports.Metrics = Metrics__namespace;
|
|
|
36
38
|
exports.NodeSdk = NodeSdk__namespace;
|
|
37
39
|
exports.Resource = Resource__namespace;
|
|
38
40
|
exports.Tracer = Tracer__namespace;
|
|
41
|
+
exports.WebSdk = WebSdk__namespace;
|
|
@@ -6,6 +6,7 @@ var Metrics = require('@effect/opentelemetry/Metrics');
|
|
|
6
6
|
var NodeSdk = require('@effect/opentelemetry/NodeSdk');
|
|
7
7
|
var Resource = require('@effect/opentelemetry/Resource');
|
|
8
8
|
var Tracer = require('@effect/opentelemetry/Tracer');
|
|
9
|
+
var WebSdk = require('@effect/opentelemetry/WebSdk');
|
|
9
10
|
|
|
10
11
|
function _interopNamespace(e) {
|
|
11
12
|
if (e && e.__esModule) return e;
|
|
@@ -29,6 +30,7 @@ var Metrics__namespace = /*#__PURE__*/_interopNamespace(Metrics);
|
|
|
29
30
|
var NodeSdk__namespace = /*#__PURE__*/_interopNamespace(NodeSdk);
|
|
30
31
|
var Resource__namespace = /*#__PURE__*/_interopNamespace(Resource);
|
|
31
32
|
var Tracer__namespace = /*#__PURE__*/_interopNamespace(Tracer);
|
|
33
|
+
var WebSdk__namespace = /*#__PURE__*/_interopNamespace(WebSdk);
|
|
32
34
|
|
|
33
35
|
|
|
34
36
|
|
|
@@ -36,3 +38,4 @@ exports.Metrics = Metrics__namespace;
|
|
|
36
38
|
exports.NodeSdk = NodeSdk__namespace;
|
|
37
39
|
exports.Resource = Resource__namespace;
|
|
38
40
|
exports.Tracer = Tracer__namespace;
|
|
41
|
+
exports.WebSdk = WebSdk__namespace;
|
package/internal/tracer.esm.js
CHANGED
|
@@ -3,23 +3,20 @@ import * as Cause from 'effect/Cause';
|
|
|
3
3
|
import * as Context from 'effect/Context';
|
|
4
4
|
import * as Effect from 'effect/Effect';
|
|
5
5
|
import * as FiberRef from 'effect/FiberRef';
|
|
6
|
-
import * as FiberRefs from 'effect/FiberRefs';
|
|
7
6
|
import * as Layer from 'effect/Layer';
|
|
8
|
-
import * as List from 'effect/List';
|
|
9
7
|
import * as Option from 'effect/Option';
|
|
10
|
-
import * as
|
|
8
|
+
import * as EffectTracer from 'effect/Tracer';
|
|
11
9
|
import { Resource } from '../Resource/dist/effect-opentelemetry-Resource.esm.js';
|
|
12
10
|
|
|
13
11
|
/** @internal */
|
|
14
12
|
class OtelSpan {
|
|
15
13
|
_tag = "Span";
|
|
16
14
|
attributes = new Map();
|
|
17
|
-
constructor(contextApi, tracer, name, parent, context, links,
|
|
15
|
+
constructor(contextApi, tracer, name, parent, context, links, startTime) {
|
|
18
16
|
this.name = name;
|
|
19
17
|
this.parent = parent;
|
|
20
18
|
this.context = context;
|
|
21
19
|
this.links = links;
|
|
22
|
-
this.sampled = sampled;
|
|
23
20
|
const active = contextApi.active();
|
|
24
21
|
this.span = tracer.startSpan(name, {
|
|
25
22
|
startTime: nanosToHrTime(startTime),
|
|
@@ -35,6 +32,7 @@ class OtelSpan {
|
|
|
35
32
|
_tag: "Started",
|
|
36
33
|
startTime
|
|
37
34
|
};
|
|
35
|
+
this.sampled = (spanContext.traceFlags & OtelApi.TraceFlags.SAMPLED) === OtelApi.TraceFlags.SAMPLED;
|
|
38
36
|
}
|
|
39
37
|
attribute(key, value) {
|
|
40
38
|
this.span.setAttribute(key, unknownToAttributeValue(value));
|
|
@@ -74,24 +72,25 @@ class OtelSpan {
|
|
|
74
72
|
}
|
|
75
73
|
|
|
76
74
|
/** @internal */
|
|
77
|
-
const
|
|
75
|
+
const TracerProvider = /*#__PURE__*/Context.Tag("@effect/opentelemetry/Tracer/TracerProvider");
|
|
78
76
|
|
|
79
77
|
/** @internal */
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
const Tracer = /*#__PURE__*/Context.Tag("@effect/opentelemetry/Tracer/Tracer");
|
|
79
|
+
|
|
80
|
+
/** @internal */
|
|
81
|
+
const make = /*#__PURE__*/Effect.map(Tracer, tracer => EffectTracer.make({
|
|
82
|
+
span(name, parent, context, links, startTime) {
|
|
83
|
+
return new OtelSpan(OtelApi.context, tracer, name, parent, context, links, startTime);
|
|
83
84
|
},
|
|
84
85
|
context(execution, fiber) {
|
|
85
|
-
const currentSpan =
|
|
86
|
-
if (currentSpan
|
|
86
|
+
const currentSpan = fiber.getFiberRef(FiberRef.currentContext).unsafeMap.get(EffectTracer.ParentSpan);
|
|
87
|
+
if (currentSpan === undefined) {
|
|
87
88
|
return execution();
|
|
88
89
|
}
|
|
89
|
-
return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan
|
|
90
|
+
return OtelApi.context.with(populateContext(OtelApi.context.active(), currentSpan), execution);
|
|
90
91
|
}
|
|
91
92
|
}));
|
|
92
93
|
|
|
93
|
-
/** @internal */
|
|
94
|
-
|
|
95
94
|
/** @internal */
|
|
96
95
|
const traceFlagsTag = /*#__PURE__*/Context.Tag("@effect/opentelemetry/traceFlags");
|
|
97
96
|
|
|
@@ -116,7 +115,7 @@ const makeExternalSpan = options => {
|
|
|
116
115
|
_tag: "ExternalSpan",
|
|
117
116
|
traceId: options.traceId,
|
|
118
117
|
spanId: options.spanId,
|
|
119
|
-
sampled: options.traceFlags ? options.traceFlags === OtelApi.TraceFlags.SAMPLED : true,
|
|
118
|
+
sampled: options.traceFlags ? (options.traceFlags & OtelApi.TraceFlags.SAMPLED) === OtelApi.TraceFlags.SAMPLED : true,
|
|
120
119
|
context
|
|
121
120
|
};
|
|
122
121
|
};
|
|
@@ -125,10 +124,19 @@ const makeExternalSpan = options => {
|
|
|
125
124
|
const currentOtelSpan = /*#__PURE__*/Effect.map(Effect.currentSpan, span => Option.map(Option.filter(span, span => "span" in span), _ => _.span));
|
|
126
125
|
|
|
127
126
|
/** @internal */
|
|
128
|
-
const
|
|
127
|
+
const layerGlobalProvider = /*#__PURE__*/Layer.sync(TracerProvider, () => OtelApi.trace.getTracerProvider());
|
|
128
|
+
|
|
129
|
+
/** @internal */
|
|
130
|
+
const layerTracer = /*#__PURE__*/Layer.effect(Tracer, /*#__PURE__*/Effect.flatMap( /*#__PURE__*/Effect.zip(Resource, TracerProvider), ([resource, provider]) => Effect.sync(() => provider.getTracer(resource.attributes["service.name"], resource.attributes["service.version"]))));
|
|
131
|
+
|
|
132
|
+
/** @internal */
|
|
133
|
+
const layerGlobalTracer = /*#__PURE__*/layerTracer.pipe( /*#__PURE__*/Layer.use(layerGlobalProvider));
|
|
134
|
+
|
|
135
|
+
/** @internal */
|
|
136
|
+
const layerGlobal = /*#__PURE__*/Layer.unwrapEffect(Effect.map(make, Layer.setTracer)).pipe( /*#__PURE__*/Layer.use(layerGlobalTracer));
|
|
129
137
|
|
|
130
138
|
/** @internal */
|
|
131
|
-
const layer = /*#__PURE__*/Layer.
|
|
139
|
+
const layer = /*#__PURE__*/Layer.unwrapEffect(Effect.map(make, Layer.setTracer)).pipe( /*#__PURE__*/Layer.use(layerTracer));
|
|
132
140
|
|
|
133
141
|
// -------------------------------------------------------------------------------------
|
|
134
142
|
// utils
|
|
@@ -170,4 +178,4 @@ const objectToAttribute = value => {
|
|
|
170
178
|
}
|
|
171
179
|
};
|
|
172
180
|
|
|
173
|
-
export { OtelSpan,
|
|
181
|
+
export { OtelSpan, Tracer, TracerProvider, currentOtelSpan, layer, layerGlobal, layerGlobalProvider, layerGlobalTracer, layerTracer, make, makeExternalSpan, traceFlagsTag, traceStateTag };
|