@effect/opentelemetry 4.0.0-beta.1 → 4.0.0-beta.100

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.
Files changed (52) hide show
  1. package/dist/NodeSdk.d.ts +89 -17
  2. package/dist/NodeSdk.d.ts.map +1 -1
  3. package/dist/NodeSdk.js +31 -8
  4. package/dist/NodeSdk.js.map +1 -1
  5. package/dist/OtelLogger.d.ts +99 -0
  6. package/dist/OtelLogger.d.ts.map +1 -0
  7. package/dist/OtelLogger.js +139 -0
  8. package/dist/OtelLogger.js.map +1 -0
  9. package/dist/{Metrics.d.ts → OtelMetrics.d.ts} +45 -21
  10. package/dist/OtelMetrics.d.ts.map +1 -0
  11. package/dist/{Metrics.js → OtelMetrics.js} +27 -12
  12. package/dist/OtelMetrics.js.map +1 -0
  13. package/dist/OtelTracer.d.ts +186 -0
  14. package/dist/OtelTracer.d.ts.map +1 -0
  15. package/dist/{Tracer.js → OtelTracer.js} +129 -72
  16. package/dist/OtelTracer.js.map +1 -0
  17. package/dist/Resource.d.ts +57 -13
  18. package/dist/Resource.d.ts.map +1 -1
  19. package/dist/Resource.js +48 -13
  20. package/dist/Resource.js.map +1 -1
  21. package/dist/WebSdk.d.ts +82 -13
  22. package/dist/WebSdk.d.ts.map +1 -1
  23. package/dist/WebSdk.js +28 -7
  24. package/dist/WebSdk.js.map +1 -1
  25. package/dist/index.d.ts +12 -12
  26. package/dist/index.d.ts.map +1 -1
  27. package/dist/index.js +12 -12
  28. package/dist/index.js.map +1 -1
  29. package/dist/internal/attributes.js +5 -0
  30. package/dist/internal/attributes.js.map +1 -1
  31. package/dist/internal/metrics.js +5 -5
  32. package/dist/internal/metrics.js.map +1 -1
  33. package/package.json +22 -18
  34. package/src/NodeSdk.ts +90 -18
  35. package/src/OtelLogger.ts +193 -0
  36. package/src/{Metrics.ts → OtelMetrics.ts} +45 -21
  37. package/src/{Tracer.ts → OtelTracer.ts} +161 -101
  38. package/src/Resource.ts +58 -14
  39. package/src/WebSdk.ts +83 -14
  40. package/src/index.ts +12 -12
  41. package/src/internal/attributes.ts +7 -0
  42. package/src/internal/metrics.ts +7 -7
  43. package/dist/Logger.d.ts +0 -48
  44. package/dist/Logger.d.ts.map +0 -1
  45. package/dist/Logger.js +0 -76
  46. package/dist/Logger.js.map +0 -1
  47. package/dist/Metrics.d.ts.map +0 -1
  48. package/dist/Metrics.js.map +0 -1
  49. package/dist/Tracer.d.ts +0 -129
  50. package/dist/Tracer.d.ts.map +0 -1
  51. package/dist/Tracer.js.map +0 -1
  52. package/src/Logger.ts +0 -124
@@ -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,WAAY;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,YAAa;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,0BAEnB,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/WebSdk.d.ts CHANGED
@@ -1,5 +1,13 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * Browser OpenTelemetry setup for Effect applications.
3
+ *
4
+ * This module exports a `Configuration` type and layers for installing
5
+ * tracing, metrics, and logging in browser runtimes. The main `layer` builds
6
+ * the shared OpenTelemetry resource from explicit service metadata, then
7
+ * enables only the signal types that have processors or readers configured.
8
+ * `layerTracerProvider` creates a scoped `WebTracerProvider`.
9
+ *
10
+ * @since 4.0.0
3
11
  */
4
12
  import type * as Otel from "@opentelemetry/api";
5
13
  import type { LoggerProviderConfig, LogRecordProcessor } from "@opentelemetry/sdk-logs";
