@effect/opentelemetry 4.0.0-beta.8 → 4.0.0-beta.81
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/dist/Logger.d.ts +62 -11
- package/dist/Logger.d.ts.map +1 -1
- package/dist/Logger.js +88 -25
- package/dist/Logger.js.map +1 -1
- package/dist/Metrics.d.ts +38 -14
- package/dist/Metrics.d.ts.map +1 -1
- package/dist/Metrics.js +23 -8
- package/dist/Metrics.js.map +1 -1
- package/dist/NodeSdk.d.ts +84 -12
- package/dist/NodeSdk.d.ts.map +1 -1
- package/dist/NodeSdk.js +28 -5
- package/dist/NodeSdk.js.map +1 -1
- package/dist/Resource.d.ts +57 -13
- package/dist/Resource.d.ts.map +1 -1
- package/dist/Resource.js +48 -13
- package/dist/Resource.js.map +1 -1
- package/dist/Tracer.d.ts +108 -51
- package/dist/Tracer.d.ts.map +1 -1
- package/dist/Tracer.js +121 -68
- package/dist/Tracer.js.map +1 -1
- package/dist/WebSdk.d.ts +80 -11
- package/dist/WebSdk.d.ts.map +1 -1
- package/dist/WebSdk.js +25 -4
- package/dist/WebSdk.js.map +1 -1
- package/dist/index.d.ts +7 -7
- package/dist/index.js +7 -7
- package/dist/internal/attributes.js +5 -0
- package/dist/internal/attributes.js.map +1 -1
- package/dist/internal/metrics.js +5 -5
- package/dist/internal/metrics.js.map +1 -1
- package/package.json +20 -15
- package/src/Logger.ts +94 -25
- package/src/Metrics.ts +39 -15
- package/src/NodeSdk.ts +84 -12
- package/src/Resource.ts +58 -14
- package/src/Tracer.ts +154 -98
- package/src/WebSdk.ts +80 -11
- package/src/index.ts +7 -7
- package/src/internal/attributes.ts +7 -0
- package/src/internal/metrics.ts +6 -6
package/dist/NodeSdk.js
CHANGED
|
@@ -8,8 +8,10 @@ import * as Metrics from "./Metrics.js";
|
|
|
8
8
|
import * as Resource from "./Resource.js";
|
|
9
9
|
import * as Tracer from "./Tracer.js";
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
11
|
+
* Creates a scoped Node OpenTelemetry tracer provider from one or more span processors and shuts it down when the layer is released.
|
|
12
|
+
*
|
|
13
|
+
* @category layers
|
|
14
|
+
* @since 4.0.0
|
|
13
15
|
*/
|
|
14
16
|
export const layerTracerProvider = (processor, config) => Layer.effect(Tracer.OtelTracerProvider, Effect.gen(function* () {
|
|
15
17
|
const resource = yield* Resource.Resource;
|
|
@@ -23,8 +25,27 @@ export const layerTracerProvider = (processor, config) => Layer.effect(Tracer.Ot
|
|
|
23
25
|
}), provider => Effect.promise(() => provider.forceFlush().then(() => provider.shutdown())).pipe(Effect.ignore, Effect.interruptible, Effect.timeoutOption(config?.shutdownTimeout ?? 3000)));
|
|
24
26
|
}));
|
|
25
27
|
/**
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
+
* Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
|
|
29
|
+
*
|
|
30
|
+
* **When to use**
|
|
31
|
+
*
|
|
32
|
+
* Use to install OpenTelemetry support for a Node.js Effect application from
|
|
33
|
+
* one configuration object, enabling tracing, metrics, logging, or any
|
|
34
|
+
* combination of those signals based on the processors and readers supplied.
|
|
35
|
+
*
|
|
36
|
+
* **Details**
|
|
37
|
+
*
|
|
38
|
+
* The configuration can be provided lazily or effectfully. The layer always
|
|
39
|
+
* provides `Resource.Resource`, building it from environment variables and any
|
|
40
|
+
* explicit resource metadata in the configuration.
|
|
41
|
+
*
|
|
42
|
+
* **Gotchas**
|
|
43
|
+
*
|
|
44
|
+
* Register Node auto-instrumentations before importing modules that should be
|
|
45
|
+
* patched, because many Node instrumentations hook module loading.
|
|
46
|
+
*
|
|
47
|
+
* @category layers
|
|
48
|
+
* @since 4.0.0
|
|
28
49
|
*/
|
|
29
50
|
export const layer = evaluate => Layer.unwrap(Effect.gen(function* () {
|
|
30
51
|
const config = yield* Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate);
|
|
@@ -46,8 +67,10 @@ export const layer = evaluate => Layer.unwrap(Effect.gen(function* () {
|
|
|
46
67
|
return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(Layer.provideMerge(ResourceLive));
|
|
47
68
|
}));
|
|
48
69
|
/**
|
|
70
|
+
* Layer that provides an empty OpenTelemetry `Resource`.
|
|
71
|
+
*
|
|
72
|
+
* @category layers
|
|
49
73
|
* @since 2.0.0
|
|
50
|
-
* @category layer
|
|
51
74
|
*/
|
|
52
75
|
export const layerEmpty = Resource.layerEmpty;
|
|
53
76
|
//# sourceMappingURL=NodeSdk.js.map
|
package/dist/NodeSdk.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NodeSdk.js","names":["NodeTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","effect","OtelTracerProvider","gen","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","promise","forceFlush","then","shutdown","pipe","ignore","interruptible","timeoutOption","shutdownTimeout","layer","evaluate","unwrap","isEffect","ResourceLive","layerFromEnv","configToAttributes","TracerLive","spanProcessor","provide","tracerConfig","empty","MetricsLive","metricReader","temporality","metricTemporality","LoggerLive","logRecordProcessor","mergeWithExisting","loggerMergeWithExisting","layerLoggerProvider","loggerProviderConfig","mergeAll","provideMerge","layerEmpty"],"sources":["../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"
|
|
1
|
+
{"version":3,"file":"NodeSdk.js","names":["NodeTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","effect","OtelTracerProvider","gen","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","promise","forceFlush","then","shutdown","pipe","ignore","interruptible","timeoutOption","shutdownTimeout","layer","evaluate","unwrap","isEffect","ResourceLive","layerFromEnv","configToAttributes","TracerLive","spanProcessor","provide","tracerConfig","empty","MetricsLive","metricReader","temporality","metricTemporality","LoggerLive","logRecordProcessor","mergeWithExisting","loggerMergeWithExisting","layerLoggerProvider","loggerProviderConfig","mergeAll","provideMerge","layerEmpty"],"sources":["../src/NodeSdk.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/Resource.d.ts
CHANGED
|
@@ -1,20 +1,38 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* OpenTelemetry resource service and layers.
|
|
3
|
+
*
|
|
4
|
+
* An OpenTelemetry resource identifies the process or service that emits spans,
|
|
5
|
+
* metrics, and logs. This module stores that resource in Effect context and
|
|
6
|
+
* provides layers for creating it from explicit service metadata, from
|
|
7
|
+
* `OTEL_SERVICE_NAME` and `OTEL_RESOURCE_ATTRIBUTES`, or as an empty resource.
|
|
8
|
+
* It also includes `configToAttributes` for turning service metadata into raw
|
|
9
|
+
* OpenTelemetry attributes.
|
|
10
|
+
*
|
|
11
|
+
* @since 4.0.0
|
|
3
12
|
*/
|
|
4
13
|
import type * as OtelApi from "@opentelemetry/api";
|
|
5
14
|
import * as Resources from "@opentelemetry/resources";
|
|
15
|
+
import * as Context from "effect/Context";
|
|
6
16
|
import * as Layer from "effect/Layer";
|
|
7
|
-
|
|
8
|
-
declare const Resource_base: ServiceMap.ServiceClass<Resource, "@effect/opentelemetry/Resource", Resources.Resource>;
|
|
17
|
+
declare const Resource_base: Context.ServiceClass<Resource, "@effect/opentelemetry/Resource", Resources.Resource>;
|
|
9
18
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
19
|
+
* Service tag for OpenTelemetry metadata attached to emitted telemetry.
|
|
20
|
+
*
|
|
21
|
+
* **When to use**
|
|
22
|
+
*
|
|
23
|
+
* Use to provide process, service, and deployment metadata that should be
|
|
24
|
+
* attached to spans, metrics, and logs.
|
|
25
|
+
*
|
|
26
|
+
* @category services
|
|
27
|
+
* @since 4.0.0
|
|
12
28
|
*/
|
|
13
29
|
export declare class Resource extends Resource_base {
|
|
14
30
|
}
|
|
15
31
|
/**
|
|
16
|
-
*
|
|
17
|
-
*
|
|
32
|
+
* Creates a `Resource` layer from service metadata and additional OpenTelemetry attributes.
|
|
33
|
+
*
|
|
34
|
+
* @category layers
|
|
35
|
+
* @since 4.0.0
|
|
18
36
|
*/
|
|
19
37
|
export declare const layer: (config: {
|
|
20
38
|
readonly serviceName: string;
|
|
@@ -22,8 +40,30 @@ export declare const layer: (config: {
|
|
|
22
40
|
readonly attributes?: OtelApi.Attributes;
|
|
23
41
|
}) => Layer.Layer<Resource, never, never>;
|
|
24
42
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
43
|
+
* Converts resource configuration into OpenTelemetry attributes, adding service name, optional service version, and telemetry SDK metadata.
|
|
44
|
+
*
|
|
45
|
+
* **When to use**
|
|
46
|
+
*
|
|
47
|
+
* Use to turn explicit service metadata into a raw OpenTelemetry attribute map
|
|
48
|
+
* for lower-level resource construction or merging with environment-derived
|
|
49
|
+
* attributes via `layerFromEnv`.
|
|
50
|
+
*
|
|
51
|
+
* **Details**
|
|
52
|
+
*
|
|
53
|
+
* The returned record copies `attributes` first, then sets `service.name`,
|
|
54
|
+
* `telemetry.sdk.name`, and `telemetry.sdk.language`. `service.version` is
|
|
55
|
+
* included only when `serviceVersion` is provided.
|
|
56
|
+
*
|
|
57
|
+
* **Gotchas**
|
|
58
|
+
*
|
|
59
|
+
* Custom values for `service.name` and `telemetry.sdk.*` are overwritten by this
|
|
60
|
+
* helper. An empty `serviceVersion` is treated as absent.
|
|
61
|
+
*
|
|
62
|
+
* @see {@link layer} for creating a `Resource` layer from explicit metadata
|
|
63
|
+
* @see {@link layerFromEnv} for merging attributes with OpenTelemetry environment variables
|
|
64
|
+
*
|
|
65
|
+
* @category configuration
|
|
66
|
+
* @since 4.0.0
|
|
27
67
|
*/
|
|
28
68
|
export declare const configToAttributes: (options: {
|
|
29
69
|
readonly serviceName: string;
|
|
@@ -31,13 +71,17 @@ export declare const configToAttributes: (options: {
|
|
|
31
71
|
readonly attributes?: OtelApi.Attributes;
|
|
32
72
|
}) => Record<string, string>;
|
|
33
73
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
74
|
+
* Creates a `Resource` layer from OpenTelemetry environment variables, optionally merging additional attributes.
|
|
75
|
+
*
|
|
76
|
+
* @category layers
|
|
77
|
+
* @since 4.0.0
|
|
36
78
|
*/
|
|
37
79
|
export declare const layerFromEnv: (additionalAttributes?: OtelApi.Attributes | undefined) => Layer.Layer<Resource>;
|
|
38
80
|
/**
|
|
39
|
-
*
|
|
40
|
-
*
|
|
81
|
+
* Layer that provides an empty OpenTelemetry resource.
|
|
82
|
+
*
|
|
83
|
+
* @category layers
|
|
84
|
+
* @since 4.0.0
|
|
41
85
|
*/
|
|
42
86
|
export declare const layerEmpty: Layer.Layer<Resource, never, never>;
|
|
43
87
|
export {};
|
package/dist/Resource.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAIrD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;AAErC;;;;;;;;;;GAUG;AACH,qBAAa,QAAS,SAAQ,aAGO;CAAG;AAExC;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ;IAC5B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAA;CACzC,wCAIE,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,kBAAkB,GAAI,SAAS;IAC1C,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;IAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,UAAU,CAAA;CACzC,KAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAaxB,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GACvB,uBACI,OAAO,CAAC,UAAU,GAClB,SAAS,KACZ,KAAK,CAAC,KAAK,CAAC,QAAQ,CA2BpB,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,qCAGtB,CAAA"}
|
package/dist/Resource.js
CHANGED
|
@@ -2,22 +2,53 @@ import * as Resources from "@opentelemetry/resources";
|
|
|
2
2
|
import * as OtelSemConv from "@opentelemetry/semantic-conventions";
|
|
3
3
|
import * as Arr from "effect/Array";
|
|
4
4
|
import * as Config from "effect/Config";
|
|
5
|
+
import * as Context from "effect/Context";
|
|
5
6
|
import * as Effect from "effect/Effect";
|
|
6
7
|
import * as Layer from "effect/Layer";
|
|
7
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* Service tag for OpenTelemetry metadata attached to emitted telemetry.
|
|
10
|
+
*
|
|
11
|
+
* **When to use**
|
|
12
|
+
*
|
|
13
|
+
* Use to provide process, service, and deployment metadata that should be
|
|
14
|
+
* attached to spans, metrics, and logs.
|
|
15
|
+
*
|
|
16
|
+
* @category services
|
|
17
|
+
* @since 4.0.0
|
|
11
18
|
*/
|
|
12
|
-
export class Resource extends /*#__PURE__*/
|
|
19
|
+
export class Resource extends /*#__PURE__*/Context.Service()("@effect/opentelemetry/Resource") {}
|
|
13
20
|
/**
|
|
14
|
-
*
|
|
15
|
-
*
|
|
21
|
+
* Creates a `Resource` layer from service metadata and additional OpenTelemetry attributes.
|
|
22
|
+
*
|
|
23
|
+
* @category layers
|
|
24
|
+
* @since 4.0.0
|
|
16
25
|
*/
|
|
17
26
|
export const layer = config => Layer.succeed(Resource, Resources.resourceFromAttributes(configToAttributes(config)));
|
|
18
27
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
28
|
+
* Converts resource configuration into OpenTelemetry attributes, adding service name, optional service version, and telemetry SDK metadata.
|
|
29
|
+
*
|
|
30
|
+
* **When to use**
|
|
31
|
+
*
|
|
32
|
+
* Use to turn explicit service metadata into a raw OpenTelemetry attribute map
|
|
33
|
+
* for lower-level resource construction or merging with environment-derived
|
|
34
|
+
* attributes via `layerFromEnv`.
|
|
35
|
+
*
|
|
36
|
+
* **Details**
|
|
37
|
+
*
|
|
38
|
+
* The returned record copies `attributes` first, then sets `service.name`,
|
|
39
|
+
* `telemetry.sdk.name`, and `telemetry.sdk.language`. `service.version` is
|
|
40
|
+
* included only when `serviceVersion` is provided.
|
|
41
|
+
*
|
|
42
|
+
* **Gotchas**
|
|
43
|
+
*
|
|
44
|
+
* Custom values for `service.name` and `telemetry.sdk.*` are overwritten by this
|
|
45
|
+
* helper. An empty `serviceVersion` is treated as absent.
|
|
46
|
+
*
|
|
47
|
+
* @see {@link layer} for creating a `Resource` layer from explicit metadata
|
|
48
|
+
* @see {@link layerFromEnv} for merging attributes with OpenTelemetry environment variables
|
|
49
|
+
*
|
|
50
|
+
* @category configuration
|
|
51
|
+
* @since 4.0.0
|
|
21
52
|
*/
|
|
22
53
|
export const configToAttributes = options => {
|
|
23
54
|
const attributes = {
|
|
@@ -32,12 +63,14 @@ export const configToAttributes = options => {
|
|
|
32
63
|
return attributes;
|
|
33
64
|
};
|
|
34
65
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
66
|
+
* Creates a `Resource` layer from OpenTelemetry environment variables, optionally merging additional attributes.
|
|
67
|
+
*
|
|
68
|
+
* @category layers
|
|
69
|
+
* @since 4.0.0
|
|
37
70
|
*/
|
|
38
71
|
export const layerFromEnv = additionalAttributes => Layer.effect(Resource, Effect.gen(function* () {
|
|
39
72
|
const serviceName = yield* Config.option(Config.string("OTEL_SERVICE_NAME"));
|
|
40
|
-
const attributes = yield* Config.string("OTEL_RESOURCE_ATTRIBUTES").pipe(Config.withDefault(
|
|
73
|
+
const attributes = yield* Config.string("OTEL_RESOURCE_ATTRIBUTES").pipe(Config.withDefault(""), Config.map(s => {
|
|
41
74
|
const attrs = s.split(",");
|
|
42
75
|
return Arr.reduce(attrs, {}, (acc, attr) => {
|
|
43
76
|
const parts = attr.split("=");
|
|
@@ -57,8 +90,10 @@ export const layerFromEnv = additionalAttributes => Layer.effect(Resource, Effec
|
|
|
57
90
|
return Resources.resourceFromAttributes(attributes);
|
|
58
91
|
}).pipe(Effect.orDie));
|
|
59
92
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
93
|
+
* Layer that provides an empty OpenTelemetry resource.
|
|
94
|
+
*
|
|
95
|
+
* @category layers
|
|
96
|
+
* @since 4.0.0
|
|
62
97
|
*/
|
|
63
98
|
export const layerEmpty = /*#__PURE__*/Layer.succeed(Resource, /*#__PURE__*/Resources.emptyResource());
|
|
64
99
|
//# sourceMappingURL=Resource.js.map
|
package/dist/Resource.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.js","names":["Resources","OtelSemConv","Arr","Config","
|
|
1
|
+
{"version":3,"file":"Resource.js","names":["Resources","OtelSemConv","Arr","Config","Context","Effect","Layer","Resource","Service","layer","config","succeed","resourceFromAttributes","configToAttributes","options","attributes","undefined","ATTR_SERVICE_NAME","serviceName","ATTR_TELEMETRY_SDK_NAME","ATTR_TELEMETRY_SDK_LANGUAGE","globalThis","document","TELEMETRY_SDK_LANGUAGE_VALUE_NODEJS","TELEMETRY_SDK_LANGUAGE_VALUE_WEBJS","serviceVersion","ATTR_SERVICE_VERSION","layerFromEnv","additionalAttributes","effect","gen","option","string","pipe","withDefault","map","s","attrs","split","reduce","acc","attr","parts","length","trim","_tag","value","Object","assign","orDie","layerEmpty","emptyResource"],"sources":["../src/Resource.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/Tracer.d.ts
CHANGED
|
@@ -1,49 +1,78 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Bridges Effect tracing into OpenTelemetry by installing an Effect `Tracer`
|
|
3
|
+
* that creates OpenTelemetry spans, records attributes, events, links, errors,
|
|
4
|
+
* and status, and keeps OpenTelemetry context active while traced effects run.
|
|
5
|
+
* Use this module when an application already has an OpenTelemetry
|
|
6
|
+
* `TracerProvider`, or when the Node and Web SDK layers should expose Effect
|
|
7
|
+
* spans to OTLP, console, or other OpenTelemetry-compatible exporters.
|
|
8
|
+
*
|
|
9
|
+
* The layer constructors wire Effect's tracer service to either the global
|
|
10
|
+
* OpenTelemetry tracer provider or an explicitly provided `OtelTracer`. This
|
|
11
|
+
* module does not create exporters or span processors by itself, so spans are
|
|
12
|
+
* exported only when the provider has been configured by the application or by
|
|
13
|
+
* the Node/Web SDK layers. Parentage is taken from Effect spans first and can
|
|
14
|
+
* also attach to the active OpenTelemetry context, while `makeExternalSpan` and
|
|
15
|
+
* `withSpanContext` are the entry points for continuing an incoming remote
|
|
16
|
+
* trace. Preserve `traceFlags` and `traceState` when building external spans;
|
|
17
|
+
* otherwise sampling defaults to sampled and trace state cannot be propagated.
|
|
18
|
+
*
|
|
19
|
+
* @since 4.0.0
|
|
3
20
|
*/
|
|
4
21
|
import * as Otel from "@opentelemetry/api";
|
|
5
22
|
import * as Cause from "effect/Cause";
|
|
23
|
+
import * as Context from "effect/Context";
|
|
6
24
|
import * as Effect from "effect/Effect";
|
|
7
25
|
import * as Layer from "effect/Layer";
|
|
8
|
-
import * as ServiceMap from "effect/ServiceMap";
|
|
9
26
|
import * as Tracer from "effect/Tracer";
|
|
10
27
|
import { Resource } from "./Resource.ts";
|
|
11
|
-
declare const OtelTracer_base:
|
|
28
|
+
declare const OtelTracer_base: Context.ServiceClass<OtelTracer, "@effect/opentelemetry/Tracer", Otel.Tracer>;
|
|
12
29
|
/**
|
|
13
|
-
*
|
|
14
|
-
*
|
|
30
|
+
* Context service containing the OpenTelemetry `Tracer` used to create spans for Effect tracing.
|
|
31
|
+
*
|
|
32
|
+
* @category services
|
|
33
|
+
* @since 4.0.0
|
|
15
34
|
*/
|
|
16
35
|
export declare class OtelTracer extends OtelTracer_base {
|
|
17
36
|
}
|
|
18
|
-
declare const OtelTracerProvider_base:
|
|
37
|
+
declare const OtelTracerProvider_base: Context.ServiceClass<OtelTracerProvider, "@effect/opentelemetry/Tracer/OtelTracerProvider", Otel.TracerProvider>;
|
|
19
38
|
/**
|
|
20
|
-
*
|
|
21
|
-
*
|
|
39
|
+
* Context service containing the OpenTelemetry `TracerProvider` used to obtain tracers.
|
|
40
|
+
*
|
|
41
|
+
* @category services
|
|
42
|
+
* @since 4.0.0
|
|
22
43
|
*/
|
|
23
44
|
export declare class OtelTracerProvider extends OtelTracerProvider_base {
|
|
24
45
|
}
|
|
25
|
-
declare const OtelTraceFlags_base:
|
|
46
|
+
declare const OtelTraceFlags_base: Context.ServiceClass<OtelTraceFlags, "@effect/opentelemetry/Tracer/OtelTraceFlags", Otel.TraceFlags>;
|
|
26
47
|
/**
|
|
27
|
-
*
|
|
28
|
-
*
|
|
48
|
+
* Context service containing OpenTelemetry trace flags used when constructing external span contexts.
|
|
49
|
+
*
|
|
50
|
+
* @category services
|
|
51
|
+
* @since 4.0.0
|
|
29
52
|
*/
|
|
30
53
|
export declare class OtelTraceFlags extends OtelTraceFlags_base {
|
|
31
54
|
}
|
|
32
|
-
declare const OtelTraceState_base:
|
|
55
|
+
declare const OtelTraceState_base: Context.ServiceClass<OtelTraceState, "@effect/opentelemetry/Tracer/OtelTraceState", Otel.TraceState>;
|
|
33
56
|
/**
|
|
34
|
-
*
|
|
35
|
-
*
|
|
57
|
+
* Context service containing OpenTelemetry trace state used when constructing external span contexts.
|
|
58
|
+
*
|
|
59
|
+
* @category services
|
|
60
|
+
* @since 4.0.0
|
|
36
61
|
*/
|
|
37
62
|
export declare class OtelTraceState extends OtelTraceState_base {
|
|
38
63
|
}
|
|
39
64
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
65
|
+
* Creates an Effect `Tracer` implementation backed by the configured OpenTelemetry tracer.
|
|
66
|
+
*
|
|
67
|
+
* @category constructors
|
|
68
|
+
* @since 4.0.0
|
|
42
69
|
*/
|
|
43
70
|
export declare const make: Effect.Effect<Tracer.Tracer, never, OtelTracer>;
|
|
44
71
|
/**
|
|
45
|
-
*
|
|
46
|
-
*
|
|
72
|
+
* Creates an Effect external span from an OpenTelemetry span context, preserving trace flags and trace state when provided.
|
|
73
|
+
*
|
|
74
|
+
* @category constructors
|
|
75
|
+
* @since 4.0.0
|
|
47
76
|
*/
|
|
48
77
|
export declare const makeExternalSpan: (options: {
|
|
49
78
|
readonly traceId: string;
|
|
@@ -52,76 +81,104 @@ export declare const makeExternalSpan: (options: {
|
|
|
52
81
|
readonly traceState?: string | Otel.TraceState | undefined;
|
|
53
82
|
}) => Tracer.ExternalSpan;
|
|
54
83
|
/**
|
|
55
|
-
*
|
|
56
|
-
*
|
|
84
|
+
* Layer that provides the current global OpenTelemetry tracer provider.
|
|
85
|
+
*
|
|
86
|
+
* @category layers
|
|
87
|
+
* @since 4.0.0
|
|
57
88
|
*/
|
|
58
89
|
export declare const layerGlobalProvider: Layer.Layer<OtelTracerProvider>;
|
|
59
90
|
/**
|
|
60
|
-
*
|
|
61
|
-
*
|
|
91
|
+
* Layer that creates an OpenTelemetry tracer from the provided tracer provider and resource metadata.
|
|
92
|
+
*
|
|
93
|
+
* @category layers
|
|
94
|
+
* @since 4.0.0
|
|
62
95
|
*/
|
|
63
96
|
export declare const layerTracer: Layer.Layer<OtelTracer, never, OtelTracerProvider | Resource>;
|
|
64
97
|
/**
|
|
65
|
-
*
|
|
66
|
-
*
|
|
98
|
+
* Layer that creates an OpenTelemetry tracer from the global tracer provider and the current resource.
|
|
99
|
+
*
|
|
100
|
+
* @category layers
|
|
101
|
+
* @since 4.0.0
|
|
67
102
|
*/
|
|
68
103
|
export declare const layerGlobalTracer: Layer.Layer<OtelTracer, never, Resource>;
|
|
69
104
|
/**
|
|
70
|
-
*
|
|
71
|
-
*
|
|
105
|
+
* Layer that installs an Effect tracer backed by the global OpenTelemetry tracer provider.
|
|
106
|
+
*
|
|
107
|
+
* @category layers
|
|
108
|
+
* @since 4.0.0
|
|
72
109
|
*/
|
|
73
110
|
export declare const layerGlobal: Layer.Layer<OtelTracer, never, Resource>;
|
|
74
111
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
112
|
+
* Layer that installs the Effect tracer using an `OtelTracer` already provided in the environment.
|
|
113
|
+
*
|
|
114
|
+
* @category layers
|
|
115
|
+
* @since 4.0.0
|
|
77
116
|
*/
|
|
78
117
|
export declare const layerWithoutOtelTracer: Layer.Layer<never, never, OtelTracer>;
|
|
79
118
|
/**
|
|
80
|
-
*
|
|
81
|
-
*
|
|
119
|
+
* Layer that creates an OpenTelemetry tracer from a provider and resource, then installs it as the Effect tracer.
|
|
120
|
+
*
|
|
121
|
+
* **When to use**
|
|
122
|
+
*
|
|
123
|
+
* Use when you already provide an `OtelTracerProvider` and a `Resource`, and
|
|
124
|
+
* want Effect spans backed by a tracer derived from them.
|
|
125
|
+
*
|
|
126
|
+
* @see {@link layerTracer} for creating only the OpenTelemetry tracer service
|
|
127
|
+
* @see {@link layerGlobal} for installing the Effect tracer from the global provider
|
|
128
|
+
* @see {@link layerWithoutOtelTracer} for installing an already-provided `OtelTracer`
|
|
129
|
+
*
|
|
130
|
+
* @category layers
|
|
131
|
+
* @since 4.0.0
|
|
82
132
|
*/
|
|
83
133
|
export declare const layer: Layer.Layer<OtelTracer, never, OtelTracerProvider | Resource>;
|
|
84
134
|
/**
|
|
85
|
-
*
|
|
135
|
+
* Gets the current OpenTelemetry span.
|
|
86
136
|
*
|
|
87
|
-
*
|
|
88
|
-
* `NodeSdk.layer`, etc.) and the lightweight OTLP module (`OtlpTracer.layer`).
|
|
137
|
+
* **Details**
|
|
89
138
|
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
139
|
+
* This accessor works with both the official OpenTelemetry API, such as
|
|
140
|
+
* `Tracer.layer` and `NodeSdk.layer`, and the lightweight OTLP module, such as
|
|
141
|
+
* `OtlpTracer.layer`. When using OTLP, the returned span is a wrapper that
|
|
142
|
+
* conforms to the OpenTelemetry `Span` interface.
|
|
92
143
|
*
|
|
93
|
-
* @since 1.0.0
|
|
94
144
|
* @category accessors
|
|
145
|
+
* @since 4.0.0
|
|
95
146
|
*/
|
|
96
147
|
export declare const currentOtelSpan: Effect.Effect<Otel.Span, Cause.NoSuchElementError>;
|
|
97
148
|
/**
|
|
98
|
-
*
|
|
149
|
+
* Sets an effect's parent span from the given OpenTelemetry `SpanContext`.
|
|
150
|
+
*
|
|
151
|
+
* **When to use**
|
|
99
152
|
*
|
|
100
|
-
*
|
|
101
|
-
*
|
|
153
|
+
* Use when you need an effect to continue a trace from a parent span context
|
|
154
|
+
* produced by OpenTelemetry instrumentation outside Effect.
|
|
102
155
|
*
|
|
103
|
-
* @
|
|
104
|
-
* @
|
|
156
|
+
* @category propagation
|
|
157
|
+
* @since 4.0.0
|
|
105
158
|
*/
|
|
106
159
|
export declare const withSpanContext: {
|
|
107
160
|
/**
|
|
108
|
-
*
|
|
161
|
+
* Sets an effect's parent span from the given OpenTelemetry `SpanContext`.
|
|
109
162
|
*
|
|
110
|
-
*
|
|
111
|
-
* attach to a parent span.
|
|
163
|
+
* **When to use**
|
|
112
164
|
*
|
|
113
|
-
*
|
|
114
|
-
*
|
|
165
|
+
* Use when you need an effect to continue a trace from a parent span context
|
|
166
|
+
* produced by OpenTelemetry instrumentation outside Effect.
|
|
167
|
+
*
|
|
168
|
+
* @category propagation
|
|
169
|
+
* @since 4.0.0
|
|
115
170
|
*/
|
|
116
171
|
(spanContext: Otel.SpanContext): <A, E, R>(self: Effect.Effect<A, E, R>) => Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
|
|
117
172
|
/**
|
|
118
|
-
*
|
|
173
|
+
* Sets an effect's parent span from the given OpenTelemetry `SpanContext`.
|
|
174
|
+
*
|
|
175
|
+
* **When to use**
|
|
119
176
|
*
|
|
120
|
-
*
|
|
121
|
-
*
|
|
177
|
+
* Use when you need an effect to continue a trace from a parent span context
|
|
178
|
+
* produced by OpenTelemetry instrumentation outside Effect.
|
|
122
179
|
*
|
|
123
|
-
* @
|
|
124
|
-
* @
|
|
180
|
+
* @category propagation
|
|
181
|
+
* @since 4.0.0
|
|
125
182
|
*/
|
|
126
183
|
<A, E, R>(self: Effect.Effect<A, E, R>, spanContext: Otel.SpanContext): Effect.Effect<A, E, Exclude<R, Tracer.ParentSpan>>;
|
|
127
184
|
};
|
package/dist/Tracer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../src/Tracer.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../src/Tracer.ts"],"names":[],"mappings":"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"}
|