@effect/opentelemetry 4.0.0-beta.60 → 4.0.0-beta.63

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,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import { SeverityNumber } from "@opentelemetry/api-logs";
4
5
  import * as Otel from "@opentelemetry/sdk-logs";
5
6
  import type { NonEmptyReadonlyArray } from "effect/Array";
6
7
  import * as Context from "effect/Context";
@@ -8,6 +9,7 @@ import type * as Duration from "effect/Duration";
8
9
  import * as Effect from "effect/Effect";
9
10
  import * as Layer from "effect/Layer";
10
11
  import * as Logger from "effect/Logger";
12
+ import type * as LogLevel from "effect/LogLevel";
11
13
  import { Resource } from "./Resource.ts";
12
14
  declare const OtelLoggerProvider_base: Context.ServiceClass<OtelLoggerProvider, "@effect/opentelemetry/Logger/OtelLoggerProvider", Otel.LoggerProvider>;
13
15
  /**
@@ -16,6 +18,18 @@ declare const OtelLoggerProvider_base: Context.ServiceClass<OtelLoggerProvider,
16
18
  */
17
19
  export declare class OtelLoggerProvider extends OtelLoggerProvider_base {
18
20
  }
21
+ /**
22
+ * Maps an Effect `LogLevel` to the corresponding OpenTelemetry
23
+ * `SeverityNumber` (per the OTel logs data model, severity range 1-24).
24
+ *
25
+ * Effect's `LogLevel.getOrdinal` returns Effect's internal sort ordinal
26
+ * (e.g. Info=20000), which falls outside the OTel spec — backends that
27
+ * validate the field map such values to `UNSPECIFIED`.
28
+ *
29
+ * @since 1.0.0
30
+ * @category Conversions
31
+ */
32
+ export declare const logLevelToSeverityNumber: (level: LogLevel.LogLevel) => SeverityNumber;
19
33
  /**
20
34
  * @since 1.0.0
21
35
  * @category Constructors
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.d.ts","sourceRoot":"","sources":["../src/Logger.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,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;AAMvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;;AAExC;;;GAGG;AACH,qBAAa,kBAAmB,SAAQ,uBAGc;CAAG;AAEzD;;;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;;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"}
package/dist/Logger.js CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import { SeverityNumber } from "@opentelemetry/api-logs";
4
5
  import * as Otel from "@opentelemetry/sdk-logs";
5
6
  import * as Arr from "effect/Array";
6
7
  import * as Clock from "effect/Clock";
@@ -8,7 +9,6 @@ import * as Context from "effect/Context";
8
9
  import * as Effect from "effect/Effect";
9
10
  import * as Layer from "effect/Layer";
10
11
  import * as Logger from "effect/Logger";
11
- import * as LogLevel from "effect/LogLevel";
12
12
  import * as Predicate from "effect/Predicate";
13
13
  import * as References from "effect/References";
14
14
  import * as Tracer from "effect/Tracer";
@@ -19,6 +19,35 @@ import { Resource } from "./Resource.js";
19
19
  * @category Services
20
20
  */
21
21
  export class OtelLoggerProvider extends /*#__PURE__*/Context.Service()("@effect/opentelemetry/Logger/OtelLoggerProvider") {}