@@ -9,12 +17,14 @@ import type { NonEmptyReadonlyArray } from "effect/Array";
9
17
  import * as Effect from "effect/Effect";
10
18
  import { type LazyArg } from "effect/Function";
11
19
  import * as Layer from "effect/Layer";
12
- import * as Metrics from "./Metrics.ts";
20
+ import * as Metrics from "./OtelMetrics.ts";
21
+ import * as Tracer from "./OtelTracer.ts";
13
22
  import * as Resource from "./Resource.ts";
14
- import * as Tracer from "./Tracer.ts";
15
23
  /**
16
- * @since 1.0.0
17
- * @category Models
24
+ * Configuration for the Web OpenTelemetry layer, including resource metadata and optional tracing, metrics, and logging settings.
25
+ *
26
+ * @category models
27
+ * @since 4.0.0
18
28
  */
19
29
  export interface Configuration {
20
30
  readonly spanProcessor?: SpanProcessor | ReadonlyArray<SpanProcessor> | undefined;
@@ -31,23 +41,82 @@ export interface Configuration {
31
41
  };
32
42
  }
33
43
  /**
34
- * @since 1.0.0
35
- * @category Layers
44
+ * Creates a scoped Web OpenTelemetry tracer provider from one or more span processors and shuts it down when the layer is released.
45
+ *
46
+ * @category layers
47
+ * @since 4.0.0
36
48
  */
37
49
  export declare const layerTracerProvider: (processor: SpanProcessor | NonEmptyReadonlyArray<SpanProcessor>, config?: Omit<TracerConfig, "resource">) => Layer.Layer<Tracer.OtelTracerProvider, never, Resource.Resource>;
38
50
  /**
39
- * @since 1.0.0
40
- * @category Layers
51
+ * Creates a Web OpenTelemetry layer from configuration, providing the resource and enabling tracing, metrics, and logging when configured.
52
+ *
53
+ * **When to use**
54
+ *
55
+ * Use to install browser OpenTelemetry support when service metadata is
56
+ * configured in code and telemetry processors or readers are supplied directly.
57
+ *
58
+ * **Details**
59
+ *
60
+ * The configuration can be provided lazily or effectfully. The layer always
61
+ * provides `Resource.Resource`; tracing, metrics, and logging are installed only
62
+ * when the corresponding processors or readers are non-empty.
63
+ *
64
+ * **Gotchas**
65
+ *
66
+ * Browser resource metadata is explicit; this layer does not read
67
+ * OpenTelemetry environment variables. Empty processor or reader arrays are
68
+ * treated as not configured.
69
+ *
70
+ * @category layers
71
+ * @since 4.0.0
41
72
  */
42
73
  export declare const layer: {
43
74
  /**
44
- * @since 1.0.0
45
- * @category Layers
75
+ * Creates a Web OpenTelemetry layer from configuration, providing the resource and enabling tracing, metrics, and logging when configured.
76
+ *
77
+ * **When to use**
78
+ *
79
+ * Use to install browser OpenTelemetry support when service metadata is
80
+ * configured in code and telemetry processors or readers are supplied directly.
81
+ *
82
+ * **Details**
83
+ *
84
+ * The configuration can be provided lazily or effectfully. The layer always
85
+ * provides `Resource.Resource`; tracing, metrics, and logging are installed only
86
+ * when the corresponding processors or readers are non-empty.
87
+ *
88
+ * **Gotchas**
89
+ *
90
+ * Browser resource metadata is explicit; this layer does not read
91
+ * OpenTelemetry environment variables. Empty processor or reader arrays are
92
+ * treated as not configured.
93
+ *
94
+ * @category layers
95
+ * @since 4.0.0
46
96
  */
47
97
  (evaluate: LazyArg<Configuration>): Layer.Layer<Resource.Resource>;
48
98
  /**
49
- * @since 1.0.0
50
- * @category Layers
99
+ * Creates a Web OpenTelemetry layer from configuration, providing the resource and enabling tracing, metrics, and logging when configured.
100
+ *
101
+ * **When to use**
102
+ *
103
+ * Use to install browser OpenTelemetry support when service metadata is
104
+ * configured in code and telemetry processors or readers are supplied directly.
105
+ *
106
+ * **Details**
107
+ *
108
+ * The configuration can be provided lazily or effectfully. The layer always
109
+ * provides `Resource.Resource`; tracing, metrics, and logging are installed only
110
+ * when the corresponding processors or readers are non-empty.
111
+ *
112
+ * **Gotchas**
113
+ *
114
+ * Browser resource metadata is explicit; this layer does not read
115
+ * OpenTelemetry environment variables. Empty processor or reader arrays are
116
+ * treated as not configured.
117
+ *
118
+ * @category layers
119
+ * @since 4.0.0
51
120
  */
52
121
  <E, R>(evaluate: Effect.Effect<Configuration, E, R>): Layer.Layer<Resource.Resource, E, R>;
53
122
  };
