@devopsplaybook.io/otel-utils 1.5.2-beta.35.3bee49a → 1.5.3-beta.36.4071915

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.
@@ -1,22 +1,22 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.ModuleLogger = void 0;
4
- const api_logs_1 = require("@opentelemetry/api-logs");
4
+ const api_1 = require("@opentelemetry/api");
5
5
  class ModuleLogger {
6
6
  constructor(module, standardLogger) {
7
7
  this.module = module;
8
8
  this.standardLogger = standardLogger;
9
9
  }
10
10
  info(message, context) {
11
- this.display("info", message, api_logs_1.SeverityNumber.INFO, null, context);
11
+ this.display("info", message, api_1.SeverityNumber.INFO, null, context);
12
12
  }
13
13
  warn(message, context) {
14
- this.display("warn", message, api_logs_1.SeverityNumber.WARN, null, context);
14
+ this.display("warn", message, api_1.SeverityNumber.WARN, null, context);
15
15
  }
16
16
  error(message, error, context) {
17
- this.display("error", message, api_logs_1.SeverityNumber.ERROR, error, context);
17
+ this.display("error", message, api_1.SeverityNumber.ERROR, error, context);
18
18
  }
19
- display(level, message, severityNumber = api_logs_1.SeverityNumber.INFO, error, context) {
19
+ display(level, message, severityNumber = api_1.SeverityNumber.INFO, error, context) {
20
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
21
  const attributes = { "log.type": "custom" };
22
22
  if (error) {
@@ -1,4 +1,4 @@
1
- import { type Logger as OTelLogger } from "@opentelemetry/api-logs";
1
+ import { type Logger as OTelLogger } from "@opentelemetry/api";
2
2
  import { ConfigOTelInterface } from "./models/ConfigOTelInterface";
3
3
  import { ModuleLogger } from "./ModuleLogger";
4
4
  import type { StandardLoggerInterface } from "./models/StandardLoggerInterface";
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.StandardLogger = void 0;
4
- const api_logs_1 = require("@opentelemetry/api-logs");
4
+ const api_1 = require("@opentelemetry/api");
5
5
  const exporter_logs_otlp_http_1 = require("@opentelemetry/exporter-logs-otlp-http");
6
6
  const sdk_logs_1 = require("@opentelemetry/sdk-logs");
7
7
  const createResource_1 = require("./utils/createResource");
@@ -31,7 +31,7 @@ class StandardLogger {
31
31
  ],
32
32
  resource: (0, createResource_1.createOTelResource)(this.serviceName, this.serviceVersion),
33
33
  });
34
- api_logs_1.logs.setGlobalLoggerProvider(this.loggerProvider);
34
+ api_1.logs.setGlobalLoggerProvider(this.loggerProvider);
35
35
  this.logger = this.loggerProvider.getLogger(`${this.serviceName}:${this.serviceVersion}`);
36
36
  }
37
37
  }
@@ -1,6 +1,6 @@
1
1
  import { SpanKind } from "@opentelemetry/api";
2
2
  import type { Span as ApiSpan } from "@opentelemetry/api";
3
- import { Span } from "@opentelemetry/sdk-trace-base";
3
+ import { type Span } from "@opentelemetry/sdk-trace";
4
4
  import { ConfigOTelInterface } from "./models/ConfigOTelInterface";
