@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.
- package/dist/src/ModuleLogger.js +5 -5
- package/dist/src/StandardLogger.d.ts +1 -1
- package/dist/src/StandardLogger.js +2 -2
- package/dist/src/StandardTracer.d.ts +1 -1
- package/dist/src/StandardTracer.js +7 -6
- package/dist/src/models/StandardLoggerInterface.d.ts +1 -1
- package/package.json +14 -16
- package/src/ModuleLogger.spec.ts +1 -1
- package/src/ModuleLogger.ts +1 -1
- package/src/StandardLogger.spec.ts +2 -2
- package/src/StandardLogger.ts +1 -1
- package/src/StandardTracer.ts +13 -8
- package/src/models/StandardLoggerInterface.ts +1 -1
package/dist/src/ModuleLogger.js
CHANGED
|
@@ -1,22 +1,22 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ModuleLogger = void 0;
|
|
4
|
-
const
|
|
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,
|
|
11
|
+
this.display("info", message, api_1.SeverityNumber.INFO, null, context);
|
|
12
12
|
}
|
|
13
13
|
warn(message, context) {
|
|
14
|
-
this.display("warn", message,
|
|
14
|
+
this.display("warn", message, api_1.SeverityNumber.WARN, null, context);
|
|
15
15
|
}
|
|
16
16
|
error(message, error, context) {
|
|
17
|
-
this.display("error", message,
|
|
17
|
+
this.display("error", message, api_1.SeverityNumber.ERROR, error, context);
|
|
18
18
|
}
|
|
19
|
-
display(level, message, severityNumber =
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
60
|
+
spanProcessors.push(new sdk_trace_1.BatchSpanProcessor({ exporter }));
|
|
62
61
|
}
|
|
63
|
-
this.traceProvider = new
|
|
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
|
-
|
|
69
|
-
|
|
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}`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@devopsplaybook.io/otel-utils",
|
|
3
|
-
"version": "1.5.
|
|
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.
|
|
25
|
-
"@opentelemetry/
|
|
26
|
-
"@opentelemetry/
|
|
27
|
-
"@opentelemetry/
|
|
28
|
-
"@opentelemetry/exporter-
|
|
29
|
-
"@opentelemetry/exporter-
|
|
30
|
-
"@opentelemetry/
|
|
31
|
-
"@opentelemetry/
|
|
32
|
-
"@opentelemetry/
|
|
33
|
-
"@opentelemetry/sdk-
|
|
34
|
-
"@opentelemetry/sdk-
|
|
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.
|
|
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.
|
|
44
|
+
"oxlint": "^1.89.0",
|
|
47
45
|
"typescript": "^7.0.2"
|
|
48
46
|
},
|
|
49
47
|
"publishConfig": {
|
package/src/ModuleLogger.spec.ts
CHANGED
|
@@ -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
|
|
5
|
+
} from "@opentelemetry/api";
|
|
6
6
|
import { ModuleLogger } from "./ModuleLogger";
|
|
7
7
|
import type { StandardLoggerInterface } from "./models/StandardLoggerInterface";
|
|
8
8
|
|
package/src/ModuleLogger.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { logs, SeverityNumber } from "@opentelemetry/api
|
|
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
|
|
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"),
|
package/src/StandardLogger.ts
CHANGED
package/src/StandardTracer.ts
CHANGED
|
@@ -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 {
|
|
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 {
|
|
14
|
-
|
|
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:
|
|
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
|
|
65
|
+
this.traceProvider = new TracerProvider({
|
|
63
66
|
idGenerator: new AWSXRayIdGenerator(),
|
|
64
67
|
resource: createOTelResource(this.serviceName, this.serviceVersion),
|
|
65
68
|
spanProcessors,
|
|
66
69
|
});
|
|
67
|
-
|
|
68
|
-
|
|
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(
|