@effect/opentelemetry 4.0.0-beta.65 → 4.0.0-beta.67

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 CHANGED
@@ -1,5 +1,26 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Connects Effect's logging system to the OpenTelemetry Logs SDK.
3
+ *
4
+ * This module provides a logger provider service, an Effect `Logger` that
5
+ * emits OpenTelemetry log records, and layers for installing that logger in an
6
+ * application. It is commonly used to send Effect logs to OTLP, console, or
7
+ * vendor-specific exporters through OpenTelemetry `LogRecordProcessor`s while
8
+ * keeping logs correlated with Effect fibers and spans. Emitted records include
9
+ * the current fiber id, span identifiers when a parent span is present, log
10
+ * annotations, log spans, severity text, and the matching OpenTelemetry
11
+ * severity number.
12
+ *
13
+ * Log export depends on the configured OpenTelemetry processors and exporters;
14
+ * this module creates the provider and logger, but does not choose an exporter.
15
+ * Use the `Resource` layer to attach service and deployment metadata to the
16
+ * provider rather than repeating that data on every log record. When using
17
+ * `layerLoggerProvider`, the provider is scoped and is force-flushed and shut
18
+ * down when the layer is released, with a configurable shutdown timeout. If you
19
+ * supply or manage an OpenTelemetry provider yourself, make sure it is flushed
20
+ * and shut down during application shutdown, especially when using batching
21
+ * processors that may otherwise drop buffered logs.
22
+ *
23
+ * @since 4.0.0
3
24
  */
4
25
  import { SeverityNumber } from "@opentelemetry/api-logs";
5
26
  import * as Otel from "@opentelemetry/sdk-logs";
@@ -13,8 +34,10 @@ import type * as LogLevel from "effect/LogLevel";
13
34
  import { Resource } from "./Resource.ts";
14
35
  declare const OtelLoggerProvider_base: Context.ServiceClass<OtelLoggerProvider, "@effect/opentelemetry/Logger/OtelLoggerProvider", Otel.LoggerProvider>;
15
36
  /**
16
- * @since 1.0.0
37
+ * Context service containing the OpenTelemetry `LoggerProvider` used to emit Effect log records.
38
+ *
17
39
  * @category Services
40
+ * @since 4.0.0
18
41
  */
19
42
  export declare class OtelLoggerProvider extends OtelLoggerProvider_base {
20
43
  }