5
5
  /**
6
6
  * Options accepted by {@link StandardTracer.startSpan}.
@@ -39,8 +39,7 @@ const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
39
39
  const core_1 = require("@opentelemetry/core");
40
40
  const exporter_trace_otlp_http_1 = require("@opentelemetry/exporter-trace-otlp-http");
41
41
  const id_generator_aws_xray_1 = require("@opentelemetry/id-generator-aws-xray");
42
- const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
43
- const sdk_trace_node_1 = require("@opentelemetry/sdk-trace-node");
42
+ const sdk_trace_1 = require("@opentelemetry/sdk-trace");
44
43
  const semantic_conventions_1 = require("@opentelemetry/semantic-conventions");
45
44
  const createResource_1 = require("./utils/createResource");
46
45
  class StandardTracer {
@@ -58,15 +57,17 @@ class StandardTracer {
58
57
  url: config.OPENTELEMETRY_COLLECTOR_HTTP_TRACES,
59
58
  headers: exporterHeaders,
60
59
  });
61
- spanProcessors.push(new sdk_trace_base_1.BatchSpanProcessor(exporter));
60
+ spanProcessors.push(new sdk_trace_1.BatchSpanProcessor({ exporter }));
62
61
  }
63
- this.traceProvider = new sdk_trace_node_1.NodeTracerProvider({
62
+ this.traceProvider = new sdk_trace_1.TracerProvider({
64
63
  idGenerator: new id_generator_aws_xray_1.AWSXRayIdGenerator(),
65
64
  resource: (0, createResource_1.createOTelResource)(this.serviceName, this.serviceVersion),
66
65
  spanProcessors,
67
66
  });
68
- this.traceProvider.register();
69
- const contextManager = new context_async_hooks_1.AsyncHooksContextManager();
67
+ // OTel v3 removed TracerProvider.register(): the provider and the context
68
+ // manager must be installed on the global API explicitly.
69
+ api_1.trace.setGlobalTracerProvider(this.traceProvider);
70
+ const contextManager = new context_async_hooks_1.AsyncLocalStorageContextManager();
70
71
  contextManager.enable();
71
72
  api_1.default.context.setGlobalContextManager(contextManager);
72
73
  this.tracer = api_1.default.trace.getTracer(`${this.serviceName}:${this.serviceVersion}`);
@@ -1,4 +1,4 @@
1
- import type { Logger } from "@opentelemetry/api-logs";
1
+ import type { Logger } from "@opentelemetry/api";
2
2
  export interface StandardLoggerInterface {
3
3
  getLogger(): Logger | undefined;
4
4
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@devopsplaybook.io/otel-utils",
3
- "version": "1.5.2-beta.35.3bee49a",
3
+ "version": "1.5.3-beta.36.4071915",
4
4
  "description": "Utility to simplify integration with Open Telemetry",
5
5
  "keywords": [
6
6
  "Open",
@@ -21,29 +21,27 @@
21
21
  "dependencies": ""
22
22
  },
23
23
  "dependencies": {
24
- "@opentelemetry/api": "^1.9.1",
25
- "@opentelemetry/api-logs": "^0.223.0",
26
- "@opentelemetry/context-async-hooks": "^2.12.0",
27
- "@opentelemetry/core": "^2.12.0",
28
- "@opentelemetry/exporter-logs-otlp-http": "^0.223.0",
29
- "@opentelemetry/exporter-metrics-otlp-http": "^0.223.0",
30
- "@opentelemetry/exporter-trace-otlp-http": "^0.223.0",
31
- "@opentelemetry/id-generator-aws-xray": "^2.1.0",
32
- "@opentelemetry/resources": "^2.12.0",
33
- "@opentelemetry/sdk-logs": "^0.223.0",
34
- "@opentelemetry/sdk-metrics": "^2.12.0",
35
- "@opentelemetry/sdk-trace-base": "^2.12.0",
36
- "@opentelemetry/sdk-trace-node": "^2.12.0",
24
+ "@opentelemetry/api": "^1.10.0",
25
+ "@opentelemetry/context-async-hooks": "^3.0.0",
26
+ "@opentelemetry/core": "^3.0.0",
27
+ "@opentelemetry/exporter-logs-otlp-http": "^0.300.0",
28
+ "@opentelemetry/exporter-metrics-otlp-http": "^0.300.0",
29
+ "@opentelemetry/exporter-trace-otlp-http": "^0.300.0",
30
+ "@opentelemetry/id-generator-aws-xray": "^3.0.0",
31
+ "@opentelemetry/resources": "^3.0.0",
32
+ "@opentelemetry/sdk-logs": "^3.0.0",
33
+ "@opentelemetry/sdk-metrics": "^3.0.0",
34
+ "@opentelemetry/sdk-trace": "^3.0.0",
37
35
  "@opentelemetry/semantic-conventions": "^1.43.0"
38
36
  },
39
37
  "devDependencies": {
40
- "@swc/core": "^1.16.18",
38
+ "@swc/core": "^1.16.20",
41
39
  "@swc/jest": "^0.2.39",
42
40
  "@types/jest": "^30.0.0",
43
41
  "@types/node": "^26.6.5",
44
42
  "@types/sqlite3": "^5.1.0",
45
43
  "jest": "^30.5.2",
46
- "oxlint": "^1.88.0",
44
+ "oxlint": "^1.89.0",
47
45
  "typescript": "^7.0.2"
48
46
  },
49
47
  "publishConfig": {
@@ -2,7 +2,7 @@ import type { Span } from "@opentelemetry/api";
2
2
  import {
3
3
  SeverityNumber,
4
4
  type Logger as OTelLogger,
5
- } from "@opentelemetry/api-logs";
5
+ } from "@opentelemetry/api";
6
6
  import { ModuleLogger } from "./ModuleLogger";
7
7
  import type { StandardLoggerInterface } from "./models/StandardLoggerInterface";
8
8
 
@@ -1,4 +1,4 @@
1
- import { SeverityNumber } from "@opentelemetry/api-logs";
1
+ import { SeverityNumber } from "@opentelemetry/api";
2
2
  import type { Span } from "@opentelemetry/api";
3
3
  import { StandardLoggerInterface } from "./models/StandardLoggerInterface";
4
4
 
@@ -1,4 +1,4 @@
1
- import { logs, SeverityNumber } from "@opentelemetry/api-logs";
1
+ import { logs, SeverityNumber } from "@opentelemetry/api";
2
2
  import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
3
3
  import { LoggerProvider } from "@opentelemetry/sdk-logs";
4
4
  import { StandardLogger } from "./StandardLogger";
@@ -91,7 +91,7 @@ describe("StandardLogger", () => {
91
91
  await logger.shutdown();
92
92
  });
93
93
 
94
- it("flushes api-logs and module logger records on shutdown", async () => {
94
+ it("flushes OTel logs and module logger records on shutdown", async () => {
95
95
  const logger = new StandardLogger();
96
96
  logger.initOTel({
97
97
  ...collectorConfig("http://collector:4318/v1/logs"),
@@ -1,4 +1,4 @@
1
- import { logs, type Logger as OTelLogger } from "@opentelemetry/api-logs";
1
+ import { logs, type Logger as OTelLogger } from "@opentelemetry/api";
2
2
  import { OTLPLogExporter } from "@opentelemetry/exporter-logs-otlp-http";
3
3
  import {
4
4
  BatchLogRecordProcessor,
@@ -6,12 +6,15 @@ import opentelemetry, {
6
6
  Tracer,
7
7
  } from "@opentelemetry/api";
8
8
  import type { Span as ApiSpan } from "@opentelemetry/api";
9
- import { AsyncHooksContextManager } from "@opentelemetry/context-async-hooks";
9
+ import { AsyncLocalStorageContextManager } from "@opentelemetry/context-async-hooks";
10
10
  import { W3CTraceContextPropagator } from "@opentelemetry/core";
11
11
  import { OTLPTraceExporter } from "@opentelemetry/exporter-trace-otlp-http";
12
12
  import { AWSXRayIdGenerator } from "@opentelemetry/id-generator-aws-xray";
13
- import { BatchSpanProcessor, Span } from "@opentelemetry/sdk-trace-base";
14
- import { NodeTracerProvider } from "@opentelemetry/sdk-trace-node";
13
+ import {
14
+ BatchSpanProcessor,
15
+ type Span,
16
+ TracerProvider,
17
+ } from "@opentelemetry/sdk-trace";
15
18
  import {
16
19
  ATTR_HTTP_REQUEST_METHOD,
17
20
  ATTR_HTTP_ROUTE,
@@ -37,7 +40,7 @@ export class StandardTracer {
37
40
  private static readonly SPAN_NAME_SANITIZE_RE = /[^a-zA-Z0-9-_/]/g;
38
41
  private static readonly PROPAGATOR = new W3CTraceContextPropagator();
39
42
 
40
- private traceProvider: NodeTracerProvider;
43
+ private traceProvider: TracerProvider;
41
44
  private tracer: Tracer;
42
45
  private serviceVersion: string;
43
46
  private serviceName: string;
@@ -57,15 +60,17 @@ export class StandardTracer {
57
60
  url: config.OPENTELEMETRY_COLLECTOR_HTTP_TRACES,
58
61
  headers: exporterHeaders,
59
62
  });
60
- spanProcessors.push(new BatchSpanProcessor(exporter));
63
+ spanProcessors.push(new BatchSpanProcessor({ exporter }));
61
64
  }
62
- this.traceProvider = new NodeTracerProvider({
65
+ this.traceProvider = new TracerProvider({
63
66
  idGenerator: new AWSXRayIdGenerator(),
64
67
  resource: createOTelResource(this.serviceName, this.serviceVersion),
65
68
  spanProcessors,
66
69
  });
67
- this.traceProvider.register();
68
- const contextManager = new AsyncHooksContextManager();
70
+ // OTel v3 removed TracerProvider.register(): the provider and the context
71
+ // manager must be installed on the global API explicitly.
72
+ trace.setGlobalTracerProvider(this.traceProvider);
73
+ const contextManager = new AsyncLocalStorageContextManager();
69
74
  contextManager.enable();
70
75
  opentelemetry.context.setGlobalContextManager(contextManager);
71
76
  this.tracer = opentelemetry.trace.getTracer(
@@ -1,4 +1,4 @@
1
- import type { Logger } from "@opentelemetry/api-logs";
1
+ import type { Logger } from "@opentelemetry/api";
2
2
 
3
3
  export interface StandardLoggerInterface {
4
4
  getLogger(): Logger | undefined;