@dbos-inc/dbos-sdk 3.6.8-preview → 3.6.14-preview.g853a620b5a
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 +1 -101
- package/dist/dbos-config.schema.json +1 -101
- package/dist/src/adminserver.d.ts +13 -1
- package/dist/src/adminserver.d.ts.map +1 -1
- package/dist/src/adminserver.js +20 -1
- package/dist/src/adminserver.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 +1 -15
- package/dist/src/dbos-executor.d.ts.map +1 -1
- package/dist/src/dbos-executor.js +11 -10
- package/dist/src/dbos-executor.js.map +1 -1
- package/dist/src/dbos.d.ts +13 -2
- package/dist/src/dbos.d.ts.map +1 -1
- package/dist/src/dbos.js +34 -3
- package/dist/src/dbos.js.map +1 -1
- package/dist/src/telemetry/collector.d.ts +4 -1
- 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 +7 -3
- package/dist/src/telemetry/exporters.d.ts.map +1 -1
- package/dist/src/telemetry/exporters.js +10 -27
- package/dist/src/telemetry/exporters.js.map +1 -1
- package/dist/src/telemetry/index.d.ts +12 -0
- package/dist/src/telemetry/index.d.ts.map +1 -0
- package/dist/src/telemetry/index.js +14 -0
- package/dist/src/telemetry/index.js.map +1 -0
- package/dist/src/telemetry/logs.d.ts +16 -5
- package/dist/src/telemetry/logs.d.ts.map +1 -1
- package/dist/src/telemetry/logs.js +15 -44
- package/dist/src/telemetry/logs.js.map +1 -1
- package/dist/src/telemetry/traces.d.ts +6 -42
- package/dist/src/telemetry/traces.d.ts.map +1 -1
- package/dist/src/telemetry/traces.js +31 -95
- package/dist/src/telemetry/traces.js.map +1 -1
- package/dist/src/utils.d.ts +0 -2
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +1 -7
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +10 -2
@@ -1,52 +1,38 @@
|
|
1
1
|
"use strict";
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
3
|
exports.TelemetryExporter = void 0;
|
4
|
-
const
|
5
|
-
|
6
|
-
|
7
|
-
|
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
|
-
}
|
4
|
+
const _1 = require("./");
|
5
|
+
const exporter_trace_otlp_proto_1 = require("@opentelemetry/exporter-trace-otlp-proto");
|
6
|
+
const exporter_logs_otlp_proto_1 = require("@opentelemetry/exporter-logs-otlp-proto");
|
7
|
+
const core_1 = require("@opentelemetry/core");
|
13
8
|
class TelemetryExporter {
|
14
9
|
tracesExporters = [];
|
15
10
|
logsExporters = [];
|
16
11
|
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');
|
22
12
|
const tracesSet = new Set(config.tracesEndpoint);
|
23
13
|
for (const endpoint of tracesSet) {
|
24
|
-
this.tracesExporters.push(new OTLPTraceExporter({
|
14
|
+
this.tracesExporters.push(new exporter_trace_otlp_proto_1.OTLPTraceExporter({
|
25
15
|
url: endpoint,
|
26
16
|
}));
|
27
17
|
console.log(`Traces will be exported to ${endpoint}`);
|
28
18
|
}
|
29
19
|
const logsSet = new Set(config.logsEndpoint);
|
30
20
|
for (const endpoint of logsSet) {
|
31
|
-
this.logsExporters.push(new OTLPLogExporter({
|
21
|
+
this.logsExporters.push(new exporter_logs_otlp_proto_1.OTLPLogExporter({
|
32
22
|
url: endpoint,
|
33
23
|
}));
|
34
24
|
console.log(`Logs will be exported to ${endpoint}`);
|
35
25
|
}
|
36
26
|
}
|
37
27
|
async export(signals) {
|
38
|
-
if (!utils_1.globalParams.enableOTLP) {
|
39
|
-
return;
|
40
|
-
}
|
41
|
-
const { ExportResultCode } = require('@opentelemetry/core');
|
42
28
|
// Sort out traces and logs
|
43
29
|
const exportSpans = [];
|
44
30
|
const exportLogs = [];
|
45
31
|
signals.forEach((signal) => {
|
46
|
-
if (isTraceSignal(signal)) {
|
32
|
+
if ((0, _1.isTraceSignal)(signal)) {
|
47
33
|
exportSpans.push(signal);
|
48
34
|
}
|
49
|
-
if (isLogSignal(signal)) {
|
35
|
+
if ((0, _1.isLogSignal)(signal)) {
|
50
36
|
exportLogs.push(signal);
|
51
37
|
}
|
52
38
|
});
|
@@ -56,7 +42,7 @@ class TelemetryExporter {
|
|
56
42
|
if (exportSpans.length > 0 && this.tracesExporters.length > 0) {
|
57
43
|
const traceExportTask = new Promise((resolve) => {
|
58
44
|
const exportCallback = (results) => {
|
59
|
-
if (results.code !== ExportResultCode.SUCCESS) {
|
45
|
+
if (results.code !== core_1.ExportResultCode.SUCCESS) {
|
60
46
|
console.warn(`Trace export failed: ${results.code}`);
|
61
47
|
console.warn(results);
|
62
48
|
}
|
@@ -71,7 +57,7 @@ class TelemetryExporter {
|
|
71
57
|
if (exportLogs.length > 0 && this.logsExporters.length > 0) {
|
72
58
|
const logExportTask = new Promise((resolve) => {
|
73
59
|
const exportCallback = (results) => {
|
74
|
-
if (results.code !== ExportResultCode.SUCCESS) {
|
60
|
+
if (results.code !== core_1.ExportResultCode.SUCCESS) {
|
75
61
|
console.warn(`Log export failed: ${results.code}`);
|
76
62
|
console.warn(results);
|
77
63
|
}
|
@@ -86,9 +72,6 @@ class TelemetryExporter {
|
|
86
72
|
await Promise.all(tasks);
|
87
73
|
}
|
88
74
|
async flush() {
|
89
|
-
if (!utils_1.globalParams.enableOTLP) {
|
90
|
-
return;
|
91
|
-
}
|
92
75
|
for (const exporter of this.tracesExporters) {
|
93
76
|
await exporter.forceFlush();
|
94
77
|
}
|
@@ -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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"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import { LoggerConfig } from './logs';
|
2
|
+
import { OTLPExporterConfig } from './exporters';
|
3
|
+
import { Span } from '@opentelemetry/sdk-trace-base';
|
4
|
+
import { LogRecord } from '@opentelemetry/api-logs';
|
5
|
+
import { TelemetrySignal } from './collector';
|
6
|
+
export declare function isTraceSignal(signal: TelemetrySignal): signal is Span;
|
7
|
+
export declare function isLogSignal(signal: TelemetrySignal): signal is LogRecord;
|
8
|
+
export interface TelemetryConfig {
|
9
|
+
logs?: LoggerConfig;
|
10
|
+
OTLPExporter?: OTLPExporterConfig;
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=index.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C,wBAAgB,aAAa,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,IAAI,IAAI,CAGrE;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,eAAe,GAAG,MAAM,IAAI,SAAS,CAGxE;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,YAAY,CAAC;IACpB,YAAY,CAAC,EAAE,kBAAkB,CAAC;CACnC"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.isLogSignal = exports.isTraceSignal = void 0;
|
4
|
+
function isTraceSignal(signal) {
|
5
|
+
// Span is an interface that has a property 'kind'
|
6
|
+
return 'kind' in signal;
|
7
|
+
}
|
8
|
+
exports.isTraceSignal = isTraceSignal;
|
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
|
+
}
|
13
|
+
exports.isLogSignal = isLogSignal;
|
14
|
+
//# sourceMappingURL=index.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/telemetry/index.ts"],"names":[],"mappings":";;;AAMA,SAAgB,aAAa,CAAC,MAAuB;IACnD,kDAAkD;IAClD,OAAO,MAAM,IAAI,MAAM,CAAC;AAC1B,CAAC;AAHD,sCAGC;AAED,SAAgB,WAAW,CAAC,MAAuB;IACjD,oFAAoF;IACpF,OAAO,cAAc,IAAI,MAAM,IAAI,gBAAgB,IAAI,MAAM,CAAC;AAChE,CAAC;AAHD,kCAGC"}
|
@@ -1,15 +1,26 @@
|
|
1
|
+
import { Logger as IWinstonLogger } from 'winston';
|
2
|
+
import { Span } from '@opentelemetry/sdk-trace-base';
|
1
3
|
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
|
+
}
|
6
12
|
type ContextualMetadata = {
|
7
13
|
includeContextMetadata: boolean;
|
8
|
-
span
|
14
|
+
span: Span;
|
9
15
|
};
|
10
16
|
interface StackTrace {
|
11
17
|
stack?: string;
|
12
18
|
}
|
19
|
+
export interface IGlobalLogger extends IWinstonLogger {
|
20
|
+
readonly addContextMetadata: boolean;
|
21
|
+
readonly logger: IWinstonLogger;
|
22
|
+
readonly telemetryCollector: TelemetryCollector;
|
23
|
+
}
|
13
24
|
export declare class GlobalLogger {
|
14
25
|
private readonly telemetryCollector?;
|
15
26
|
private readonly logger;
|
@@ -33,9 +44,9 @@ export interface DLogger {
|
|
33
44
|
}
|
34
45
|
export declare class DBOSContextualLogger implements DLogger {
|
35
46
|
private readonly globalLogger;
|
36
|
-
readonly ctx: () =>
|
47
|
+
readonly ctx: () => Span;
|
37
48
|
readonly includeContextMetadata: boolean;
|
38
|
-
constructor(globalLogger: GlobalLogger, ctx: () =>
|
49
|
+
constructor(globalLogger: GlobalLogger, ctx: () => Span);
|
39
50
|
info(logEntry: unknown, metadata?: ContextualMetadata): void;
|
40
51
|
debug(logEntry: unknown, metadata?: ContextualMetadata): void;
|
41
52
|
warn(logEntry: unknown, metadata?: ContextualMetadata): void;
|
@@ -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,44 +1,11 @@
|
|
1
1
|
"use strict";
|
2
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
4
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
5
3
|
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
4
|
const winston_1 = require("winston");
|
9
|
-
const TransportStream = require("winston-transport");
|
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");
|
10
8
|
const utils_1 = require("../utils");
|
11
|
-
// As DBOS OTLP is optional, OTLP objects must only be dynamically imported
|
12
|
-
// and only when OTLP is enabled. Importing OTLP types is fine as long
|
13
|
-
// as signatures using those types are not exported from this file.
|
14
|
-
var SeverityNumber;
|
15
|
-
(function (SeverityNumber) {
|
16
|
-
SeverityNumber[SeverityNumber["UNSPECIFIED"] = 0] = "UNSPECIFIED";
|
17
|
-
SeverityNumber[SeverityNumber["TRACE"] = 1] = "TRACE";
|
18
|
-
SeverityNumber[SeverityNumber["TRACE2"] = 2] = "TRACE2";
|
19
|
-
SeverityNumber[SeverityNumber["TRACE3"] = 3] = "TRACE3";
|
20
|
-
SeverityNumber[SeverityNumber["TRACE4"] = 4] = "TRACE4";
|
21
|
-
SeverityNumber[SeverityNumber["DEBUG"] = 5] = "DEBUG";
|
22
|
-
SeverityNumber[SeverityNumber["DEBUG2"] = 6] = "DEBUG2";
|
23
|
-
SeverityNumber[SeverityNumber["DEBUG3"] = 7] = "DEBUG3";
|
24
|
-
SeverityNumber[SeverityNumber["DEBUG4"] = 8] = "DEBUG4";
|
25
|
-
SeverityNumber[SeverityNumber["INFO"] = 9] = "INFO";
|
26
|
-
SeverityNumber[SeverityNumber["INFO2"] = 10] = "INFO2";
|
27
|
-
SeverityNumber[SeverityNumber["INFO3"] = 11] = "INFO3";
|
28
|
-
SeverityNumber[SeverityNumber["INFO4"] = 12] = "INFO4";
|
29
|
-
SeverityNumber[SeverityNumber["WARN"] = 13] = "WARN";
|
30
|
-
SeverityNumber[SeverityNumber["WARN2"] = 14] = "WARN2";
|
31
|
-
SeverityNumber[SeverityNumber["WARN3"] = 15] = "WARN3";
|
32
|
-
SeverityNumber[SeverityNumber["WARN4"] = 16] = "WARN4";
|
33
|
-
SeverityNumber[SeverityNumber["ERROR"] = 17] = "ERROR";
|
34
|
-
SeverityNumber[SeverityNumber["ERROR2"] = 18] = "ERROR2";
|
35
|
-
SeverityNumber[SeverityNumber["ERROR3"] = 19] = "ERROR3";
|
36
|
-
SeverityNumber[SeverityNumber["ERROR4"] = 20] = "ERROR4";
|
37
|
-
SeverityNumber[SeverityNumber["FATAL"] = 21] = "FATAL";
|
38
|
-
SeverityNumber[SeverityNumber["FATAL2"] = 22] = "FATAL2";
|
39
|
-
SeverityNumber[SeverityNumber["FATAL3"] = 23] = "FATAL3";
|
40
|
-
SeverityNumber[SeverityNumber["FATAL4"] = 24] = "FATAL4";
|
41
|
-
})(SeverityNumber || (SeverityNumber = {}));
|
42
9
|
class GlobalLogger {
|
43
10
|
telemetryCollector;
|
44
11
|
logger;
|
@@ -55,13 +22,13 @@ class GlobalLogger {
|
|
55
22
|
forceConsole: config?.forceConsole || false,
|
56
23
|
}));
|
57
24
|
// Only enable the OTLP transport if we have a telemetry collector and an exporter
|
58
|
-
if (
|
25
|
+
if (this.telemetryCollector?.exporter) {
|
59
26
|
this.otlpTransport = new OTLPLogQueueTransport(this.telemetryCollector, config?.logLevel || 'info');
|
60
27
|
winstonTransports.push(this.otlpTransport);
|
61
28
|
}
|
62
29
|
this.logger = (0, winston_1.createLogger)({ transports: winstonTransports });
|
63
30
|
this.addContextMetadata = config?.addContextMetadata || false;
|
64
|
-
if (
|
31
|
+
if (process.env.DBOS__CAPTURE_STD !== 'false' && this.telemetryCollector?.exporter) {
|
65
32
|
(0, utils_1.interceptStreams)((msg, stream) => {
|
66
33
|
if (stream === 'stdout') {
|
67
34
|
if (!this.isLogging) {
|
@@ -189,8 +156,7 @@ class OTLPLogQueueTransport extends TransportStream {
|
|
189
156
|
this.telemetryCollector = telemetryCollector;
|
190
157
|
this.level = logLevel;
|
191
158
|
// not sure if we need a more explicit name here
|
192
|
-
const
|
193
|
-
const loggerProvider = new LoggerProvider();
|
159
|
+
const loggerProvider = new sdk_logs_1.LoggerProvider();
|
194
160
|
this.otelLogger = loggerProvider.getLogger('default');
|
195
161
|
this.applicationID = utils_1.globalParams.appID;
|
196
162
|
this.executorID = utils_1.globalParams.executorID;
|
@@ -209,12 +175,13 @@ class OTLPLogQueueTransport extends TransportStream {
|
|
209
175
|
}
|
210
176
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
211
177
|
log(info, callback) {
|
178
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
212
179
|
const { level, message, stack, span } = info;
|
213
180
|
const levelToSeverityNumber = {
|
214
|
-
error: SeverityNumber.ERROR,
|
215
|
-
warn: SeverityNumber.WARN,
|
216
|
-
info: SeverityNumber.INFO,
|
217
|
-
debug: SeverityNumber.DEBUG,
|
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,
|
218
185
|
};
|
219
186
|
// Ideally we want to give the spanContext to the logRecord,
|
220
187
|
// But there seems to some dependency bugs in opentelemetry-js
|
@@ -227,9 +194,13 @@ class OTLPLogQueueTransport extends TransportStream {
|
|
227
194
|
timestamp: performance.now(), // So far I don't see a major difference between this and observedTimestamp
|
228
195
|
observedTimestamp: performance.now(),
|
229
196
|
attributes: {
|
197
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
230
198
|
...span?.attributes,
|
199
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-unsafe-call
|
231
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
|
232
202
|
spanId: span?.spanContext()?.spanId,
|
203
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
233
204
|
stack,
|
234
205
|
applicationID: this.applicationID,
|
235
206
|
applicationVersion: utils_1.globalParams.appVersion,
|
@@ -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,52 +1,16 @@
|
|
1
|
+
import { Span } from '@opentelemetry/sdk-trace-base';
|
2
|
+
import { Attributes, SpanContext } from '@opentelemetry/api';
|
1
3
|
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;
|
40
4
|
export declare function isTraceContextWorking(): boolean;
|
41
5
|
export declare function installTraceContextManager(): void;
|
42
6
|
export declare class Tracer {
|
43
7
|
private readonly telemetryCollector;
|
8
|
+
private readonly tracer;
|
44
9
|
readonly applicationID: string;
|
45
10
|
readonly executorID: string;
|
46
11
|
constructor(telemetryCollector: TelemetryCollector);
|
47
|
-
startSpanWithContext(spanContext:
|
48
|
-
startSpan(name: string, attributes?: Attributes,
|
49
|
-
endSpan(
|
12
|
+
startSpanWithContext(spanContext: SpanContext, name: string, attributes?: Attributes): Span;
|
13
|
+
startSpan(name: string, attributes?: Attributes, parentSpan?: Span): Span;
|
14
|
+
endSpan(span: Span): void;
|
50
15
|
}
|
51
|
-
export {};
|
52
16
|
//# 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":"AAAA,OAAO,EAAqC,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAExF,OAAsB,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAOjD,wBAAgB,qBAAqB,IAAI,OAAO,CAW/C;AAED,wBAAgB,0BAA0B,SAOzC;AAED,qBAAa,MAAM;IAIL,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IAH/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAsB;IAC7C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBACC,kBAAkB,EAAE,kBAAkB;IAWnE,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,GAAG,IAAI;IAM3F,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,IAAI,GAAG,IAAI;IAWzE,OAAO,CAAC,IAAI,EAAE,IAAI;CAWnB"}
|
@@ -1,132 +1,68 @@
|
|
1
1
|
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
-
exports.Tracer = exports.installTraceContextManager = exports.isTraceContextWorking =
|
6
|
+
exports.Tracer = exports.installTraceContextManager = exports.isTraceContextWorking = void 0;
|
7
|
+
const sdk_trace_base_1 = require("@opentelemetry/sdk-trace-base");
|
8
|
+
const resources_1 = require("@opentelemetry/resources");
|
9
|
+
const api_1 = __importDefault(require("@opentelemetry/api"));
|
10
|
+
const core_1 = require("@opentelemetry/core");
|
4
11
|
const utils_1 = require("../utils");
|
5
|
-
|
6
|
-
|
7
|
-
/**
|
8
|
-
* The default status.
|
9
|
-
*/
|
10
|
-
SpanStatusCode[SpanStatusCode["UNSET"] = 0] = "UNSET";
|
11
|
-
/**
|
12
|
-
* The operation has been validated by an Application developer or
|
13
|
-
* Operator to have completed successfully.
|
14
|
-
*/
|
15
|
-
SpanStatusCode[SpanStatusCode["OK"] = 1] = "OK";
|
16
|
-
/**
|
17
|
-
* The operation contains an error.
|
18
|
-
*/
|
19
|
-
SpanStatusCode[SpanStatusCode["ERROR"] = 2] = "ERROR";
|
20
|
-
})(SpanStatusCode || (exports.SpanStatusCode = SpanStatusCode = {}));
|
21
|
-
class StubSpan {
|
22
|
-
attributes = {};
|
23
|
-
setStatus(_status) {
|
24
|
-
return this;
|
25
|
-
}
|
26
|
-
setAttribute(_key, _attribute) {
|
27
|
-
return this;
|
28
|
-
}
|
29
|
-
addEvent(_name, _attributesOrStartTime, _timeStamp) {
|
30
|
-
return this;
|
31
|
-
}
|
32
|
-
}
|
33
|
-
function runWithTrace(span, func) {
|
34
|
-
if (!utils_1.globalParams.enableOTLP) {
|
35
|
-
return func();
|
36
|
-
}
|
37
|
-
const { context, trace } = require('@opentelemetry/api');
|
38
|
-
return context.with(trace.setSpan(context.active(), span), func);
|
39
|
-
}
|
40
|
-
exports.runWithTrace = runWithTrace;
|
41
|
-
function getActiveSpan() {
|
42
|
-
if (!utils_1.globalParams.enableOTLP) {
|
43
|
-
return undefined;
|
44
|
-
}
|
45
|
-
const { trace } = require('@opentelemetry/api');
|
46
|
-
return trace.getActiveSpan();
|
47
|
-
}
|
48
|
-
exports.getActiveSpan = getActiveSpan;
|
12
|
+
const api_2 = require("@opentelemetry/api");
|
13
|
+
const context_async_hooks_1 = require("@opentelemetry/context-async-hooks");
|
49
14
|
function isTraceContextWorking() {
|
50
|
-
|
51
|
-
|
52
|
-
}
|
53
|
-
const { context, trace } = require('@opentelemetry/api');
|
54
|
-
const span = trace.getTracer('otel-bootstrap-check').startSpan('probe');
|
55
|
-
const testContext = trace.setSpan(context.active(), span);
|
15
|
+
const span = api_2.trace.getTracer('otel-bootstrap-check').startSpan('probe');
|
16
|
+
const testContext = api_2.trace.setSpan(api_2.context.active(), span);
|
56
17
|
let visible;
|
57
|
-
context.with(testContext, () => {
|
58
|
-
visible = trace.getSpan(context.active()) === span;
|
18
|
+
api_2.context.with(testContext, () => {
|
19
|
+
visible = api_2.trace.getSpan(api_2.context.active()) === span;
|
59
20
|
});
|
60
21
|
span.end?.();
|
61
22
|
return visible === true;
|
62
23
|
}
|
63
24
|
exports.isTraceContextWorking = isTraceContextWorking;
|
64
25
|
function installTraceContextManager() {
|
65
|
-
|
66
|
-
return;
|
67
|
-
}
|
68
|
-
const { AsyncLocalStorageContextManager } = require('@opentelemetry/context-async-hooks');
|
69
|
-
const { context } = require('@opentelemetry/api');
|
70
|
-
const { BasicTracerProvider } = require('@opentelemetry/sdk-trace-base');
|
71
|
-
const contextManager = new AsyncLocalStorageContextManager();
|
26
|
+
const contextManager = new context_async_hooks_1.AsyncLocalStorageContextManager();
|
72
27
|
contextManager.enable();
|
73
|
-
context.setGlobalContextManager(contextManager);
|
74
|
-
const provider = new BasicTracerProvider();
|
28
|
+
api_2.context.setGlobalContextManager(contextManager);
|
29
|
+
const provider = new sdk_trace_base_1.BasicTracerProvider();
|
75
30
|
provider.register();
|
76
31
|
}
|
77
32
|
exports.installTraceContextManager = installTraceContextManager;
|
78
33
|
class Tracer {
|
79
34
|
telemetryCollector;
|
35
|
+
tracer;
|
80
36
|
applicationID;
|
81
37
|
executorID;
|
82
38
|
constructor(telemetryCollector) {
|
83
39
|
this.telemetryCollector = telemetryCollector;
|
84
|
-
this.
|
85
|
-
|
86
|
-
if (!utils_1.globalParams.enableOTLP) {
|
87
|
-
return;
|
88
|
-
}
|
89
|
-
const { BasicTracerProvider } = require('@opentelemetry/sdk-trace-base');
|
90
|
-
const { Resource } = require('@opentelemetry/resources');
|
91
|
-
const tracer = new BasicTracerProvider({
|
92
|
-
resource: new Resource({
|
40
|
+
this.tracer = new sdk_trace_base_1.BasicTracerProvider({
|
41
|
+
resource: new resources_1.Resource({
|
93
42
|
'service.name': 'dbos',
|
94
43
|
}),
|
95
44
|
});
|
96
|
-
tracer.register(); // this is a no-op if another tracer provider was already registered
|
45
|
+
this.tracer.register(); // this is a no-op if another tracer provider was already registered
|
46
|
+
this.applicationID = utils_1.globalParams.appID;
|
47
|
+
this.executorID = utils_1.globalParams.executorID; // for consistency with src/context.ts
|
97
48
|
}
|
98
49
|
startSpanWithContext(spanContext, name, attributes) {
|
99
|
-
|
100
|
-
|
101
|
-
}
|
102
|
-
const opentelemetry = require('@opentelemetry/api');
|
103
|
-
const tracer = opentelemetry.trace.getTracer('dbos-tracer');
|
104
|
-
const ctx = opentelemetry.trace.setSpanContext(opentelemetry.context.active(), spanContext);
|
50
|
+
const tracer = api_1.default.trace.getTracer('dbos-tracer');
|
51
|
+
const ctx = api_1.default.trace.setSpanContext(api_1.default.context.active(), spanContext);
|
105
52
|
return tracer.startSpan(name, { startTime: performance.now(), attributes: attributes }, ctx);
|
106
53
|
}
|
107
|
-
startSpan(name, attributes,
|
108
|
-
|
109
|
-
|
110
|
-
}
|
111
|
-
const parentSpan = inputSpan;
|
112
|
-
const opentelemetry = require('@opentelemetry/api');
|
113
|
-
const { hrTime } = require('@opentelemetry/core');
|
114
|
-
const tracer = opentelemetry.trace.getTracer('dbos-tracer');
|
115
|
-
const startTime = hrTime(performance.now());
|
54
|
+
startSpan(name, attributes, parentSpan) {
|
55
|
+
const tracer = api_1.default.trace.getTracer('dbos-tracer');
|
56
|
+
const startTime = (0, core_1.hrTime)(performance.now());
|
116
57
|
if (parentSpan) {
|
117
|
-
const ctx =
|
58
|
+
const ctx = api_1.default.trace.setSpan(api_1.default.context.active(), parentSpan);
|
118
59
|
return tracer.startSpan(name, { startTime: startTime, attributes: attributes }, ctx);
|
119
60
|
}
|
120
61
|
else {
|
121
62
|
return tracer.startSpan(name, { startTime: startTime, attributes: attributes });
|
122
63
|
}
|
123
64
|
}
|
124
|
-
endSpan(
|
125
|
-
if (!utils_1.globalParams.enableOTLP) {
|
126
|
-
return;
|
127
|
-
}
|
128
|
-
const { hrTime } = require('@opentelemetry/core');
|
129
|
-
const span = inputSpan;
|
65
|
+
endSpan(span) {
|
130
66
|
span.setAttributes({
|
131
67
|
applicationID: this.applicationID,
|
132
68
|
applicationVersion: utils_1.globalParams.appVersion,
|
@@ -134,7 +70,7 @@ class Tracer {
|
|
134
70
|
if (span.attributes && !('executorID' in span.attributes)) {
|
135
71
|
span.setAttribute('executorID', this.executorID);
|
136
72
|
}
|
137
|
-
span.end(hrTime(performance.now()));
|
73
|
+
span.end((0, core_1.hrTime)(performance.now()));
|
138
74
|
this.telemetryCollector.push(span);
|
139
75
|
}
|
140
76
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../../src/telemetry/traces.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"traces.js","sourceRoot":"","sources":["../../../src/telemetry/traces.ts"],"names":[],"mappings":"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"}
|
package/dist/src/utils.d.ts
CHANGED
@@ -9,13 +9,11 @@ export type SerializationRecipe<T, S extends JSONValue> = {
|
|
9
9
|
};
|
10
10
|
export declare function registerSerializationRecipe<T, S extends JSONValue>(r: SerializationRecipe<T, S>): void;
|
11
11
|
export declare function readFileSync(path: string, encoding?: BufferEncoding): string;
|
12
|
-
export declare function defaultEnableOTLP(): boolean;
|
13
12
|
export declare const globalParams: {
|
14
13
|
appVersion: string;
|
15
14
|
wasComputed: boolean;
|
16
15
|
executorID: string;
|
17
16
|
appID: string;
|
18
|
-
enableOTLP: boolean;
|
19
17
|
dbosVersion: string;
|
20
18
|
};
|
21
19
|
export declare const sleepms: (ms: number) => Promise<unknown>;
|
package/dist/src/utils.d.ts.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;AAE1B,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,QAE/F;AAaD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,CAEpF;
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":";AAGA,OAAO,KAAK,EAAmB,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,KAAK,SAAS,EAAE,CAAC;AAE1B,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,IAAI;IACxD,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC;IACrC,SAAS,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;CAC1B,CAAC;AAEF,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,CAAC,SAAS,SAAS,EAAE,CAAC,EAAE,mBAAmB,CAAC,CAAC,EAAE,CAAC,CAAC,QAE/F;AAaD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,cAAuB,GAAG,MAAM,CAEpF;AAoCD,eAAO,MAAM,YAAY;;;;;;CAMxB,CAAC;AACF,eAAO,MAAM,OAAO,OAAQ,MAAM,qBAA0C,CAAC;AAG7E,eAAO,MAAM,mBAAmB,yBAAyB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,6BAA6B,CAAC;AAQjE,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM;;;EAwB1C;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;AAsCrC,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,WAmBlE;AAcD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAWjE;AAGD,eAAO,MAAM,cAAc;kBACX,MAAM,GAAG,IAAI;uBAIR,OAAO,KAAG,MAAM,GAAG,SAAS;CAGhD,CAAC;AAGF,eAAO,MAAM,qBAAqB,sBAAsB,CAAC;AACzD,eAAO,MAAM,uBAAuB,cAAc,CAAC;AAuBnD,iBAAS,WAAW,CAAC,KAAK,EAAE,OAAO,UASlC;AAED;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;kBACL,MAAM,GAAG,IAAI,GAAG,SAAS,KAAG,OAAO;;CAgClD,CAAC;AAMF,KAAK,YAAY,GAAG,KAAK,CAAC,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC,CAAC;AAGpD;;;;;;GAMG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,EAC5C,KAAK,EAAE,CAAC,EACR,IAAI,GAAE,YAAiB,GACtB;IAAE,YAAY,EAAE,CAAC,CAAC;IAAC,WAAW,EAAE,MAAM,CAAA;CAAE,CAO1C;AA8ID,wBAAgB,oBAAoB,CAAC,CAAC,EAAE,KAAK,GAAG,KAAK,CAEpD;AAMD,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,QAAQ,KAAK,IAAI,QAkB7F;AAGD,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,GAAG;;;EAiBxD"}
|