@@ -26,18 +49,22 @@ export declare class OtelLoggerProvider extends OtelLoggerProvider_base {
26
49
  * (e.g. Info=20000), which falls outside the OTel spec — backends that
27
50
  * validate the field map such values to `UNSPECIFIED`.
28
51
  *
29
- * @since 1.0.0
30
52
  * @category Conversions
53
+ * @since 4.0.0
31
54
  */
32
55
  export declare const logLevelToSeverityNumber: (level: LogLevel.LogLevel) => SeverityNumber;
33
56
  /**
34
- * @since 1.0.0
57
+ * Creates an Effect logger that emits log records through the configured OpenTelemetry logger provider.
58
+ *
35
59
  * @category Constructors
60
+ * @since 4.0.0
36
61
  */
37
62
  export declare const make: Effect.Effect<Logger.Logger<unknown, void>, never, OtelLoggerProvider>;
38
63
  /**
39
- * @since 1.0.0
64
+ * Creates a layer that installs the OpenTelemetry-backed Effect logger, merging with existing loggers by default.
65
+ *
40
66
  * @category Layers
67
+ * @since 4.0.0
41
68
  */
42
69
  export declare const layer: (options: {
43
70
  /**
@@ -52,8 +79,10 @@ export declare const layer: (options: {
52
79
  readonly mergeWithExisting?: boolean | undefined;
53
80
  }) => Layer.Layer<never, never, OtelLoggerProvider>;
54
81
  /**
55
- * @since 1.0.0
82
+ * Creates a scoped OpenTelemetry logger provider from one or more log record processors, using the current `Resource` and flushing and shutting down the provider when the layer is released.
83
+ *
56
84
  * @category Layers
85
+ * @since 4.0.0
57
86
  */
58
87
  export declare const layerLoggerProvider: (processor: Otel.LogRecordProcessor | NonEmptyReadonlyArray<Otel.LogRecordProcessor>, config?: Omit<Otel.LoggerProviderConfig, "resource"> & {
59
88
  readonly shutdownTimeout?: Duration.Input | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAKhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;;AAExC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAGc;CAAG;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,QAAQ,CAAC,QAAQ,KAAG,cAiBnE,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAC5B,KAAK,EACL,kBAAkB,CAqClB,CAAA;AAEF;;;GAGG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjD,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAG5C,CAAA;AAEJ;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACnF,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,GAAG;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KACA,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAqB/C,CAAA"}
1
+ {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,IAAI,MAAM,yBAAyB,CAAA;AAC/C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAGzD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAKhD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;;AAExC;;;;;GAKG;AACH,qBAAa,kBAAmB,SAAQ,uBAGc;CAAG;AAEzD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GAAI,OAAO,QAAQ,CAAC,QAAQ,KAAG,cAiBnE,CAAA;AAED;;;;;GAKG;AACH,eAAO,MAAM,IAAI,EAAE,MAAM,CAAC,MAAM,CAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,EAC5B,KAAK,EACL,kBAAkB,CAqClB,CAAA;AAEF;;;;;GAKG;AACH,eAAO,MAAM,KAAK,GAAI,SAAS;IAC7B;;;;;;;;OAQG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CACjD,KAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,CAG5C,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,IAAI,CAAC,kBAAkB,GAAG,qBAAqB,CAAC,IAAI,CAAC,kBAAkB,CAAC,EACnF,SAAS,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,GAAG;IACrD,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KACA,KAAK,CAAC,KAAK,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAqB/C,CAAA"}
package/dist/Logger.js CHANGED
@@ -1,5 +1,26 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Connects Effect's logging system to the OpenTelemetry Logs SDK.
3
+ *
4
+ * This module provides a logger provider service, an Effect `Logger` that
5
+ * emits OpenTelemetry log records, and layers for installing that logger in an
6
+ * application. It is commonly used to send Effect logs to OTLP, console, or
7
+ * vendor-specific exporters through OpenTelemetry `LogRecordProcessor`s while
8
+ * keeping logs correlated with Effect fibers and spans. Emitted records include
9
+ * the current fiber id, span identifiers when a parent span is present, log
10
+ * annotations, log spans, severity text, and the matching OpenTelemetry
11
+ * severity number.
12
+ *
13
+ * Log export depends on the configured OpenTelemetry processors and exporters;
14
+ * this module creates the provider and logger, but does not choose an exporter.
15
+ * Use the `Resource` layer to attach service and deployment metadata to the
16
+ * provider rather than repeating that data on every log record. When using
17
+ * `layerLoggerProvider`, the provider is scoped and is force-flushed and shut
18
+ * down when the layer is released, with a configurable shutdown timeout. If you
19
+ * supply or manage an OpenTelemetry provider yourself, make sure it is flushed
20
+ * and shut down during application shutdown, especially when using batching
21
+ * processors that may otherwise drop buffered logs.
22
+ *
23
+ * @since 4.0.0
3
24
  */
4
25
  import { SeverityNumber } from "@opentelemetry/api-logs";
5
26
  import * as Otel from "@opentelemetry/sdk-logs";
@@ -15,8 +36,10 @@ import * as Tracer from "effect/Tracer";
15
36
  import { nanosToHrTime, unknownToAttributeValue } from "./internal/attributes.js";
16
37
  import { Resource } from "./Resource.js";
17
38
  /**
18
- * @since 1.0.0
39
+ * Context service containing the OpenTelemetry `LoggerProvider` used to emit Effect log records.
40
+ *
19
41
  * @category Services
42
+ * @since 4.0.0
20
43
  */
21
44
  export class OtelLoggerProvider extends /*#__PURE__*/Context.Service()("@effect/opentelemetry/Logger/OtelLoggerProvider") {}
22
45
  /**
@@ -27,8 +50,8 @@ export class OtelLoggerProvider extends /*#__PURE__*/Context.Service()("@effect/
27
50
  * (e.g. Info=20000), which falls outside the OTel spec — backends that
28
51
  * validate the field map such values to `UNSPECIFIED`.
29
52
  *
30
- * @since 1.0.0
31
53
  * @category Conversions
54
+ * @since 4.0.0
32
55
  */
33
56
  export const logLevelToSeverityNumber = level => {
34
57
  switch (level) {
@@ -49,8 +72,10 @@ export const logLevelToSeverityNumber = level => {
49
72
  }
50
73
  };
51
74
  /**
52
- * @since 1.0.0
75
+ * Creates an Effect logger that emits log records through the configured OpenTelemetry logger provider.
76
+ *
53
77
  * @category Constructors
78
+ * @since 4.0.0
54
79
  */
55
80
  export const make = /*#__PURE__*/Effect.gen(function* () {
56
81
  const loggerProvider = yield* OtelLoggerProvider;
@@ -85,15 +110,19 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
85
110
  });
86
111
  });
87
112
  /**
88
- * @since 1.0.0
113
+ * Creates a layer that installs the OpenTelemetry-backed Effect logger, merging with existing loggers by default.
114
+ *
89
115
  * @category Layers
116
+ * @since 4.0.0
90
117
  */
91
118
  export const layer = options => Logger.layer([make], {
92
119
  mergeWithExisting: options.mergeWithExisting ?? true
93
120
  });
94
121
  /**
95
- * @since 1.0.0
122
+ * Creates a scoped OpenTelemetry logger provider from one or more log record processors, using the current `Resource` and flushing and shutting down the provider when the layer is released.
123
+ *
96
124
  * @category Layers
125
+ * @since 4.0.0
97
126
  */
98
127
  export const layerLoggerProvider = (processor, config) => Layer.effect(OtelLoggerProvider, Effect.gen(function* () {
99
128
  const resource = yield* Resource;
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","names":["SeverityNumber","Otel","Arr","Clock","Context","Effect","Layer","Logger","Predicate","References","Tracer","nanosToHrTime","unknownToAttributeValue","Resource","OtelLoggerProvider","Service","logLevelToSeverityNumber","level","TRACE","DEBUG","INFO","WARN","ERROR","FATAL","UNSPECIFIED","make","gen","loggerProvider","clock","otelLogger","getLogger","options","attributes","fiberId","fiber","id","span","getOrUndefined","context","ParentSpan","isNotUndefined","spanId","traceId","key","value","Object","entries","getRef","CurrentLogAnnotations","now","date","getTime","label","startTime","CurrentLogSpans","message","ensure","map","hrTime","currentTimeNanosUnsafe","emit","body","length","severityText","logLevel","severityNumber","timestamp","observedTimestamp","layer","mergeWithExisting","layerLoggerProvider","processor","config","effect","resource","acquireRelease","sync","LoggerProvider","undefined","processors","provider","promise","forceFlush","then","shutdown","pipe","ignore","interruptible","timeoutOption","shutdownTimeout"],"sources":["../src/Logger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Logger.js","names":["SeverityNumber","Otel","Arr","Clock","Context","Effect","Layer","Logger","Predicate","References","Tracer","nanosToHrTime","unknownToAttributeValue","Resource","OtelLoggerProvider","Service","logLevelToSeverityNumber","level","TRACE","DEBUG","INFO","WARN","ERROR","FATAL","UNSPECIFIED","make","gen","loggerProvider","clock","otelLogger","getLogger","options","attributes","fiberId","fiber","id","span","getOrUndefined","context","ParentSpan","isNotUndefined","spanId","traceId","key","value","Object","entries","getRef","CurrentLogAnnotations","now","date","getTime","label","startTime","CurrentLogSpans","message","ensure","map","hrTime","currentTimeNanosUnsafe","emit","body","length","severityText","logLevel","severityNumber","timestamp","observedTimestamp","layer","mergeWithExisting","layerLoggerProvider","processor","config","effect","resource","acquireRelease","sync","LoggerProvider","undefined","processors","provider","promise","forceFlush","then","shutdown","pipe","ignore","interruptible","timeoutOption","shutdownTimeout"],"sources":["../src/Logger.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/Metrics.d.ts CHANGED
@@ -1,5 +1,21 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Bridges Effect metrics into OpenTelemetry by exposing the current Effect
3
+ * metric snapshot as an OpenTelemetry `MetricProducer` and registering it with
4
+ * one or more SDK `MetricReader`s. Use this module when an application already
5
+ * records metrics with Effect and needs those counters, gauges, histograms,
6
+ * frequencies, or summaries exported through OTLP, Prometheus, or another
7
+ * OpenTelemetry-compatible reader/exporter.
8
+ *
9
+ * The `layer` constructor is the usual entry point, and is also used by the
10
+ * Node and Web SDK layers when `metricReader` configuration is supplied. Metric
11
+ * readers are acquired inside the layer scope and shut down when the scope is
12
+ * released, so periodic exporters need the runtime to stay alive long enough to
13
+ * collect and export data. The exporter or backend determines whether
14
+ * cumulative or delta aggregation is expected; this module defaults to
15
+ * cumulative temporality and can be configured with `temporality: "delta"` for
16
+ * backends that require interval-based values.
17
+ *
18
+ * @since 4.0.0
3
19
  */
4
20
  import type { MetricProducer, MetricReader } from "@opentelemetry/sdk-metrics";
5
21
  import type * as Arr from "effect/Array";
@@ -19,22 +35,22 @@ import { Resource } from "./Resource.ts";
19
35
  * - `delta`: Reports changes since the last export. Each interval is
20
36
  * independent with no dependency on previous measurements.
21
37
  *
22
- * @since 1.0.0
23
38
  * @category Models
39
+ * @since 4.0.0
24
40
  */
25
41
  export type TemporalityPreference = "cumulative" | "delta";
26
42
  /**
27
43
  * Creates an OpenTelemetry metric producer from Effect metrics.
28
44
  *
29
- * @since 1.0.0
30
45
  * @category Constructors
46
+ * @since 4.0.0
31
47
  */
32
48
  export declare const makeProducer: (temporality?: TemporalityPreference) => Effect.Effect<MetricProducer, never, Resource>;
33
49
  /**
34
50
  * Registers a metric producer with one or more metric readers.
35
51
  *
36
- * @since 1.0.0
37
52
  * @category Constructors
53
+ * @since 4.0.0
38
54
  */
39
55
  export declare const registerProducer: (self: MetricProducer, metricReader: LazyArg<MetricReader | Arr.NonEmptyReadonlyArray<MetricReader>>, options?: {
40
56
  readonly shutdownTimeout?: Duration.Input | undefined;
@@ -42,7 +58,8 @@ export declare const registerProducer: (self: MetricProducer, metricReader: Lazy
42
58
  /**
43
59
  * Creates a Layer that registers a metric producer with metric readers.
44
60
  *
45
- * @example
61
+ * **Example** (Creating a metrics layer with temporality)
62
+ *
46
63
  * ```ts
47
64
  * import { Metrics } from "@effect/opentelemetry"
48
65
  * import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics"
@@ -66,8 +83,8 @@ export declare const registerProducer: (self: MetricProducer, metricReader: Lazy
66
83
  * )
67
84
  * ```
68
85
  *
69
- * @since 1.0.0
70
86
  * @category Layers
87
+ * @since 4.0.0
71
88
  */
72
89
  export declare const layer: (evaluate: LazyArg<MetricReader | Arr.NonEmptyReadonlyArray<MetricReader>>, options?: {
73
90
  readonly shutdownTimeout?: Duration.Input | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../src/Metrics.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,OAAO,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,cAAc,qBAAqB,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAK5G,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,cAAc,EACpB,cAAc,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,EAC7E,UAAU;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KACA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAkB5C,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,EACzE,UAAU;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;CACzD,KACA,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAIjC,CAAA"}
1
+ {"version":3,"file":"Metrics.d.ts","sourceRoot":"","sources":["../src/Metrics.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,KAAK,GAAG,MAAM,cAAc,CAAA;AACxC,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAC9C,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AACrC,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAE1C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAExC;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,OAAO,CAAA;AAE1D;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,cAAc,qBAAqB,KAAG,MAAM,CAAC,MAAM,CAAC,cAAc,EAAE,KAAK,EAAE,QAAQ,CAK5G,CAAA;AAEJ;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,MAAM,cAAc,EACpB,cAAc,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,EAC7E,UAAU;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KACA,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,CAkB5C,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,KAAK,GAChB,UAAU,OAAO,CAAC,YAAY,GAAG,GAAG,CAAC,qBAAqB,CAAC,YAAY,CAAC,CAAC,EACzE,UAAU;IACR,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;IACrD,QAAQ,CAAC,WAAW,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAA;CACzD,KACA,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,CAIjC,CAAA"}
package/dist/Metrics.js CHANGED
@@ -5,8 +5,8 @@ import { Resource } from "./Resource.js";
5
5
  /**
6
6
  * Creates an OpenTelemetry metric producer from Effect metrics.
7
7
  *
8
- * @since 1.0.0
9
8
  * @category Constructors
9
+ * @since 4.0.0
10
10
  */
11
11
  export const makeProducer = temporality => Effect.gen(function* () {
12
12
  const resource = yield* Resource;
@@ -16,8 +16,8 @@ export const makeProducer = temporality => Effect.gen(function* () {
16
16
  /**
17
17
  * Registers a metric producer with one or more metric readers.
18
18
  *
19
- * @since 1.0.0
20
19
  * @category Constructors
20
+ * @since 4.0.0
21
21
  */
22
22
  export const registerProducer = (self, metricReader, options) => Effect.acquireRelease(Effect.sync(() => {
23
23
  const reader = metricReader();
@@ -28,7 +28,8 @@ export const registerProducer = (self, metricReader, options) => Effect.acquireR
28
28
  /**
29
29
  * Creates a Layer that registers a metric producer with metric readers.
30
30
  *
31
- * @example
31
+ * **Example** (Creating a metrics layer with temporality)
32
+ *
32
33
  * ```ts
33
34
  * import { Metrics } from "@effect/opentelemetry"
34
35
  * import { PeriodicExportingMetricReader } from "@opentelemetry/sdk-metrics"
@@ -52,8 +53,8 @@ export const registerProducer = (self, metricReader, options) => Effect.acquireR
52
53
  * )
53
54
  * ```
54
55
  *
55
- * @since 1.0.0
56
56
  * @category Layers
57
+ * @since 4.0.0
57
58
  */
58
59
  export const layer = (evaluate, options) => Layer.effectDiscard(Effect.flatMap(makeProducer(options?.temporality), producer => registerProducer(producer, evaluate, options)));
59
60
  //# sourceMappingURL=Metrics.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Metrics.js","names":["Effect","Layer","MetricProducerImpl","Resource","makeProducer","temporality","gen","resource","services","context","registerProducer","self","metricReader","options","acquireRelease","sync","reader","readers","Array","isArray","forEach","setMetricProducer","promise","Promise","all","map","shutdown","pipe","ignore","interruptible","timeoutOption","shutdownTimeout","layer","evaluate","effectDiscard","flatMap","producer"],"sources":["../src/Metrics.ts"],"sourcesContent":[null],"mappings":"AAMA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,QAAQ,QAAQ,eAAe;AAiBxC;;;;;;AAMA,OAAO,MAAMC,YAAY,GAAIC,WAAmC,IAC9DL,MAAM,CAACM,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAG,OAAOJ,QAAQ;EAChC,MAAMK,QAAQ,GAAG,OAAOR,MAAM,CAACS,OAAO,EAAS;EAC/C,OAAO,IAAIP,kBAAkB,CAACK,QAAQ,EAAEC,QAAQ,EAAEH,WAAW,CAAC;AAChE,CAAC,CAAC;AAEJ;;;;;;AAMA,OAAO,MAAMK,gBAAgB,GAAGA,CAC9BC,IAAoB,EACpBC,YAA6E,EAC7EC,OAEC,KAEDb,MAAM,CAACc,cAAc,CACnBd,MAAM,CAACe,IAAI,CAAC,MAAK;EACf,MAAMC,MAAM,GAAGJ,YAAY,EAAE;EAC7B,MAAMK,OAAO,GAAwBC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAQ;EACrFC,OAAO,CAACG,OAAO,CAAEJ,MAAM,IAAKA,MAAM,CAACK,iBAAiB,CAACV,IAAI,CAAC,CAAC;EAC3D,OAAOM,OAAO;AAChB,CAAC,CAAC,EACDA,OAAO,IACNjB,MAAM,CAACsB,OAAO,CAAC,MACbC,OAAO,CAACC,GAAG,CACTP,OAAO,CAACQ,GAAG,CAAET,MAAM,IAAKA,MAAM,CAACU,QAAQ,EAAE,CAAC,CAC3C,CACF,CAACC,IAAI,CACJ3B,MAAM,CAAC4B,MAAM,EACb5B,MAAM,CAAC6B,aAAa,EACpB7B,MAAM,CAAC8B,aAAa,CAACjB,OAAO,EAAEkB,eAAe,IAAI,IAAI,CAAC,CACvD,CACJ;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BA,OAAO,MAAMC,KAAK,GAAGA,CACnBC,QAAyE,EACzEpB,OAGC,KAEDZ,KAAK,CAACiC,aAAa,CAAClC,MAAM,CAACmC,OAAO,CAChC/B,YAAY,CAACS,OAAO,EAAER,WAAW,CAAC,EACjC+B,QAAQ,IAAK1B,gBAAgB,CAAC0B,QAAQ,EAAEH,QAAQ,EAAEpB,OAAO,CAAC,CAC5D,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Metrics.js","names":["Effect","Layer","MetricProducerImpl","Resource","makeProducer","temporality","gen","resource","services","context","registerProducer","self","metricReader","options","acquireRelease","sync","reader","readers","Array","isArray","forEach","setMetricProducer","promise","Promise","all","map","shutdown","pipe","ignore","interruptible","timeoutOption","shutdownTimeout","layer","evaluate","effectDiscard","flatMap","producer"],"sources":["../src/Metrics.ts"],"sourcesContent":[null],"mappings":"AAsBA,OAAO,KAAKA,MAAM,MAAM,eAAe;AAEvC,OAAO,KAAKC,KAAK,MAAM,cAAc;AAErC,SAASC,kBAAkB,QAAQ,uBAAuB;AAC1D,SAASC,QAAQ,QAAQ,eAAe;AAiBxC;;;;;;AAMA,OAAO,MAAMC,YAAY,GAAIC,WAAmC,IAC9DL,MAAM,CAACM,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAG,OAAOJ,QAAQ;EAChC,MAAMK,QAAQ,GAAG,OAAOR,MAAM,CAACS,OAAO,EAAS;EAC/C,OAAO,IAAIP,kBAAkB,CAACK,QAAQ,EAAEC,QAAQ,EAAEH,WAAW,CAAC;AAChE,CAAC,CAAC;AAEJ;;;;;;AAMA,OAAO,MAAMK,gBAAgB,GAAGA,CAC9BC,IAAoB,EACpBC,YAA6E,EAC7EC,OAEC,KAEDb,MAAM,CAACc,cAAc,CACnBd,MAAM,CAACe,IAAI,CAAC,MAAK;EACf,MAAMC,MAAM,GAAGJ,YAAY,EAAE;EAC7B,MAAMK,OAAO,GAAwBC,KAAK,CAACC,OAAO,CAACH,MAAM,CAAC,GAAGA,MAAM,GAAG,CAACA,MAAM,CAAQ;EACrFC,OAAO,CAACG,OAAO,CAAEJ,MAAM,IAAKA,MAAM,CAACK,iBAAiB,CAACV,IAAI,CAAC,CAAC;EAC3D,OAAOM,OAAO;AAChB,CAAC,CAAC,EACDA,OAAO,IACNjB,MAAM,CAACsB,OAAO,CAAC,MACbC,OAAO,CAACC,GAAG,CACTP,OAAO,CAACQ,GAAG,CAAET,MAAM,IAAKA,MAAM,CAACU,QAAQ,EAAE,CAAC,CAC3C,CACF,CAACC,IAAI,CACJ3B,MAAM,CAAC4B,MAAM,EACb5B,MAAM,CAAC6B,aAAa,EACpB7B,MAAM,CAAC8B,aAAa,CAACjB,OAAO,EAAEkB,eAAe,IAAI,IAAI,CAAC,CACvD,CACJ;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,OAAO,MAAMC,KAAK,GAAGA,CACnBC,QAAyE,EACzEpB,OAGC,KAEDZ,KAAK,CAACiC,aAAa,CAAClC,MAAM,CAACmC,OAAO,CAChC/B,YAAY,CAACS,OAAO,EAAER,WAAW,CAAC,EACjC+B,QAAQ,IAAK1B,gBAAgB,CAAC0B,QAAQ,EAAEH,QAAQ,EAAEpB,OAAO,CAAC,CAC5D,CAAC","ignoreList":[]}
package/dist/NodeSdk.d.ts CHANGED
@@ -1,5 +1,27 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Provides an Effect layer for configuring OpenTelemetry in Node.js
3
+ * processes. The module wires the Effect tracer, metrics producer, and logger
4
+ * into OpenTelemetry SDK providers when span processors, metric readers, or log
5
+ * record processors are supplied, and it builds the shared resource from
6
+ * `OTEL_SERVICE_NAME`, `OTEL_RESOURCE_ATTRIBUTES`, and optional explicit
7
+ * service metadata.
8
+ *
9
+ * Use this module in Node services, workers, CLIs, or server runtimes that need
10
+ * Effect spans, metrics, and logs exported through OpenTelemetry processors and
11
+ * exporters. Telemetry is enabled only for the configured signal types, so an
12
+ * application can install tracing alone, metrics alone, logging alone, or any
13
+ * combination of them from the same layer.
14
+ *
15
+ * The layer is scoped. Tracer and logger providers are force-flushed and shut
16
+ * down when the scope is released, metric readers are shut down with the same
17
+ * lifecycle, and all shutdown waits are bounded by `shutdownTimeout` with a
18
+ * default of three seconds. Keep the layer scope alive for the lifetime of the
19
+ * process and release it during graceful shutdown so batched exporters have a
20
+ * chance to export final telemetry. When combining this layer with Node
21
+ * auto-instrumentations, register instrumentation before importing modules that
22
+ * should be patched, because many Node instrumentations hook module loading.
23
+ *
24
+ * @since 4.0.0
3
25
  */
4
26
  import type * as Otel from "@opentelemetry/api";
5
27
  import type { LoggerProviderConfig, LogRecordProcessor } from "@opentelemetry/sdk-logs";
@@ -14,8 +36,10 @@ import * as Metrics from "./Metrics.ts";
14
36
  import * as Resource from "./Resource.ts";
15
37
  import * as Tracer from "./Tracer.ts";
16
38
  /**
17
- * @since 1.0.0
39
+ * Configuration for the Node OpenTelemetry layer, including optional tracing, metrics, logging, resource, and shutdown settings.
40
+ *
18
41
  * @category Models
42
+ * @since 4.0.0
19
43
  */
20
44
  export interface Configuration {
21
45
  readonly spanProcessor?: SpanProcessor | ReadonlyArray<SpanProcessor> | undefined;
@@ -33,31 +57,41 @@ export interface Configuration {
33
57
  readonly shutdownTimeout?: Duration.Input | undefined;
34
58
  }
35
59
  /**
36
- * @since 1.0.0
60
+ * Creates a scoped Node OpenTelemetry tracer provider from one or more span processors and shuts it down when the layer is released.
61
+ *
37
62
  * @category Layers
63
+ * @since 4.0.0
38
64
  */
39
65
  export declare const layerTracerProvider: (processor: SpanProcessor | NonEmptyReadonlyArray<SpanProcessor>, config?: Omit<TracerConfig, "resource"> & {
40
66
  readonly shutdownTimeout?: Duration.Input | undefined;
41
67
  }) => Layer.Layer<Tracer.OtelTracerProvider, never, Resource.Resource>;
42
68
  /**
43
- * @since 1.0.0
69
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
70
+ *
44
71
  * @category Layers
72
+ * @since 4.0.0
45
73
  */
46
74
  export declare const layer: {
47
75
  /**
48
- * @since 1.0.0
76
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
77
+ *
49
78
  * @category Layers
79
+ * @since 4.0.0
50
80
  */
51
81
  (evaluate: LazyArg<Configuration>): Layer.Layer<Resource.Resource>;
52
82
  /**
53
- * @since 1.0.0
83
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
84
+ *
54
85
  * @category Layers
86
+ * @since 4.0.0
55
87
  */
56
88
  <R, E>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>;
57
89
  };
58
90
  /**
59
- * @since 2.0.0
91
+ * Layer that provides an empty OpenTelemetry `Resource`.
92
+ *
60
93
  * @category layer
94
+ * @since 2.0.0
61
95
  */
62
96
  export declare const layerEmpty: Layer.Layer<Resource.Resource>;
63
97
  //# sourceMappingURL=NodeSdk.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeSdk.d.ts","sourceRoot":"","sources":["../src/NodeSdk.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"NodeSdk.d.ts","sourceRoot":"","sources":["../src/NodeSdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,OAAO,KAAK,KAAK,IAAI,MAAM,oBAAoB,CAAA;AAC/C,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AACvF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAA;AAC9D,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAEhF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AACzD,OAAO,KAAK,KAAK,QAAQ,MAAM,iBAAiB,CAAA;AAChD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAY,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAGrC,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AACvC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,aAAa,CAAC,EAAE,aAAa,GAAG,aAAa,CAAC,aAAa,CAAC,GAAG,SAAS,CAAA;IACjF,QAAQ,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG,SAAS,CAAA;IAClE,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,aAAa,CAAC,YAAY,CAAC,GAAG,SAAS,CAAA;IAC9E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,OAAO,CAAC,qBAAqB,GAAG,SAAS,CAAA;IACtE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,GAAG,aAAa,CAAC,kBAAkB,CAAC,GAAG,SAAS,CAAA;IAChG,QAAQ,CAAC,oBAAoB,CAAC,EAAE,IAAI,CAAC,oBAAoB,EAAE,UAAU,CAAC,GAAG,SAAS,CAAA;IAClF,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACtD,QAAQ,CAAC,QAAQ,CAAC,EAAE;QAClB,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;QAC5B,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAA;QAChC,QAAQ,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,UAAU,CAAA;KACtC,GAAG,SAAS,CAAA;IACb,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAC/D,SAAS,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,GAAG;IACxC,QAAQ,CAAC,eAAe,CAAC,EAAE,QAAQ,CAAC,KAAK,GAAG,SAAS,CAAA;CACtD,KACA,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAsB/D,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;;;;OAKG;IACH,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE;;;;;OAKG;IACH,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;CA2CzF,CAAA;AAEH;;;;;GAKG;AACH,eAAO,MAAM,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAuB,CAAA"}
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
11
+ * Creates a scoped Node OpenTelemetry tracer provider from one or more span processors and shuts it down when the layer is released.
12
+ *
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,10 @@ 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
28
+ * Creates a Node OpenTelemetry layer from configuration, enabling tracing, metrics, and logging only when their processors or readers are supplied.
29
+ *
27
30
  * @category Layers
31
+ * @since 4.0.0
28
32
  */
29
33
  export const layer = evaluate => Layer.unwrap(Effect.gen(function* () {
30
34
  const config = yield* Effect.isEffect(evaluate) ? evaluate : Effect.sync(evaluate);
@@ -46,8 +50,10 @@ export const layer = evaluate => Layer.unwrap(Effect.gen(function* () {
46
50
  return Layer.mergeAll(TracerLive, MetricsLive, LoggerLive).pipe(Layer.provideMerge(ResourceLive));
47
51
  }));
48
52
  /**
49
- * @since 2.0.0
53
+ * Layer that provides an empty OpenTelemetry `Resource`.
54
+ *
50
55
  * @category layer
56
+ * @since 2.0.0
51
57
  */
52
58
  export const layerEmpty = Resource.layerEmpty;
53
59
  //# 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,5 +1,22 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Provides the OpenTelemetry resource used by the Effect OpenTelemetry layers.
3
+ *
4
+ * A resource describes the entity that produces telemetry, such as a service,
5
+ * process, deployment, or browser application. The tracing, metrics, logging,
6
+ * and SDK layers use this module's `Resource` service to configure providers
7
+ * and identify emitted telemetry with service-level metadata.
8
+ *
9
+ * Use `layer` when service metadata is known in code, `layerFromEnv` when
10
+ * deploying with `OTEL_SERVICE_NAME` and `OTEL_RESOURCE_ATTRIBUTES`, and
11
+ * `layerEmpty` when no resource attributes should be provided. Resource
12
+ * attributes are for stable process or service metadata, not per-span or
13
+ * per-log data. The explicit `layer` helper sets `service.name` and the
14
+ * `telemetry.sdk.*` attributes after merging custom attributes, so those keys
15
+ * are controlled by this integration. With `layerFromEnv`, `OTEL_SERVICE_NAME`
16
+ * overrides `service.name` from `OTEL_RESOURCE_ATTRIBUTES`, and additional
17
+ * attributes passed to the layer are merged last.
18
+ *
19
+ * @since 4.0.0
3
20
  */
4
21
  import type * as OtelApi from "@opentelemetry/api";
5
22
  import * as Resources from "@opentelemetry/resources";
@@ -7,14 +24,18 @@ import * as Context from "effect/Context";
7
24
  import * as Layer from "effect/Layer";
8
25
  declare const Resource_base: Context.ServiceClass<Resource, "@effect/opentelemetry/Resource", Resources.Resource>;
9
26
  /**
10
- * @since 1.0.0
27
+ * Context service containing the OpenTelemetry `Resource` associated with emitted telemetry.
28
+ *
11
29
  * @category Services
30
+ * @since 4.0.0
12
31
  */
13
32
  export declare class Resource extends Resource_base {
14
33
  }
15
34
  /**
16
- * @since 1.0.0
35
+ * Creates a `Resource` layer from service metadata and additional OpenTelemetry attributes.
36
+ *
17
37
  * @category Layers
38
+ * @since 4.0.0
18
39
  */
19
40
  export declare const layer: (config: {
20
41
  readonly serviceName: string;
@@ -22,8 +43,10 @@ export declare const layer: (config: {
22
43
  readonly attributes?: OtelApi.Attributes;
23
44
  }) => Layer.Layer<Resource, never, never>;
24
45
  /**
25
- * @since 1.0.0
46
+ * Converts resource configuration into OpenTelemetry attributes, adding service name, optional service version, and telemetry SDK metadata.
47
+ *
26
48
  * @category Configuration
49
+ * @since 4.0.0
27
50
  */
28
51
  export declare const configToAttributes: (options: {
29
52
  readonly serviceName: string;
@@ -31,13 +54,17 @@ export declare const configToAttributes: (options: {
31
54
  readonly attributes?: OtelApi.Attributes;
32
55
  }) => Record<string, string>;
33
56
  /**
34
- * @since 1.0.0
57
+ * Creates a `Resource` layer from OpenTelemetry environment variables, optionally merging additional attributes.
58
+ *
35
59
  * @category Layers
60
+ * @since 4.0.0
36
61
  */
37
62
  export declare const layerFromEnv: (additionalAttributes?: OtelApi.Attributes | undefined) => Layer.Layer<Resource>;
38
63
  /**
39
- * @since 1.0.0
64
+ * Layer that provides an empty OpenTelemetry resource.
65
+ *
40
66
  * @category Layers
67
+ * @since 4.0.0
41
68
  */
42
69
  export declare const layerEmpty: Layer.Layer<Resource, never, never>;
43
70
  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;AAIrD,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;;AAErC;;;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;;;;;;;;;;;;;;;;;;;GAmBG;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;;;;;GAKG;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;;;;;GAKG;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
@@ -6,18 +6,24 @@ import * as Context from "effect/Context";
6
6
  import * as Effect from "effect/Effect";
7
7
  import * as Layer from "effect/Layer";
8
8
  /**
9
- * @since 1.0.0
9
+ * Context service containing the OpenTelemetry `Resource` associated with emitted telemetry.
10
+ *
10
11
  * @category Services
12
+ * @since 4.0.0
11
13
  */
12
14
  export class Resource extends /*#__PURE__*/Context.Service()("@effect/opentelemetry/Resource") {}
13
15
  /**
14
- * @since 1.0.0
16
+ * Creates a `Resource` layer from service metadata and additional OpenTelemetry attributes.
17
+ *
15
18
  * @category Layers
19
+ * @since 4.0.0
16
20
  */
17
21
  export const layer = config => Layer.succeed(Resource, Resources.resourceFromAttributes(configToAttributes(config)));
18
22
  /**
19
- * @since 1.0.0
23
+ * Converts resource configuration into OpenTelemetry attributes, adding service name, optional service version, and telemetry SDK metadata.
24
+ *
20
25
  * @category Configuration
26
+ * @since 4.0.0
21
27
  */
22
28
  export const configToAttributes = options => {
23
29
  const attributes = {
@@ -32,8 +38,10 @@ export const configToAttributes = options => {
32
38
  return attributes;
33
39
  };
34
40
  /**
35
- * @since 1.0.0
41
+ * Creates a `Resource` layer from OpenTelemetry environment variables, optionally merging additional attributes.
42
+ *
36
43
  * @category Layers
44
+ * @since 4.0.0
37
45
  */
38
46
  export const layerFromEnv = additionalAttributes => Layer.effect(Resource, Effect.gen(function* () {
39
47
  const serviceName = yield* Config.option(Config.string("OTEL_SERVICE_NAME"));
@@ -57,8 +65,10 @@ export const layerFromEnv = additionalAttributes => Layer.effect(Resource, Effec
57
65
  return Resources.resourceFromAttributes(attributes);
58
66
  }).pipe(Effect.orDie));
59
67
  /**
60
- * @since 1.0.0
68
+ * Layer that provides an empty OpenTelemetry resource.
69
+ *
61
70
  * @category Layers
71
+ * @since 4.0.0
62
72
  */
63
73
  export const layerEmpty = /*#__PURE__*/Layer.succeed(Resource, /*#__PURE__*/Resources.emptyResource());
64
74
  //# sourceMappingURL=Resource.js.map
@@ -1 +1 @@
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":[]}
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":[]}