@dbos-inc/dbos-sdk 3.6.14-preview.g853a620b5a → 4.1.2-preview
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/dbos-config.schema.json +8 -1
- package/dist/dbos-config.schema.json +8 -1
- package/dist/src/adminserver.d.ts +1 -13
- package/dist/src/adminserver.d.ts.map +1 -1
- package/dist/src/adminserver.js +1 -20
- package/dist/src/adminserver.js.map +1 -1
- package/dist/src/cli/docker_pg_helper.d.ts +0 -3
- package/dist/src/cli/docker_pg_helper.d.ts.map +1 -1
- package/dist/src/cli/docker_pg_helper.js +13 -29
- package/dist/src/cli/docker_pg_helper.js.map +1 -1
- package/dist/src/config.d.ts.map +1 -1
- package/dist/src/config.js +0 -7
- package/dist/src/config.js.map +1 -1
- package/dist/src/datasource.d.ts.map +1 -1
- package/dist/src/datasource.js +7 -7
- package/dist/src/datasource.js.map +1 -1
- package/dist/src/dbos-executor.d.ts +15 -1
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +10 -11
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos.d.ts +2 -13
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +3 -34
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/telemetry/collector.d.ts +1 -4
- package/dist/src/telemetry/collector.d.ts.map +1 -1
- package/dist/src/telemetry/collector.js.map +1 -1
- package/dist/src/telemetry/exporters.d.ts +3 -7
- package/dist/src/telemetry/exporters.d.ts.map +1 -1
- package/dist/src/telemetry/exporters.js +27 -10
- package/dist/src/telemetry/exporters.js.map +1 -1
- package/dist/src/telemetry/logs.d.ts +14 -21
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +155 -90
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/telemetry/traces.d.ts +42 -6
- package/dist/src/telemetry/traces.d.ts.map +1 -1
- package/dist/src/telemetry/traces.js +95 -31
- package/dist/src/telemetry/traces.js.map +1 -1
- package/dist/src/utils.d.ts +2 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +7 -1
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -15
- package/dist/src/telemetry/index.d.ts +0 -12
- package/dist/src/telemetry/index.d.ts.map +0 -1
- package/dist/src/telemetry/index.js +0 -14
- package/dist/src/telemetry/index.js.map +0 -1
@@ -1,38 +1,52 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.TelemetryExporter = void 0;
|
4
|
-
const
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
const utils_1 = require("../utils");
|
5
|
+
function isTraceSignal(signal) {
|
6
|
+
// Span is an interface that has a property 'kind'
|
7
|
+
return 'kind' in signal;
|
8
|
+
}
|
9
|
+
function isLogSignal(signal) {
|
10
|
+
// LogRecord is an interface that has a property 'severityText' and 'severityNumber'
|
11
|
+
return 'severityText' in signal && 'severityNumber' in signal;
|
12
|
+
}
|
8
13
|
class TelemetryExporter {
|
9
14
|
tracesExporters = [];
|
10
15
|
logsExporters = [];
|
11
16
|
constructor(config) {
|
17
|
+
if (!utils_1.globalParams.enableOTLP) {
|
18
|
+
return;
|
19
|
+
}
|
20
|
+
const { OTLPTraceExporter } = require('@opentelemetry/exporter-trace-otlp-proto');
|
21
|
+
const { OTLPLogExporter } = require('@opentelemetry/exporter-logs-otlp-proto');
|
12
22
|
const tracesSet = new Set(config.tracesEndpoint);
|
13
23
|
for (const endpoint of tracesSet) {
|
14
|
-
this.tracesExporters.push(new
|
24
|
+
this.tracesExporters.push(new OTLPTraceExporter({
|
15
25
|
url: endpoint,
|
16
26
|
}));
|
17
27
|
console.log(`Traces will be exported to ${endpoint}`);
|
18
28
|
}
|
19
29
|
const logsSet = new Set(config.logsEndpoint);
|
20
30
|
for (const endpoint of logsSet) {
|
21
|
-
this.logsExporters.push(new
|
31
|
+
this.logsExporters.push(new OTLPLogExporter({
|
22
32
|
url: endpoint,
|
23
33
|
}));
|
24
34
|
console.log(`Logs will be exported to ${endpoint}`);
|
25
35
|
}
|
26
36
|
}
|
27
37
|
async export(signals) {
|
38
|
+
if (!utils_1.globalParams.enableOTLP) {
|
39
|
+
return;
|
40
|
+
}
|
41
|
+
const { ExportResultCode } = require('@opentelemetry/core');
|
28
42
|
// Sort out traces and logs
|
29
43
|
const exportSpans = [];
|
30
44
|
const exportLogs = [];
|
31
45
|
signals.forEach((signal) => {
|
32
|
-
if (
|
46
|
+
if (isTraceSignal(signal)) {
|
33
47
|
exportSpans.push(signal);
|
34
48
|
}
|
35
|
-
if (
|
49
|
+
if (isLogSignal(signal)) {
|
36
50
|
exportLogs.push(signal);
|
37
51
|
}
|
38
52
|
});
|
@@ -42,7 +56,7 @@ class TelemetryExporter {
|
|
42
56
|
if (exportSpans.length > 0 && this.tracesExporters.length > 0) {
|
43
57
|
const traceExportTask = new Promise((resolve) => {
|
44
58
|
const exportCallback = (results) => {
|
45
|
-
if (results.code !==
|
59
|
+
if (results.code !== ExportResultCode.SUCCESS) {
|
46
60
|
console.warn(`Trace export failed: ${results.code}`);
|
47
61
|
console.warn(results);
|
48
62
|
}
|
@@ -57,7 +71,7 @@ class TelemetryExporter {
|
|
57
71
|
if (exportLogs.length > 0 && this.logsExporters.length > 0) {
|
58
72
|
const logExportTask = new Promise((resolve) => {
|
59
73
|
const exportCallback = (results) => {
|
60
|
-
if (results.code !==
|
74
|
+
if (results.code !== ExportResultCode.SUCCESS) {
|
61
75
|
console.warn(`Log export failed: ${results.code}`);
|
62
76
|
console.warn(results);
|
63
77
|
}
|
@@ -72,6 +86,9 @@ class TelemetryExporter {
|
|
72
86
|
await Promise.all(tasks);
|
73
87
|
}
|
74
88
|
async flush() {
|
89
|
+
if (!utils_1.globalParams.enableOTLP) {
|
90
|
+
return;
|
91
|
+
}
|
75
92
|
for (const exporter of this.tracesExporters) {
|
76
93
|
await exporter.forceFlush();
|
77
94
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../../src/telemetry/exporters.ts"],"names":[],"mappings":";;;
|
1
|
+
{"version":3,"file":"exporters.js","sourceRoot":"","sources":["../../../src/telemetry/exporters.ts"],"names":[],"mappings":"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"}
|
@@ -1,32 +1,20 @@
|
|
1
|
-
import { Logger as IWinstonLogger } from 'winston';
|
2
|
-
import { Span } from '@opentelemetry/sdk-trace-base';
|
3
1
|
import { TelemetryCollector } from './collector';
|
2
|
+
import { LoggerConfig } from '../dbos-executor';
|
3
|
+
import { DBOSSpan } from './traces';
|
4
4
|
/*****************/
|
5
5
|
/*****************/
|
6
|
-
export interface LoggerConfig {
|
7
|
-
logLevel?: string;
|
8
|
-
silent?: boolean;
|
9
|
-
addContextMetadata?: boolean;
|
10
|
-
forceConsole?: boolean;
|
11
|
-
}
|
12
6
|
type ContextualMetadata = {
|
13
|
-
includeContextMetadata
|
14
|
-
span
|
7
|
+
includeContextMetadata?: boolean;
|
8
|
+
span?: DBOSSpan;
|
15
9
|
};
|
16
10
|
interface StackTrace {
|
17
11
|
stack?: string;
|
18
12
|
}
|
19
|
-
export interface IGlobalLogger extends IWinstonLogger {
|
20
|
-
readonly addContextMetadata: boolean;
|
21
|
-
readonly logger: IWinstonLogger;
|
22
|
-
readonly telemetryCollector: TelemetryCollector;
|
23
|
-
}
|
24
13
|
export declare class GlobalLogger {
|
25
14
|
private readonly telemetryCollector?;
|
26
15
|
private readonly logger;
|
27
16
|
readonly addContextMetadata: boolean;
|
28
17
|
private isLogging;
|
29
|
-
private readonly otlpTransport?;
|
30
18
|
constructor(telemetryCollector?: TelemetryCollector | undefined, config?: LoggerConfig);
|
31
19
|
info(logEntry: unknown, metadata?: ContextualMetadata): void;
|
32
20
|
debug(logEntry: unknown, metadata?: ContextualMetadata): void;
|
@@ -44,16 +32,21 @@ export interface DLogger {
|
|
44
32
|
}
|
45
33
|
export declare class DBOSContextualLogger implements DLogger {
|
46
34
|
private readonly globalLogger;
|
47
|
-
readonly ctx: () =>
|
35
|
+
readonly ctx: () => DBOSSpan | undefined;
|
48
36
|
readonly includeContextMetadata: boolean;
|
49
|
-
constructor(globalLogger: GlobalLogger, ctx: () =>
|
37
|
+
constructor(globalLogger: GlobalLogger, ctx: () => DBOSSpan | undefined);
|
50
38
|
info(logEntry: unknown, metadata?: ContextualMetadata): void;
|
51
39
|
debug(logEntry: unknown, metadata?: ContextualMetadata): void;
|
52
40
|
warn(logEntry: unknown, metadata?: ContextualMetadata): void;
|
53
41
|
error(inputError: unknown, metadata?: ContextualMetadata & StackTrace): void;
|
54
42
|
}
|
55
|
-
|
56
|
-
|
57
|
-
|
43
|
+
export declare class DBOSConsoleLogger implements DLogger {
|
44
|
+
readonly config: LoggerConfig;
|
45
|
+
constructor(config: LoggerConfig);
|
46
|
+
info(logEntry: unknown, _metadata?: ContextualMetadata): void;
|
47
|
+
debug(logEntry: unknown, _metadata?: ContextualMetadata): void;
|
48
|
+
warn(logEntry: unknown, _metadata?: ContextualMetadata): void;
|
49
|
+
error(inputError: unknown, metadata?: ContextualMetadata & StackTrace): void;
|
50
|
+
}
|
58
51
|
export {};
|
59
52
|
//# sourceMappingURL=logs.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"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"}
|
@@ -1,43 +1,140 @@
|
|
1
1
|
"use strict";
|
2
|
+
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
3
|
+
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
2
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.
|
4
|
-
const winston_1 = require("winston");
|
5
|
-
const TransportStream = require("winston-transport"); // eslint-disable-line @typescript-eslint/no-require-imports
|
6
|
-
const api_logs_1 = require("@opentelemetry/api-logs");
|
7
|
-
const sdk_logs_1 = require("@opentelemetry/sdk-logs");
|
5
|
+
exports.DBOSConsoleLogger = exports.DBOSContextualLogger = exports.GlobalLogger = void 0;
|
8
6
|
const utils_1 = require("../utils");
|
7
|
+
// As DBOS OTLP is optional, OTLP objects must only be dynamically imported
|
8
|
+
// and only when OTLP is enabled. Importing OTLP types is fine as long
|
9
|
+
// as signatures using those types are not exported from this file.
|
10
|
+
var SeverityNumber;
|
11
|
+
(function (SeverityNumber) {
|
12
|
+
SeverityNumber[SeverityNumber["UNSPECIFIED"] = 0] = "UNSPECIFIED";
|
13
|
+
SeverityNumber[SeverityNumber["TRACE"] = 1] = "TRACE";
|
14
|
+
SeverityNumber[SeverityNumber["TRACE2"] = 2] = "TRACE2";
|
15
|
+
SeverityNumber[SeverityNumber["TRACE3"] = 3] = "TRACE3";
|
16
|
+
SeverityNumber[SeverityNumber["TRACE4"] = 4] = "TRACE4";
|
17
|
+
SeverityNumber[SeverityNumber["DEBUG"] = 5] = "DEBUG";
|
18
|
+
SeverityNumber[SeverityNumber["DEBUG2"] = 6] = "DEBUG2";
|
19
|
+
SeverityNumber[SeverityNumber["DEBUG3"] = 7] = "DEBUG3";
|
20
|
+
SeverityNumber[SeverityNumber["DEBUG4"] = 8] = "DEBUG4";
|
21
|
+
SeverityNumber[SeverityNumber["INFO"] = 9] = "INFO";
|
22
|
+
SeverityNumber[SeverityNumber["INFO2"] = 10] = "INFO2";
|
23
|
+
SeverityNumber[SeverityNumber["INFO3"] = 11] = "INFO3";
|
24
|
+
SeverityNumber[SeverityNumber["INFO4"] = 12] = "INFO4";
|
25
|
+
SeverityNumber[SeverityNumber["WARN"] = 13] = "WARN";
|
26
|
+
SeverityNumber[SeverityNumber["WARN2"] = 14] = "WARN2";
|
27
|
+
SeverityNumber[SeverityNumber["WARN3"] = 15] = "WARN3";
|
28
|
+
SeverityNumber[SeverityNumber["WARN4"] = 16] = "WARN4";
|
29
|
+
SeverityNumber[SeverityNumber["ERROR"] = 17] = "ERROR";
|
30
|
+
SeverityNumber[SeverityNumber["ERROR2"] = 18] = "ERROR2";
|
31
|
+
SeverityNumber[SeverityNumber["ERROR3"] = 19] = "ERROR3";
|
32
|
+
SeverityNumber[SeverityNumber["ERROR4"] = 20] = "ERROR4";
|
33
|
+
SeverityNumber[SeverityNumber["FATAL"] = 21] = "FATAL";
|
34
|
+
SeverityNumber[SeverityNumber["FATAL2"] = 22] = "FATAL2";
|
35
|
+
SeverityNumber[SeverityNumber["FATAL3"] = 23] = "FATAL3";
|
36
|
+
SeverityNumber[SeverityNumber["FATAL4"] = 24] = "FATAL4";
|
37
|
+
})(SeverityNumber || (SeverityNumber = {}));
|
9
38
|
class GlobalLogger {
|
10
39
|
telemetryCollector;
|
11
40
|
logger;
|
12
41
|
addContextMetadata;
|
13
42
|
isLogging = false; // Prevent recursive logging
|
14
|
-
otlpTransport;
|
15
43
|
constructor(telemetryCollector, config) {
|
16
44
|
this.telemetryCollector = telemetryCollector;
|
45
|
+
this.addContextMetadata = config?.addContextMetadata || false;
|
46
|
+
if (!utils_1.globalParams.enableOTLP) {
|
47
|
+
this.logger = new DBOSConsoleLogger(config ?? {});
|
48
|
+
return;
|
49
|
+
}
|
50
|
+
const TransportStream = require('winston-transport');
|
51
|
+
class OTLPLogQueueTransport extends TransportStream {
|
52
|
+
telemetryCollector;
|
53
|
+
name = 'OTLPLogQueueTransport';
|
54
|
+
otelLogger;
|
55
|
+
applicationID;
|
56
|
+
executorID;
|
57
|
+
constructor(telemetryCollector, logLevel) {
|
58
|
+
super();
|
59
|
+
this.telemetryCollector = telemetryCollector;
|
60
|
+
this.level = logLevel;
|
61
|
+
// not sure if we need a more explicit name here
|
62
|
+
const { LoggerProvider } = require('@opentelemetry/sdk-logs');
|
63
|
+
const loggerProvider = new LoggerProvider();
|
64
|
+
this.otelLogger = loggerProvider.getLogger('default');
|
65
|
+
this.applicationID = utils_1.globalParams.appID;
|
66
|
+
this.executorID = utils_1.globalParams.executorID;
|
67
|
+
const logRecordProcessor = {
|
68
|
+
forceFlush: async () => {
|
69
|
+
// no-op
|
70
|
+
},
|
71
|
+
onEmit(logRecord) {
|
72
|
+
telemetryCollector.push(logRecord);
|
73
|
+
},
|
74
|
+
shutdown: async () => {
|
75
|
+
// no-op
|
76
|
+
},
|
77
|
+
};
|
78
|
+
loggerProvider.addLogRecordProcessor(logRecordProcessor);
|
79
|
+
}
|
80
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
81
|
+
log(info, callback) {
|
82
|
+
const { level, message, stack, span } = info;
|
83
|
+
const levelToSeverityNumber = {
|
84
|
+
error: SeverityNumber.ERROR,
|
85
|
+
warn: SeverityNumber.WARN,
|
86
|
+
info: SeverityNumber.INFO,
|
87
|
+
debug: SeverityNumber.DEBUG,
|
88
|
+
};
|
89
|
+
// Ideally we want to give the spanContext to the logRecord,
|
90
|
+
// But there seems to some dependency bugs in opentelemetry-js
|
91
|
+
// (span.getValue(SPAN_KEY) undefined when we pass the context, as commented bellow)
|
92
|
+
// So for now we get the traceId and spanId directly from the context and pass them through the logRecord attributes
|
93
|
+
this.otelLogger.emit({
|
94
|
+
severityNumber: levelToSeverityNumber[level],
|
95
|
+
severityText: level,
|
96
|
+
body: message,
|
97
|
+
timestamp: performance.now(), // So far I don't see a major difference between this and observedTimestamp
|
98
|
+
observedTimestamp: performance.now(),
|
99
|
+
attributes: {
|
100
|
+
...span?.attributes,
|
101
|
+
traceId: span?.spanContext()?.traceId,
|
102
|
+
spanId: span?.spanContext()?.spanId,
|
103
|
+
stack,
|
104
|
+
applicationID: this.applicationID,
|
105
|
+
applicationVersion: utils_1.globalParams.appVersion,
|
106
|
+
executorID: this.executorID,
|
107
|
+
},
|
108
|
+
});
|
109
|
+
callback();
|
110
|
+
}
|
111
|
+
}
|
112
|
+
// Import Winston dependencies only when OTLP is enabled
|
113
|
+
const { transports, createLogger } = require('winston');
|
17
114
|
const winstonTransports = [];
|
18
|
-
winstonTransports.push(new
|
19
|
-
format:
|
115
|
+
winstonTransports.push(new transports.Console({
|
116
|
+
format: getConsoleFormat(),
|
20
117
|
level: config?.logLevel || 'info',
|
21
118
|
silent: config?.silent || false,
|
22
119
|
forceConsole: config?.forceConsole || false,
|
23
120
|
}));
|
121
|
+
let otlpTransport = undefined;
|
24
122
|
// Only enable the OTLP transport if we have a telemetry collector and an exporter
|
25
|
-
if (this.telemetryCollector?.exporter) {
|
26
|
-
|
27
|
-
winstonTransports.push(
|
123
|
+
if (utils_1.globalParams.enableOTLP && this.telemetryCollector?.exporter) {
|
124
|
+
otlpTransport = new OTLPLogQueueTransport(this.telemetryCollector, config?.logLevel || 'info');
|
125
|
+
winstonTransports.push(otlpTransport);
|
28
126
|
}
|
29
|
-
this.logger =
|
30
|
-
|
31
|
-
if (process.env.DBOS__CAPTURE_STD !== 'false' && this.telemetryCollector?.exporter) {
|
127
|
+
this.logger = createLogger({ transports: winstonTransports });
|
128
|
+
if (utils_1.globalParams.enableOTLP && process.env.DBOS__CAPTURE_STD !== 'false' && this.telemetryCollector?.exporter) {
|
32
129
|
(0, utils_1.interceptStreams)((msg, stream) => {
|
33
130
|
if (stream === 'stdout') {
|
34
131
|
if (!this.isLogging) {
|
35
|
-
|
132
|
+
otlpTransport?.log({ level: 'info', message: msg.trim() }, () => { });
|
36
133
|
}
|
37
134
|
}
|
38
135
|
else {
|
39
136
|
if (!this.isLogging) {
|
40
|
-
|
137
|
+
otlpTransport?.log({ level: 'error', message: msg.trim(), stack: new Error().stack }, () => { });
|
41
138
|
}
|
42
139
|
}
|
43
140
|
});
|
@@ -132,82 +229,50 @@ class DBOSContextualLogger {
|
|
132
229
|
}
|
133
230
|
}
|
134
231
|
exports.DBOSContextualLogger = DBOSContextualLogger;
|
232
|
+
class DBOSConsoleLogger {
|
233
|
+
config;
|
234
|
+
constructor(config) {
|
235
|
+
this.config = config;
|
236
|
+
}
|
237
|
+
info(logEntry, _metadata) {
|
238
|
+
console.log(logEntry);
|
239
|
+
}
|
240
|
+
debug(logEntry, _metadata) {
|
241
|
+
if (this.config.logLevel === 'debug') {
|
242
|
+
console.debug(logEntry);
|
243
|
+
}
|
244
|
+
}
|
245
|
+
warn(logEntry, _metadata) {
|
246
|
+
console.warn(logEntry);
|
247
|
+
}
|
248
|
+
error(inputError, metadata) {
|
249
|
+
if (inputError instanceof Error) {
|
250
|
+
console.error(inputError);
|
251
|
+
}
|
252
|
+
else if (metadata?.stack) {
|
253
|
+
console.error(inputError, '\n', metadata.stack);
|
254
|
+
}
|
255
|
+
else {
|
256
|
+
console.error(inputError);
|
257
|
+
}
|
258
|
+
}
|
259
|
+
}
|
260
|
+
exports.DBOSConsoleLogger = DBOSConsoleLogger;
|
135
261
|
/***********************/
|
136
262
|
/* FORMAT & TRANSPORTS */
|
137
263
|
/***********************/
|
138
|
-
|
139
|
-
|
140
|
-
const
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
})
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
otelLogger;
|
152
|
-
applicationID;
|
153
|
-
executorID;
|
154
|
-
constructor(telemetryCollector, logLevel) {
|
155
|
-
super();
|
156
|
-
this.telemetryCollector = telemetryCollector;
|
157
|
-
this.level = logLevel;
|
158
|
-
// not sure if we need a more explicit name here
|
159
|
-
const loggerProvider = new sdk_logs_1.LoggerProvider();
|
160
|
-
this.otelLogger = loggerProvider.getLogger('default');
|
161
|
-
this.applicationID = utils_1.globalParams.appID;
|
162
|
-
this.executorID = utils_1.globalParams.executorID;
|
163
|
-
const logRecordProcessor = {
|
164
|
-
forceFlush: async () => {
|
165
|
-
// no-op
|
166
|
-
},
|
167
|
-
onEmit(logRecord) {
|
168
|
-
telemetryCollector.push(logRecord);
|
169
|
-
},
|
170
|
-
shutdown: async () => {
|
171
|
-
// no-op
|
172
|
-
},
|
173
|
-
};
|
174
|
-
loggerProvider.addLogRecordProcessor(logRecordProcessor);
|
175
|
-
}
|
176
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
177
|
-
log(info, callback) {
|
178
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
179
|
-
const { level, message, stack, span } = info;
|
180
|
-
const levelToSeverityNumber = {
|
181
|
-
error: api_logs_1.SeverityNumber.ERROR,
|
182
|
-
warn: api_logs_1.SeverityNumber.WARN,
|
183
|
-
info: api_logs_1.SeverityNumber.INFO,
|
184
|
-
debug: api_logs_1.SeverityNumber.DEBUG,
|
185
|
-
};
|
186
|
-
// Ideally we want to give the spanContext to the logRecord,
|
187
|
-
// But there seems to some dependency bugs in opentelemetry-js
|
188
|
-
// (span.getValue(SPAN_KEY) undefined when we pass the context, as commented bellow)
|
189
|
-
// So for now we get the traceId and spanId directly from the context and pass them through the logRecord attributes
|
190
|
-
this.otelLogger.emit({
|
191
|
-
severityNumber: levelToSeverityNumber[level],
|
192
|
-
severityText: level,
|
193
|
-
body: message,
|
194
|
-
timestamp: performance.now(), // So far I don't see a major difference between this and observedTimestamp
|
195
|
-
observedTimestamp: performance.now(),
|
196
|
-
attributes: {
|
197
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
198
|
-
...span?.attributes,
|
199
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
200
|
-
traceId: span?.spanContext()?.traceId,
|
201
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
202
|
-
spanId: span?.spanContext()?.spanId,
|
203
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
204
|
-
stack,
|
205
|
-
applicationID: this.applicationID,
|
206
|
-
applicationVersion: utils_1.globalParams.appVersion,
|
207
|
-
executorID: this.executorID,
|
208
|
-
},
|
209
|
-
});
|
210
|
-
callback();
|
211
|
-
}
|
264
|
+
// Lazily create the console format only when Winston is used
|
265
|
+
function getConsoleFormat() {
|
266
|
+
const { format } = require('winston');
|
267
|
+
return format.combine(format.errors({ stack: true }), format.timestamp(), format.colorize(), format.printf((info) => {
|
268
|
+
const { timestamp, level, message, stack } = info;
|
269
|
+
const applicationVersion = utils_1.globalParams.appVersion;
|
270
|
+
const ts = typeof timestamp === 'string' ? timestamp.slice(0, 19).replace('T', ' ') : undefined;
|
271
|
+
const formattedStack = typeof stack === 'string' ? stack?.split('\n').slice(1).join('\n') : undefined;
|
272
|
+
const messageString = typeof message === 'string' ? message : utils_1.DBOSJSON.stringify(message);
|
273
|
+
const fullMessageString = `${messageString}${info.includeContextMetadata ? ` ${utils_1.DBOSJSON.stringify(info.span?.attributes)}` : ''}`;
|
274
|
+
const versionString = applicationVersion ? ` [version ${applicationVersion}]` : '';
|
275
|
+
return `${ts}${versionString} [${level}]: ${fullMessageString} ${stack ? '\n' + formattedStack : ''}`;
|
276
|
+
}));
|
212
277
|
}
|
213
278
|
//# sourceMappingURL=logs.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"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"}
|
@@ -1,16 +1,52 @@
|
|
1
|
-
import { Span } from '@opentelemetry/sdk-trace-base';
|
2
|
-
import { Attributes, SpanContext } from '@opentelemetry/api';
|
3
1
|
import { TelemetryCollector } from './collector';
|
2
|
+
interface Attributes {
|
3
|
+
[attributeKey: string]: AttributeValue | undefined;
|
4
|
+
}
|
5
|
+
/**
|
6
|
+
* Attribute values may be any non-nullish primitive value except an object.
|
7
|
+
*
|
8
|
+
* null or undefined attribute values are invalid and will result in undefined behavior.
|
9
|
+
*/
|
10
|
+
declare type AttributeValue = string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>;
|
11
|
+
export declare enum SpanStatusCode {
|
12
|
+
/**
|
13
|
+
* The default status.
|
14
|
+
*/
|
15
|
+
UNSET = 0,
|
16
|
+
/**
|
17
|
+
* The operation has been validated by an Application developer or
|
18
|
+
* Operator to have completed successfully.
|
19
|
+
*/
|
20
|
+
OK = 1,
|
21
|
+
/**
|
22
|
+
* The operation contains an error.
|
23
|
+
*/
|
24
|
+
ERROR = 2
|
25
|
+
}
|
26
|
+
interface SpanStatus {
|
27
|
+
/** The status code of this message. */
|
28
|
+
code: SpanStatusCode;
|
29
|
+
/** A developer-facing error message. */
|
30
|
+
message?: string;
|
31
|
+
}
|
32
|
+
export type DBOSSpan = {
|
33
|
+
setStatus(status: SpanStatus): DBOSSpan;
|
34
|
+
attributes: Attributes;
|
35
|
+
setAttribute(key: string, attribute: AttributeValue): DBOSSpan;
|
36
|
+
addEvent(name: string, attributesOrStartTime?: Attributes, timeStamp?: number): DBOSSpan;
|
37
|
+
};
|
38
|
+
export declare function runWithTrace<R>(span: DBOSSpan, func: () => Promise<R>): Promise<R>;
|
39
|
+
export declare function getActiveSpan(): DBOSSpan | undefined;
|
4
40
|
export declare function isTraceContextWorking(): boolean;
|
5
41
|
export declare function installTraceContextManager(): void;
|
6
42
|
export declare class Tracer {
|
7
43
|
private readonly telemetryCollector;
|
8
|
-
private readonly tracer;
|
9
44
|
readonly applicationID: string;
|
10
45
|
readonly executorID: string;
|
11
46
|
constructor(telemetryCollector: TelemetryCollector);
|
12
|
-
startSpanWithContext(spanContext:
|
13
|
-
startSpan(name: string, attributes?: Attributes,
|
14
|
-
endSpan(
|
47
|
+
startSpanWithContext(spanContext: unknown, name: string, attributes?: Attributes): DBOSSpan;
|
48
|
+
startSpan(name: string, attributes?: Attributes, inputSpan?: DBOSSpan): DBOSSpan;
|
49
|
+
endSpan(inputSpan: DBOSSpan): void;
|
15
50
|
}
|
51
|
+
export {};
|
16
52
|
//# sourceMappingURL=traces.d.ts.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../src/telemetry/traces.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"traces.d.ts","sourceRoot":"","sources":["../../../src/telemetry/traces.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOjD,UAAU,UAAU;IAClB,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAC;CACpD;AACD;;;;GAIG;AACH,OAAO,MAAM,cAAc,GACvB,MAAM,GACN,MAAM,GACN,OAAO,GACP,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAChC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,MAAM,CAAC,GAChC,KAAK,CAAC,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,CAAC;AAEtC,oBAAY,cAAc;IACxB;;OAEG;IACH,KAAK,IAAI;IACT;;;OAGG;IACH,EAAE,IAAI;IACN;;OAEG;IACH,KAAK,IAAI;CACV;AAED,UAAU,UAAU;IAClB,uCAAuC;IACvC,IAAI,EAAE,cAAc,CAAC;IACrB,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,MAAM,QAAQ,GAAG;IACrB,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,QAAQ,CAAC;IACxC,UAAU,EAAE,UAAU,CAAC;IACvB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,cAAc,GAAG,QAAQ,CAAC;IAC/D,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,qBAAqB,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CAC1F,CAAC;AAkBF,wBAAgB,YAAY,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAMlF;AAED,wBAAgB,aAAa,yBAM5B;AAED,wBAAgB,qBAAqB,IAAI,OAAO,CAe/C;AAED,wBAAgB,0BAA0B,SAczC;AAED,qBAAa,MAAM;IAGL,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAF/C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBACC,kBAAkB,EAAE,kBAAkB;IAiBnE,oBAAoB,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,QAAQ;IAU3F,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ;IAiBhF,OAAO,CAAC,SAAS,EAAE,QAAQ;CAgB5B"}
|