22
+ /**
23
+ * Maps an Effect `LogLevel` to the corresponding OpenTelemetry
24
+ * `SeverityNumber` (per the OTel logs data model, severity range 1-24).
25
+ *
26
+ * Effect's `LogLevel.getOrdinal` returns Effect's internal sort ordinal
27
+ * (e.g. Info=20000), which falls outside the OTel spec — backends that
28
+ * validate the field map such values to `UNSPECIFIED`.
29
+ *
30
+ * @since 1.0.0
31
+ * @category Conversions
32
+ */
33
+ export const logLevelToSeverityNumber = level => {
34
+ switch (level) {
35
+ case "Trace":
36
+ return SeverityNumber.TRACE;
37
+ case "Debug":
38
+ return SeverityNumber.DEBUG;
39
+ case "Info":
40
+ return SeverityNumber.INFO;
41
+ case "Warn":
42
+ return SeverityNumber.WARN;
43
+ case "Error":
44
+ return SeverityNumber.ERROR;
45
+ case "Fatal":
46
+ return SeverityNumber.FATAL;
47
+ default:
48
+ return SeverityNumber.UNSPECIFIED;
49
+ }
50
+ };
22
51
  /**
23
52
  * @since 1.0.0
24
53
  * @category Constructors
@@ -48,7 +77,7 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
48
77
  otelLogger.emit({
49
78
  body: message.length === 1 ? message[0] : message,
50
79
  severityText: options.logLevel,
51
- severityNumber: LogLevel.getOrdinal(options.logLevel),
80
+ severityNumber: logLevelToSeverityNumber(options.logLevel),
52
81
  timestamp: hrTime,
53
82
  observedTimestamp: hrTime,
54
83
  attributes
@@ -1 +1 @@
1
- {"version":3,"file":"Logger.js","names":["Otel","Arr","Clock","Context","Effect","Layer","Logger","LogLevel","Predicate","References","Tracer","nanosToHrTime","unknownToAttributeValue","Resource","OtelLoggerProvider","Service","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","getOrdinal","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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@effect/opentelemetry",
3
3
  "type": "module",
4
- "version": "4.0.0-beta.60",
4
+ "version": "4.0.0-beta.63",
5
5
  "license": "MIT",
6
6
  "description": "OpenTelemetry integration for Effect",
7
7
  "homepage": "https://effect.website",
@@ -55,6 +55,7 @@
55
55
  },
56
56
  "peerDependencies": {
57
57
  "@opentelemetry/api": "^1.9",
58
+ "@opentelemetry/api-logs": ">=0.203.0 <0.300.0",
58
59
  "@opentelemetry/resources": "^2.0.0",
59
60
  "@opentelemetry/sdk-logs": ">=0.203.0 <0.300.0",
60
61
  "@opentelemetry/sdk-metrics": "^2.0.0",
@@ -62,7 +63,7 @@
62
63
  "@opentelemetry/sdk-trace-node": "^2.0.0",
63
64
  "@opentelemetry/sdk-trace-web": "^2.0.0",
64
65
  "@opentelemetry/semantic-conventions": "^1.33.0",
65
- "effect": "^4.0.0-beta.60"
66
+ "effect": "^4.0.0-beta.63"
66
67
  },
67
68
  "peerDependenciesMeta": {
68
69
  "@opentelemetry/api": {
@@ -85,10 +86,14 @@
85
86
  },
86
87
  "@opentelemetry/sdk-logs": {
87
88
  "optional": true
89
+ },
90
+ "@opentelemetry/api-logs": {
91
+ "optional": true
88
92
  }
89
93
  },
90
94
  "devDependencies": {
91
95
  "@opentelemetry/api": "^1.9.1",
96
+ "@opentelemetry/api-logs": "^0.214.0",
92
97
  "@opentelemetry/context-async-hooks": "^2.6.1",
93
98
  "@opentelemetry/exporter-metrics-otlp-http": "0.214.0",
94
99
  "@opentelemetry/exporter-prometheus": "^0.214.0",
package/src/Logger.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  /**
2
2
  * @since 1.0.0
3
3
  */
4
+ import { SeverityNumber } from "@opentelemetry/api-logs"
4
5
  import * as Otel from "@opentelemetry/sdk-logs"
5
6
  import type { NonEmptyReadonlyArray } from "effect/Array"
6
7
  import * as Arr from "effect/Array"
@@ -10,7 +11,7 @@ import type * as Duration from "effect/Duration"
10
11
  import * as Effect from "effect/Effect"
11
12
  import * as Layer from "effect/Layer"
12
13
  import * as Logger from "effect/Logger"
13
- import * as LogLevel from "effect/LogLevel"
14
+ import type * as LogLevel from "effect/LogLevel"
14
15
  import * as Predicate from "effect/Predicate"
15
16
  import * as References from "effect/References"
16
17
  import * as Tracer from "effect/Tracer"
@@ -26,6 +27,36 @@ export class OtelLoggerProvider extends Context.Service<
26
27
  Otel.LoggerProvider
27
28
  >()("@effect/opentelemetry/Logger/OtelLoggerProvider") {}
28
29
 
30
+ /**
31
+ * Maps an Effect `LogLevel` to the corresponding OpenTelemetry
32
+ * `SeverityNumber` (per the OTel logs data model, severity range 1-24).
33
+ *
34
+ * Effect's `LogLevel.getOrdinal` returns Effect's internal sort ordinal
35
+ * (e.g. Info=20000), which falls outside the OTel spec — backends that
36
+ * validate the field map such values to `UNSPECIFIED`.
37
+ *
38
+ * @since 1.0.0
39
+ * @category Conversions
40
+ */
41
+ export const logLevelToSeverityNumber = (level: LogLevel.LogLevel): SeverityNumber => {
42
+ switch (level) {
43
+ case "Trace":
44
+ return SeverityNumber.TRACE
45
+ case "Debug":
46
+ return SeverityNumber.DEBUG
47
+ case "Info":
48
+ return SeverityNumber.INFO
49
+ case "Warn":
50
+ return SeverityNumber.WARN
51
+ case "Error":
52
+ return SeverityNumber.ERROR
53
+ case "Fatal":
54
+ return SeverityNumber.FATAL
55
+ default:
56
+ return SeverityNumber.UNSPECIFIED
57
+ }
58
+ }
59
+
29
60
  /**
30
61
  * @since 1.0.0
31
62
  * @category Constructors
@@ -64,7 +95,7 @@ export const make: Effect.Effect<
64
95
  otelLogger.emit({
65
96
  body: message.length === 1 ? message[0] : message,
66
97
  severityText: options.logLevel,
67
- severityNumber: LogLevel.getOrdinal(options.logLevel),
98
+ severityNumber: logLevelToSeverityNumber(options.logLevel),
68
99
  timestamp: hrTime,
69
100
  observedTimestamp: hrTime,
70
101
  attributes