@dbos-inc/dbos-sdk 3.6.8-preview → 3.6.10-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.
@@ -2,11 +2,7 @@
2
2
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
3
3
  /* eslint-disable @typescript-eslint/no-unsafe-call */
4
4
  Object.defineProperty(exports, "__esModule", { value: true });
5
- exports.consoleFormat = exports.DBOSContextualLogger = exports.GlobalLogger = void 0;
6
- /* eslint-disable @typescript-eslint/no-require-imports */
7
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
8
- const winston_1 = require("winston");
9
- const TransportStream = require("winston-transport");
5
+ exports.DBOSConsoleLogger = exports.DBOSContextualLogger = exports.GlobalLogger = void 0;
10
6
  const utils_1 = require("../utils");
11
7
  // As DBOS OTLP is optional, OTLP objects must only be dynamically imported
12
8
  // and only when OTLP is enabled. Importing OTLP types is fine as long
@@ -44,33 +40,101 @@ class GlobalLogger {
44
40
  logger;
45
41
  addContextMetadata;
46
42
  isLogging = false; // Prevent recursive logging
47
- otlpTransport;
48
43
  constructor(telemetryCollector, config) {
49
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');
50
114
  const winstonTransports = [];
51
- winstonTransports.push(new winston_1.transports.Console({
52
- format: exports.consoleFormat,
115
+ winstonTransports.push(new transports.Console({
116
+ format: getConsoleFormat(),
53
117
  level: config?.logLevel || 'info',
54
118
  silent: config?.silent || false,
55
119
  forceConsole: config?.forceConsole || false,
56
120
  }));
121
+ let otlpTransport = undefined;
57
122
  // Only enable the OTLP transport if we have a telemetry collector and an exporter
58
123
  if (utils_1.globalParams.enableOTLP && this.telemetryCollector?.exporter) {
59
- this.otlpTransport = new OTLPLogQueueTransport(this.telemetryCollector, config?.logLevel || 'info');
60
- winstonTransports.push(this.otlpTransport);
124
+ otlpTransport = new OTLPLogQueueTransport(this.telemetryCollector, config?.logLevel || 'info');
125
+ winstonTransports.push(otlpTransport);
61
126
  }
62
- this.logger = (0, winston_1.createLogger)({ transports: winstonTransports });
63
- this.addContextMetadata = config?.addContextMetadata || false;
127
+ this.logger = createLogger({ transports: winstonTransports });
64
128
  if (utils_1.globalParams.enableOTLP && process.env.DBOS__CAPTURE_STD !== 'false' && this.telemetryCollector?.exporter) {
65
129
  (0, utils_1.interceptStreams)((msg, stream) => {
66
130
  if (stream === 'stdout') {
67
131
  if (!this.isLogging) {
68
- this.otlpTransport?.log({ level: 'info', message: msg.trim() }, () => { });
132
+ otlpTransport?.log({ level: 'info', message: msg.trim() }, () => { });
69
133
  }
70
134
  }
71
135
  else {
72
136
  if (!this.isLogging) {
73
- this.otlpTransport?.log({ level: 'error', message: msg.trim(), stack: new Error().stack }, () => { });
137
+ otlpTransport?.log({ level: 'error', message: msg.trim(), stack: new Error().stack }, () => { });
74
138
  }
75
139
  }
76
140
  });
@@ -165,78 +229,50 @@ class DBOSContextualLogger {
165
229
  }
166
230
  }
167
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;
168
261
  /***********************/
169
262
  /* FORMAT & TRANSPORTS */
170
263
  /***********************/
171
- exports.consoleFormat = winston_1.format.combine(winston_1.format.errors({ stack: true }), winston_1.format.timestamp(), winston_1.format.colorize(), winston_1.format.printf((info) => {
172
- const { timestamp, level, message, stack } = info;
173
- const applicationVersion = utils_1.globalParams.appVersion;
174
- const ts = typeof timestamp === 'string' ? timestamp.slice(0, 19).replace('T', ' ') : undefined;
175
- const formattedStack = typeof stack === 'string' ? stack?.split('\n').slice(1).join('\n') : undefined;
176
- const messageString = typeof message === 'string' ? message : utils_1.DBOSJSON.stringify(message);
177
- const fullMessageString = `${messageString}${info.includeContextMetadata ? ` ${utils_1.DBOSJSON.stringify(info.span?.attributes)}` : ''}`;
178
- const versionString = applicationVersion ? ` [version ${applicationVersion}]` : '';
179
- return `${ts}${versionString} [${level}]: ${fullMessageString} ${stack ? '\n' + formattedStack : ''}`;
180
- }));
181
- class OTLPLogQueueTransport extends TransportStream {
182
- telemetryCollector;
183
- name = 'OTLPLogQueueTransport';
184
- otelLogger;
185
- applicationID;
186
- executorID;
187
- constructor(telemetryCollector, logLevel) {
188
- super();
189
- this.telemetryCollector = telemetryCollector;
190
- this.level = logLevel;
191
- // not sure if we need a more explicit name here
192
- const { LoggerProvider } = require('@opentelemetry/sdk-logs');
193
- const loggerProvider = new LoggerProvider();
194
- this.otelLogger = loggerProvider.getLogger('default');
195
- this.applicationID = utils_1.globalParams.appID;
196
- this.executorID = utils_1.globalParams.executorID;
197
- const logRecordProcessor = {
198
- forceFlush: async () => {
199
- // no-op
200
- },
201
- onEmit(logRecord) {
202
- telemetryCollector.push(logRecord);
203
- },
204
- shutdown: async () => {
205
- // no-op
206
- },
207
- };
208
- loggerProvider.addLogRecordProcessor(logRecordProcessor);
209
- }
210
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
211
- log(info, callback) {
212
- const { level, message, stack, span } = info;
213
- const levelToSeverityNumber = {
214
- error: SeverityNumber.ERROR,
215
- warn: SeverityNumber.WARN,
216
- info: SeverityNumber.INFO,
217
- debug: SeverityNumber.DEBUG,
218
- };
219
- // Ideally we want to give the spanContext to the logRecord,
220
- // But there seems to some dependency bugs in opentelemetry-js
221
- // (span.getValue(SPAN_KEY) undefined when we pass the context, as commented bellow)
222
- // So for now we get the traceId and spanId directly from the context and pass them through the logRecord attributes
223
- this.otelLogger.emit({
224
- severityNumber: levelToSeverityNumber[level],
225
- severityText: level,
226
- body: message,
227
- timestamp: performance.now(), // So far I don't see a major difference between this and observedTimestamp
228
- observedTimestamp: performance.now(),
229
- attributes: {
230
- ...span?.attributes,
231
- traceId: span?.spanContext()?.traceId,
232
- spanId: span?.spanContext()?.spanId,
233
- stack,
234
- applicationID: this.applicationID,
235
- applicationVersion: utils_1.globalParams.appVersion,
236
- executorID: this.executorID,
237
- },
238
- });
239
- callback();
240
- }
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
+ }));
241
277
  }
242
278
  //# sourceMappingURL=logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/telemetry/logs.ts"],"names":[],"mappings":"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"}