@@ -1 +1 @@
1
- {"version":3,"file":"WebSdk.d.ts","sourceRoot":"","sources":["../src/WebSdk.ts"],"names":[],"mappings":"AAAA;;GAEG;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,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;;;GAGG;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,CAAA;IACtD,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,EAAE;QACjB,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,CAAA;CACF;AAED;;;GAGG;AACH,eAAO,MAAM,mBAAmB,GAC9B,WAAW,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAC/D,SAAS,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAoB/D,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;;OAGG;IACH,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE;;;OAGG;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;CAoCzF,CAAA"}
1
+ {"version":3,"file":"WebSdk.d.ts","sourceRoot":"","sources":["../src/WebSdk.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;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,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,kBAAkB,CAAA;AAC3C,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AACzC,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;;;;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,CAAA;IACtD,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,EAAE;QACjB,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,CAAA;CACF;AAED;;;;;GAKG;AACH,eAAO,MAAM,mBAAmB,cACnB,aAAa,GAAG,qBAAqB,CAAC,aAAa,CAAC,WACtD,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,KACtC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE,KAAK,EAAE,QAAQ,CAAC,QAAQ,CAoB/D,CAAA;AAEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,KAAK,EAAE;IAClB;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,CAAC,QAAQ,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAClE;;;;;;;;;;;;;;;;;;;;;;OAsBG;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;CAoCzF,CAAA"}
package/dist/WebSdk.js CHANGED
@@ -3,13 +3,15 @@ import * as Effect from "effect/Effect";
3
3
  import { constant } from "effect/Function";
4
4
  import * as Layer from "effect/Layer";
5
5
  import { isNonEmpty } from "./internal/utilities.js";
6
- import * as Logger from "./Logger.js";
7
- import * as Metrics from "./Metrics.js";
6
+ import * as Logger from "./OtelLogger.js";
7
+ import * as Metrics from "./OtelMetrics.js";
8
+ import * as Tracer from "./OtelTracer.js";
8
9
  import * as Resource from "./Resource.js";
9
- import * as Tracer from "./Tracer.js";
10
10
  /**
11
- * @since 1.0.0
12
- * @category Layers
11
+ * Creates a scoped Web 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.ignore(Effect.promise(() => provider.forceFlush().then(() => provider.shutdown()))));
24
26
  }));
25
27
  /**
26
- * @since 1.0.0
27
- * @category Layers
28
+ * Creates a Web OpenTelemetry layer from configuration, providing the resource and enabling tracing, metrics, and logging when configured.
29
+ *
30
+ * **When to use**
31
+ *
32
+ * Use to install browser OpenTelemetry support when service metadata is
33
+ * configured in code and telemetry processors or readers are supplied directly.
34
+ *
35
+ * **Details**
36
+ *
37
+ * The configuration can be provided lazily or effectfully. The layer always
38
+ * provides `Resource.Resource`; tracing, metrics, and logging are installed only
39
+ * when the corresponding processors or readers are non-empty.
40
+ *
41
+ * **Gotchas**
42
+ *
43
+ * Browser resource metadata is explicit; this layer does not read
44
+ * OpenTelemetry environment variables. Empty processor or reader arrays are
45
+ * treated as not configured.
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);
@@ -1 +1 @@
1
- {"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Resource","Tracer","layerTracerProvider","processor","config","effect","OtelTracerProvider","gen","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","ignore","promise","forceFlush","then","shutdown","layer","evaluate","unwrap","isEffect","ResourceLive","TracerLive","spanProcessor","provide","tracerConfig","empty","LoggerLive","logRecordProcessor","mergeWithExisting","loggerMergeWithExisting","layerLoggerProvider","loggerProviderConfig","MetricsLive","metricReader","temporality","metricTemporality","mergeAll","pipe","provideMerge"],"sources":["../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"AAOA,SAASA,iBAAiB,QAAQ,8BAA8B;AAEhE,OAAO,KAAKC,MAAM,MAAM,eAAe;AACvC,SAASC,QAAQ,QAAsB,iBAAiB;AACxD,OAAO,KAAKC,KAAK,MAAM,cAAc;AACrC,SAASC,UAAU,QAAQ,yBAAyB;AACpD,OAAO,KAAKC,MAAM,MAAM,aAAa;AACrC,OAAO,KAAKC,OAAO,MAAM,cAAc;AACvC,OAAO,KAAKC,QAAQ,MAAM,eAAe;AACzC,OAAO,KAAKC,MAAM,MAAM,aAAa;AAqBrC;;;;AAIA,OAAO,MAAMC,mBAAmB,GAAGA,CACjCC,SAA+D,EAC/DC,MAAuC,KAEvCR,KAAK,CAACS,MAAM,CACVJ,MAAM,CAACK,kBAAkB,EACzBZ,MAAM,CAACa,GAAG,CAAC,aAAS;EAClB,MAAMC,QAAQ,GAAG,OAAOR,QAAQ,CAACA,QAAQ;EACzC,OAAO,OAAON,MAAM,CAACe,cAAc,CACjCf,MAAM,CAACgB,IAAI,CAAC,MAAK;IACf,MAAMC,QAAQ,GAAG,IAAIlB,iBAAiB,CAAC;MACrC,IAAIW,MAAM,IAAIQ,SAAS,CAAC;MACxBJ,QAAQ;MACRK,cAAc,EAAEC,KAAK,CAACC,OAAO,CAACZ,SAAS,CAAC,GAAIA,SAAiB,GAAG,CAACA,SAAS;KAC3E,CAAC;IACF,OAAOQ,QAAQ;EACjB,CAAC,CAAC,EACDA,QAAQ,IACPjB,MAAM,CAACsB,MAAM,CACXtB,MAAM,CAACuB,OAAO,CAAC,MAAMN,QAAQ,CAACO,UAAU,EAAE,CAACC,IAAI,CAAC,MAAMR,QAAQ,CAACS,QAAQ,EAAE,CAAC,CAAC,CAC5E,CACJ;AACH,CAAC,CAAC,CACH;AAEH;;;;AAIA,OAAO,MAAMC,KAAK,GAYhBC,QAAyE,IAEzE1B,KAAK,CAAC2B,MAAM,CACV7B,MAAM,CAACa,GAAG,CAAC,aAAS;EAClB,MAAMH,MAAM,GAAG,OAAOV,MAAM,CAAC8B,QAAQ,CAACF,QAAQ,CAAC,GAC3CA,QAAwC,GACxC5B,MAAM,CAACgB,IAAI,CAACY,QAAQ,CAAC;EAEzB,MAAMG,YAAY,GAAGzB,QAAQ,CAACqB,KAAK,CAACjB,MAAM,CAACI,QAAQ,CAAC;EAEpD,MAAMkB,UAAU,GAAG7B,UAAU,CAACO,MAAM,CAACuB,aAAa,CAAC,GAC/C/B,KAAK,CAACgC,OAAO,CACb3B,MAAM,CAACoB,KAAK,EACZnB,mBAAmB,CAACE,MAAM,CAACuB,aAAa,EAAEvB,MAAM,CAACyB,YAAY,CAAC,CAC/D,GACCjC,KAAK,CAACkC,KAAK;EAEf,MAAMC,UAAU,GAAGlC,UAAU,CAACO,MAAM,CAAC4B,kBAAkB,CAAC,GACpDpC,KAAK,CAACgC,OAAO,CACb9B,MAAM,CAACuB,KAAK,CAAC;IAAEY,iBAAiB,EAAE7B,MAAM,CAAC8B;EAAuB,CAAE,CAAC,EACnEpC,MAAM,CAACqC,mBAAmB,CAAC/B,MAAM,CAAC4B,kBAAkB,EAAE5B,MAAM,CAACgC,oBAAoB,CAAC,CACnF,GACCxC,KAAK,CAACkC,KAAK;EAEf,MAAMO,WAAW,GAAGxC,UAAU,CAACO,MAAM,CAACkC,YAAY,CAAC,GAC/CvC,OAAO,CAACsB,KAAK,CAAC1B,QAAQ,CAACS,MAAM,CAACkC,YAAY,CAAC,EAAE;IAC7CC,WAAW,EAAEnC,MAAM,CAACoC;GACrB,CAAC,GACA5C,KAAK,CAACkC,KAAK;EAEf,OAAOlC,KAAK,CAAC6C,QAAQ,CAACf,UAAU,EAAEW,WAAW,EAAEN,UAAU,CAAC,CAACW,IAAI,CAC7D9C,KAAK,CAAC+C,YAAY,CAAClB,YAAY,CAAC,CACjC;AACH,CAAC,CAAC,CACH","ignoreList":[]}
1
+ {"version":3,"file":"WebSdk.js","names":["WebTracerProvider","Effect","constant","Layer","isNonEmpty","Logger","Metrics","Tracer","Resource","layerTracerProvider","processor","config","effect","OtelTracerProvider","gen","resource","acquireRelease","sync","provider","undefined","spanProcessors","Array","isArray","ignore","promise","forceFlush","then","shutdown","layer","evaluate","unwrap","isEffect","ResourceLive","TracerLive","spanProcessor","provide","tracerConfig","empty","LoggerLive","logRecordProcessor","mergeWithExisting","loggerMergeWithExisting","layerLoggerProvider","loggerProviderConfig","MetricsLive","metricReader","temporality","metricTemporality","mergeAll","pipe","provideMerge"],"sources":["../src/WebSdk.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
package/dist/index.d.ts CHANGED
@@ -1,28 +1,28 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  /**
5
- * @since 1.0.0
5
+ * @since 4.0.0
6
6
  */
7
- export * as Logger from "./Logger.ts";
7
+ export * as NodeSdk from "./NodeSdk.ts";
8
8
  /**
9
- * @since 1.0.0
9
+ * @since 4.0.0
10
10
  */
11
- export * as Metrics from "./Metrics.ts";
11
+ export * as OtelLogger from "./OtelLogger.ts";
12
12
  /**
13
- * @since 1.0.0
13
+ * @since 4.0.0
14
14
  */
15
- export * as NodeSdk from "./NodeSdk.ts";
15
+ export * as OtelMetrics from "./OtelMetrics.ts";
16
16
  /**
17
- * @since 1.0.0
17
+ * @since 4.0.0
18
18
  */
19
- export * as Resource from "./Resource.ts";
19
+ export * as OtelTracer from "./OtelTracer.ts";
20
20
  /**
21
- * @since 1.0.0
21
+ * @since 4.0.0
22
22
  */
23
- export * as Tracer from "./Tracer.ts";
23
+ export * as Resource from "./Resource.ts";
24
24
  /**
25
- * @since 1.0.0
25
+ * @since 4.0.0
26
26
  */
27
27
  export * as WebSdk from "./WebSdk.ts";
28
28
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AAErC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,OAAO,KAAK,OAAO,MAAM,cAAc,CAAA;AAEvC;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,WAAW,MAAM,kBAAkB,CAAA;AAE/C;;GAEG;AACH,OAAO,KAAK,UAAU,MAAM,iBAAiB,CAAA;AAE7C;;GAEG;AACH,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AAEzC;;GAEG;AACH,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA"}
package/dist/index.js CHANGED
@@ -1,29 +1,29 @@
1
1
  /**
2
- * @since 1.0.0
2
+ * @since 4.0.0
3
3
  */
4
4
  // @barrel: Auto-generated exports. Do not edit manually.
5
5
  /**
6
- * @since 1.0.0
6
+ * @since 4.0.0
7
7
  */
8
- export * as Logger from "./Logger.js";
8
+ export * as NodeSdk from "./NodeSdk.js";
9
9
  /**
10
- * @since 1.0.0
10
+ * @since 4.0.0
11
11
  */
12
- export * as Metrics from "./Metrics.js";
12
+ export * as OtelLogger from "./OtelLogger.js";
13
13
  /**
14
- * @since 1.0.0
14
+ * @since 4.0.0
15
15
  */
16
- export * as NodeSdk from "./NodeSdk.js";
16
+ export * as OtelMetrics from "./OtelMetrics.js";
17
17
  /**
18
- * @since 1.0.0
18
+ * @since 4.0.0
19
19
  */
20
- export * as Resource from "./Resource.js";
20
+ export * as OtelTracer from "./OtelTracer.js";
21
21
  /**
22
- * @since 1.0.0
22
+ * @since 4.0.0
23
23
  */
24
- export * as Tracer from "./Tracer.js";
24
+ export * as Resource from "./Resource.js";
25
25
  /**
26
- * @since 1.0.0
26
+ * @since 4.0.0
27
27
  */
28
28
  export * as WebSdk from "./WebSdk.js";
29
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["Logger","Metrics","NodeSdk","Resource","Tracer","WebSdk"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa;AAErC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
1
+ {"version":3,"file":"index.js","names":["NodeSdk","OtelLogger","OtelMetrics","OtelTracer","Resource","WebSdk"],"sources":["../src/index.ts"],"sourcesContent":[null],"mappings":"AAAA;;;AAIA;AAEA;;;AAGA,OAAO,KAAKA,OAAO,MAAM,cAAc;AAEvC;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,WAAW,MAAM,kBAAkB;AAE/C;;;AAGA,OAAO,KAAKC,UAAU,MAAM,iBAAiB;AAE7C;;;AAGA,OAAO,KAAKC,QAAQ,MAAM,eAAe;AAEzC;;;AAGA,OAAO,KAAKC,MAAM,MAAM,aAAa","ignoreList":[]}
@@ -1,4 +1,9 @@
1
1
  import * as Inspectable from "effect/Inspectable";
2
+ const bigint1e9 = /*#__PURE__*/BigInt(1_000_000_000);
3
+ /** @internal */
4
+ export const nanosToHrTime = timestamp => {
5
+ return [Number(timestamp / bigint1e9), Number(timestamp % bigint1e9)];
6
+ };
2
7
  /** @internal */
3
8
  export const recordToAttributes = record => {
4
9
  const attributes = {};
@@ -1 +1 @@
1
- {"version":3,"file":"attributes.js","names":["Inspectable","recordToAttributes","record","attributes","key","value","Object","entries","unknownToAttributeValue","toString","toStringUnknown"],"sources":["../../src/internal/attributes.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD;AACA,OAAO,MAAMC,kBAAkB,GAAIC,MAA+B,IAAqB;EACrF,MAAMC,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,CAAC,EAAE;IACjDC,UAAU,CAACC,GAAG,CAAC,GAAGI,uBAAuB,CAACH,KAAK,CAAC;EAClD;EACA,OAAOF,UAAU;AACnB,CAAC;AAED;AACA,OAAO,MAAMK,uBAAuB,GAAIH,KAAc,IAAyB;EAC7E,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOA,KAAK,CAACI,QAAQ,EAAE;EACzB;EACA,OAAOT,WAAW,CAACU,eAAe,CAACL,KAAK,CAAC;AAC3C,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"attributes.js","names":["Inspectable","bigint1e9","BigInt","nanosToHrTime","timestamp","Number","recordToAttributes","record","attributes","key","value","Object","entries","unknownToAttributeValue","toString","toStringUnknown"],"sources":["../../src/internal/attributes.ts"],"sourcesContent":[null],"mappings":"AACA,OAAO,KAAKA,WAAW,MAAM,oBAAoB;AAEjD,MAAMC,SAAS,gBAAGC,MAAM,CAAC,aAAa,CAAC;AAEvC;AACA,OAAO,MAAMC,aAAa,GAAIC,SAAiB,IAAiB;EAC9D,OAAO,CAACC,MAAM,CAACD,SAAS,GAAGH,SAAS,CAAC,EAAEI,MAAM,CAACD,SAAS,GAAGH,SAAS,CAAC,CAAC;AACvE,CAAC;AAED;AACA,OAAO,MAAMK,kBAAkB,GAAIC,MAA+B,IAAqB;EACrF,MAAMC,UAAU,GAAoB,EAAE;EACtC,KAAK,MAAM,CAACC,GAAG,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACL,MAAM,CAAC,EAAE;IACjDC,UAAU,CAACC,GAAG,CAAC,GAAGI,uBAAuB,CAACH,KAAK,CAAC;EAClD;EACA,OAAOF,UAAU;AACnB,CAAC;AAED;AACA,OAAO,MAAMK,uBAAuB,GAAIH,KAAc,IAAyB;EAC7E,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,QAAQ,IAAI,OAAOA,KAAK,KAAK,SAAS,EAAE;IACxF,OAAOA,KAAK;EACd,CAAC,MAAM,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IACpC,OAAOA,KAAK,CAACI,QAAQ,EAAE;EACzB;EACA,OAAOd,WAAW,CAACe,eAAe,CAACL,KAAK,CAAC;AAC3C,CAAC","ignoreList":[]}
@@ -6,7 +6,7 @@ const sdkName = "@effect/opentelemetry/Metrics";
6
6
  /** @internal */
7
7
  export class MetricProducerImpl {
8
8
  resource;
9
- services;
9
+ context;
10
10
  temporality;
11
11
  startTimes;
12
12
  startTimeNanos;
@@ -15,9 +15,9 @@ export class MetricProducerImpl {
15
15
  previousHistogramState;
16
16
  previousFrequencyState;
17
17
  previousSummaryState;
18
- constructor(resource, services, temporality = "cumulative") {
18
+ constructor(resource, context, temporality = "cumulative") {
19
19
  this.resource = resource;
20
- this.services = services;
20
+ this.context = context;
21
21
  this.temporality = temporality;
22
22
  this.startTimes = new Map();
23
23
  this.startTimeNanos = currentHrTime();
@@ -35,7 +35,7 @@ export class MetricProducerImpl {
35
35
  return hrTime;
36
36
  }
37
37
  collect(_options) {
38
- const snapshot = Metric.snapshotUnsafe(this.services);
38
+ const snapshot = Metric.snapshotUnsafe(this.context);
39
39
  const hrTimeNow = currentHrTime();
40
40
  const metricData = [];
41
41
  const metricDataByName = new Map();
@@ -64,7 +64,7 @@ export class MetricProducerImpl {
64
64
  if (typeof currentCount === "bigint" && typeof previousCount === "bigint") {
65
65
  reportValue = currentCount - previousCount;
66
66
  // Handle reset: if current < previous, report current value
67
- if (reportValue < 0n) {
67
+ if (reportValue < BigInt(0)) {
68
68
  reportValue = currentCount;
69
69
  }
70
70
  } else {