@effect/opentelemetry 4.0.0-beta.9 → 4.0.0-beta.91

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/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
- * @since 1.0.0
12
- * @category Layers
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
- * @since 1.0.0
27
- * @category Layers
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
@@ -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":"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","ignoreList":[]}
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":[]}
@@ -1,20 +1,38 @@
1
1
  /**
2
- * @since 1.0.0
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
- import * as ServiceMap from "effect/ServiceMap";
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
- * @since 1.0.0
11
- * @category Services
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
- * @since 1.0.0
17
- * @category Layers
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
- * @since 1.0.0
26
- * @category Configuration
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
- * @since 1.0.0
35
- * @category Layers
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
- * @since 1.0.0
40
- * @category Layers
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 {};
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../src/Resource.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,oBAAoB,CAAA;AAClD,OAAO,KAAK,SAAS,MAAM,0BAA0B,CAAA;AAKrD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;;AAE/C;;;GAGG;AACH,qBAAa,QAAS,SAAQ,aAGO;CAAG;AAExC;;;GAGG;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;;;GAGG;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;;;GAGG;AACH,eAAO,MAAM,YAAY,GACvB,uBACI,OAAO,CAAC,UAAU,GAClB,SAAS,KACZ,KAAK,CAAC,KAAK,CAAC,QAAQ,CA2BpB,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU,qCAGtB,CAAA"}
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
- * @since 1.0.0
10
- * @category Services
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__*/ServiceMap.Service()("@effect/opentelemetry/Resource") {}
19
+ export class Resource extends /*#__PURE__*/Context.Service()("@effect/opentelemetry/Resource") {}
13
20
  /**
14
- * @since 1.0.0
15
- * @category Layers
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
- * @since 1.0.0
20
- * @category Configuration
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
- * @since 1.0.0
36
- * @category Layers
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(() => ""), Config.map(s => {
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
- * @since 1.0.0
61
- * @category Layers
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
@@ -1 +1 @@
1
- {"version":3,"file":"Resource.js","names":["Resources","OtelSemConv","Arr","Config","Effect","Layer","ServiceMap","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":[]}
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
- * @since 1.0.0
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: ServiceMap.ServiceClass<OtelTracer, "@effect/opentelemetry/Tracer", Otel.Tracer>;
28
+ declare const OtelTracer_base: Context.ServiceClass<OtelTracer, "@effect/opentelemetry/Tracer", Otel.Tracer>;
12
29
  /**
13
- * @since 1.0.0
14
- * @category Services
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: ServiceMap.ServiceClass<OtelTracerProvider, "@effect/opentelemetry/Tracer/OtelTracerProvider", Otel.TracerProvider>;
37
+ declare const OtelTracerProvider_base: Context.ServiceClass<OtelTracerProvider, "@effect/opentelemetry/Tracer/OtelTracerProvider", Otel.TracerProvider>;
19
38
  /**
20
- * @since 1.0.0
21
- * @category Services
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: ServiceMap.ServiceClass<OtelTraceFlags, "@effect/opentelemetry/Tracer/OtelTraceFlags", Otel.TraceFlags>;
46
+ declare const OtelTraceFlags_base: Context.ServiceClass<OtelTraceFlags, "@effect/opentelemetry/Tracer/OtelTraceFlags", Otel.TraceFlags>;
26
47
  /**
27
- * @since 1.0.0
28
- * @category Services
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: ServiceMap.ServiceClass<OtelTraceState, "@effect/opentelemetry/Tracer/OtelTraceState", Otel.TraceState>;
55
+ declare const OtelTraceState_base: Context.ServiceClass<OtelTraceState, "@effect/opentelemetry/Tracer/OtelTraceState", Otel.TraceState>;
33
56
  /**
34
- * @since 1.0.0
35
- * @category Services
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
- * @since 1.0.0
41
- * @category Constructors
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
- * @since 1.0.0
46
- * @category Constructors
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
- * @since 1.0.0
56
- * @category Layers
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
- * @since 1.0.0
61
- * @category Layers
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
- * @since 1.0.0
66
- * @category Layers
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
- * @since 1.0.0
71
- * @category Layers
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
- * @since 1.0.0
76
- * @category Layers
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
- * @since 1.0.0
81
- * @category Layers
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
- * Get the current OpenTelemetry span.
135
+ * Gets the current OpenTelemetry span.
86
136
  *
87
- * Works with both the official OpenTelemetry API (via `Tracer.layer`,
88
- * `NodeSdk.layer`, etc.) and the lightweight OTLP module (`OtlpTracer.layer`).
137
+ * **Details**
89
138
  *
90
- * When using OTLP, the returned span is a wrapper that conforms to the
91
- * OpenTelemetry `Span` interface.
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
- * Set the effect's parent span from the given opentelemetry `SpanContext`.
149
+ * Sets an effect's parent span from the given OpenTelemetry `SpanContext`.
150
+ *
151
+ * **When to use**
99
152
  *
100
- * This is handy when you set up OpenTelemetry outside of Effect and want to
101
- * attach to a parent span.
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
- * @since 1.0.0
104
- * @category Propagation
156
+ * @category propagation
157
+ * @since 4.0.0
105
158
  */
106
159
  export declare const withSpanContext: {
107
160
  /**
108
- * Set the effect's parent span from the given opentelemetry `SpanContext`.
161
+ * Sets an effect's parent span from the given OpenTelemetry `SpanContext`.
109
162
  *
110
- * This is handy when you set up OpenTelemetry outside of Effect and want to
111
- * attach to a parent span.
163
+ * **When to use**
112
164
  *
113
- * @since 1.0.0
114
- * @category Propagation
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
- * Set the effect's parent span from the given opentelemetry `SpanContext`.
173
+ * Sets an effect's parent span from the given OpenTelemetry `SpanContext`.
174
+ *
175
+ * **When to use**
119
176
  *
120
- * This is handy when you set up OpenTelemetry outside of Effect and want to
121
- * attach to a parent span.
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
- * @since 1.0.0
124
- * @category Propagation
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
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../src/Tracer.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAE1C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAGvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,UAAU,MAAM,mBAAmB,CAAA;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;;AAMxC;;;GAGG;AACH,qBAAa,UAAW,SAAQ,eAGG;CAAG;;AAEtC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAGc;CAAG;;AAEzD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAGc;CAAG;;AAErD;;;GAGG;AACH,qBAAa,cAAe,SAAQ,mBAGc;CAAG;AAMrD;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,UAAU,CAyBhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,SAAS;IACxC,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,KAAG,MAAM,CAAC,YAyBV,CAAA;AAMD;;;GAGG;AACH,eAAO,MAAM,mBAAmB,EAAE,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAG/D,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAUrF,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAEtE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,CAEhE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,sBAAsB,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,UAAU,CAAqC,CAAA;AAE9G;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,EAAE,kBAAkB,GAAG,QAAQ,CAE/E,CAAA;AASD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,kBAAkB,CAK9E,CAAA;AAyFD;;;;;;;;GAQG;AACH,eAAO,MAAM,eAAe,EAAE;IAC5B;;;;;;;;OAQG;IACH,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EACvC,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KACzB,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;IACvD;;;;;;;;OAQG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAA;CAI5D,CAAA"}
1
+ {"version":3,"file":"Tracer.d.ts","sourceRoot":"","sources":["../src/Tracer.ts"],"names":[],"mappings":"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"}