@oas-tools/oas-telemetry 0.7.1 → 0.8.0-alpha.1
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/.env.example +17 -3
- package/README.md +1 -2
- package/dist/cjs/config/bootConfig.cjs +16 -14
- package/dist/cjs/config/config.cjs +120 -125
- package/dist/cjs/config/config.types.cjs +1 -4
- package/dist/cjs/docs/openapi.yaml +158 -4
- package/dist/cjs/index.cjs +27 -30
- package/dist/cjs/routesManager.cjs +62 -70
- package/dist/cjs/telemetry/custom-implementations/exporters/DiskLogExporter.cjs +121 -0
- package/dist/cjs/telemetry/custom-implementations/exporters/DiskMetricExporter.cjs +101 -0
- package/dist/cjs/telemetry/custom-implementations/exporters/DiskTraceExporter.cjs +103 -0
- package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.cjs +194 -190
- package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.cjs +147 -99
- package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.cjs +143 -116
- package/dist/cjs/telemetry/custom-implementations/exporters/MultiMetricExporter.cjs +57 -0
- package/dist/cjs/telemetry/custom-implementations/instrumentations/logsInstrumentation.cjs +92 -0
- package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Chunk.cjs +159 -0
- package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Series.cjs +168 -0
- package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.cjs +392 -0
- package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/types.cjs +2 -0
- package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/utils.cjs +77 -0
- package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.cjs +65 -63
- package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.cjs +63 -62
- package/dist/cjs/telemetry/custom-implementations/utils/circular.cjs +47 -47
- package/dist/cjs/telemetry/custom-implementations/wrappers.cjs +209 -138
- package/dist/cjs/telemetry/initializeTelemetry.cjs +35 -91
- package/dist/cjs/telemetry/persistence/DiskImporter.cjs +85 -0
- package/dist/cjs/telemetry/persistence/DiskUtils.cjs +61 -0
- package/dist/cjs/telemetry/persistence/DiskWriter.cjs +66 -0
- package/dist/cjs/telemetry/telemetryConfigurator.cjs +139 -72
- package/dist/cjs/telemetry/telemetryRegistry.cjs +45 -31
- package/dist/cjs/tlm-ai/agent.cjs +49 -64
- package/dist/cjs/tlm-ai/aiController.cjs +54 -76
- package/dist/cjs/tlm-ai/aiRoutes.cjs +17 -20
- package/dist/cjs/tlm-ai/aiService.cjs +91 -95
- package/dist/cjs/tlm-ai/tools.cjs +177 -174
- package/dist/cjs/tlm-auth/authController.cjs +80 -123
- package/dist/cjs/tlm-auth/authMiddleware.cjs +25 -30
- package/dist/cjs/tlm-auth/authRoutes.cjs +11 -14
- package/dist/cjs/tlm-log/logController.cjs +135 -116
- package/dist/cjs/tlm-log/logRoutes.cjs +19 -20
- package/dist/cjs/tlm-log/logService.cjs +29 -0
- package/dist/cjs/tlm-metric/metricsController.cjs +154 -122
- package/dist/cjs/tlm-metric/metricsRoutes.cjs +22 -20
- package/dist/cjs/tlm-metric/metricsService.cjs +26 -0
- package/dist/cjs/tlm-plugin/pluginController.cjs +128 -140
- package/dist/cjs/tlm-plugin/pluginProcess.cjs +89 -94
- package/dist/cjs/tlm-plugin/pluginRoutes.cjs +11 -14
- package/dist/cjs/tlm-plugin/pluginService.cjs +73 -74
- package/dist/cjs/tlm-trace/traceController.cjs +140 -123
- package/dist/cjs/tlm-trace/traceRoutes.cjs +19 -20
- package/dist/cjs/tlm-trace/traceService.cjs +29 -0
- package/dist/cjs/tlm-ui/uiRoutes.cjs +63 -32
- package/dist/cjs/tlm-util/utilController.cjs +68 -70
- package/dist/cjs/tlm-util/utilRoutes.cjs +51 -63
- package/dist/cjs/types/index.cjs +2 -5
- package/dist/cjs/utils/logger.cjs +38 -43
- package/dist/cjs/utils/regexUtils.cjs +22 -22
- package/dist/esm/config/bootConfig.js +5 -2
- package/dist/esm/config/config.js +9 -2
- package/dist/esm/docs/openapi.yaml +158 -4
- package/dist/esm/index.js +9 -8
- package/dist/esm/routesManager.js +6 -10
- package/dist/esm/telemetry/custom-implementations/exporters/DiskLogExporter.js +114 -0
- package/dist/esm/telemetry/custom-implementations/exporters/DiskMetricExporter.js +94 -0
- package/dist/esm/telemetry/custom-implementations/exporters/DiskTraceExporter.js +96 -0
- package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.js +38 -7
- package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.js +107 -48
- package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.js +60 -29
- package/dist/esm/telemetry/custom-implementations/exporters/MultiMetricExporter.js +53 -0
- package/dist/esm/telemetry/custom-implementations/instrumentations/logsInstrumentation.js +85 -0
- package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Chunk.js +155 -0
- package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Series.js +164 -0
- package/dist/esm/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.js +385 -0
- package/dist/esm/telemetry/custom-implementations/metrics/tsdb/types.js +1 -0
- package/dist/esm/telemetry/custom-implementations/metrics/tsdb/utils.js +74 -0
- package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.js +2 -1
- package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.js +1 -1
- package/dist/esm/telemetry/custom-implementations/wrappers.js +77 -6
- package/dist/esm/telemetry/initializeTelemetry.js +27 -69
- package/dist/esm/telemetry/persistence/DiskImporter.js +78 -0
- package/dist/esm/telemetry/persistence/DiskUtils.js +51 -0
- package/dist/esm/telemetry/persistence/DiskWriter.js +59 -0
- package/dist/esm/telemetry/telemetryConfigurator.js +110 -39
- package/dist/esm/telemetry/telemetryRegistry.js +12 -1
- package/dist/esm/tlm-ai/agent.js +5 -3
- package/dist/esm/tlm-ai/aiController.js +3 -3
- package/dist/esm/tlm-ai/aiService.js +6 -2
- package/dist/esm/tlm-ai/tools.js +5 -9
- package/dist/esm/tlm-auth/authController.js +3 -2
- package/dist/esm/tlm-log/logController.js +62 -18
- package/dist/esm/tlm-log/logRoutes.js +3 -1
- package/dist/esm/tlm-log/logService.js +25 -0
- package/dist/esm/tlm-metric/metricsController.js +116 -50
- package/dist/esm/tlm-metric/metricsRoutes.js +8 -3
- package/dist/esm/tlm-metric/metricsService.js +22 -0
- package/dist/esm/tlm-plugin/pluginController.js +6 -11
- package/dist/esm/tlm-plugin/pluginService.js +2 -4
- package/dist/esm/tlm-trace/traceController.js +87 -36
- package/dist/esm/tlm-trace/traceRoutes.js +3 -1
- package/dist/esm/tlm-trace/traceService.js +25 -0
- package/dist/esm/tlm-ui/uiRoutes.js +5 -5
- package/dist/esm/tlm-util/utilController.js +3 -9
- package/dist/esm/tlm-util/utilRoutes.js +2 -2
- package/dist/types/config/bootConfig.d.ts +3 -0
- package/dist/types/config/config.d.ts +48 -7
- package/dist/types/config/config.types.d.ts +7 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/telemetry/custom-implementations/exporters/DiskLogExporter.d.ts +24 -0
- package/dist/types/telemetry/custom-implementations/exporters/DiskMetricExporter.d.ts +23 -0
- package/dist/types/telemetry/custom-implementations/exporters/DiskTraceExporter.d.ts +23 -0
- package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.d.ts +3 -1
- package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.d.ts +56 -15
- package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.d.ts +8 -4
- package/dist/types/telemetry/custom-implementations/exporters/MultiMetricExporter.d.ts +9 -0
- package/dist/types/telemetry/custom-implementations/instrumentations/logsInstrumentation.d.ts +23 -0
- package/dist/types/telemetry/custom-implementations/metrics/tsdb/Chunk.d.ts +49 -0
- package/dist/types/telemetry/custom-implementations/metrics/tsdb/Series.d.ts +67 -0
- package/dist/types/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.d.ts +69 -0
- package/dist/types/telemetry/custom-implementations/metrics/tsdb/types.d.ts +68 -0
- package/dist/types/telemetry/custom-implementations/metrics/tsdb/utils.d.ts +21 -0
- package/dist/types/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.d.ts +2 -2
- package/dist/types/telemetry/custom-implementations/wrappers.d.ts +2 -1
- package/dist/types/telemetry/persistence/DiskImporter.d.ts +17 -0
- package/dist/types/telemetry/persistence/DiskUtils.d.ts +11 -0
- package/dist/types/telemetry/persistence/DiskWriter.d.ts +21 -0
- package/dist/types/telemetry/telemetryConfigurator.d.ts +1 -1
- package/dist/types/telemetry/telemetryRegistry.d.ts +8 -0
- package/dist/types/tlm-ai/agent.d.ts +1 -1
- package/dist/types/tlm-ai/aiService.d.ts +1 -1
- package/dist/types/tlm-log/logController.d.ts +2 -0
- package/dist/types/tlm-log/logService.d.ts +4 -0
- package/dist/types/tlm-metric/metricsController.d.ts +11 -2
- package/dist/types/tlm-metric/metricsService.d.ts +6 -0
- package/dist/types/tlm-trace/traceController.d.ts +9 -7
- package/dist/types/tlm-trace/traceService.d.ts +4 -0
- package/dist/types/types/index.d.ts +2 -2
- package/dist/ui/assets/{ApiDocsPage-C_VVPPHa.js → ApiDocsPage-DTCgVbW2.js} +2 -2
- package/dist/ui/assets/CollapsibleCard-lWgfsaAn.js +1 -0
- package/dist/ui/assets/DevToolsPage-DEhf8CBy.js +1 -0
- package/dist/ui/assets/LandingPage-CfEHCDxY.js +6 -0
- package/dist/ui/assets/LogsPage-DFDKRuGH.js +1 -0
- package/dist/ui/assets/{NotFoundPage-B3quk3P1.js → NotFoundPage-DCy0DcV7.js} +1 -1
- package/dist/ui/assets/PluginCreatePage-BawZ5_-h.js +50 -0
- package/dist/ui/assets/PluginPage-D3FmgU7d.js +27 -0
- package/dist/ui/assets/TraceSpansPage-D0_L45Rb.js +6 -0
- package/dist/ui/assets/VirtualizedListPanel-q605n9He.js +16 -0
- package/dist/ui/assets/alert-DBAFshSi.js +1133 -0
- package/dist/ui/assets/badge-DGNBtnxU.js +1 -0
- package/dist/ui/assets/{chevron-down-CPsvsmqj.js → chevron-down-CFEqYzGC.js} +1 -1
- package/dist/ui/assets/{chevron-up-Df9jMo1X.js → chevron-up-lDnFwAJq.js} +1 -1
- package/dist/ui/assets/{circle-alert-DOPQPvU8.js → circle-alert-BpYUuRs7.js} +1 -1
- package/dist/ui/assets/dialog-1dRyI6SC.js +15 -0
- package/dist/ui/assets/index-C7RfU6hR.js +1 -0
- package/dist/ui/assets/index-C9dDYIpd.js +305 -0
- package/dist/ui/assets/index-D6f1KjWV.css +1 -0
- package/dist/ui/assets/info-CuJQWoBU.js +6 -0
- package/dist/ui/assets/{input-Dzvg_ZEZ.js → input-BLXaar0X.js} +1 -1
- package/dist/ui/assets/label-DfAcltsl.js +1 -0
- package/dist/ui/assets/{loader-circle-CrvlRy5o.js → loader-circle-B7oLyPsi.js} +1 -1
- package/dist/ui/assets/{loginPage-qa4V-B70.js → loginPage-DswZvOJ-.js} +1 -1
- package/dist/ui/assets/metrics-page-BhtXrfUW.js +31 -0
- package/dist/ui/assets/metrics-page-D1GxaB_c.css +1 -0
- package/dist/ui/assets/popover-IDker85U.js +11 -0
- package/dist/ui/assets/select-B8y5IidE.js +6 -0
- package/dist/ui/assets/separator-B6EzrxYY.js +6 -0
- package/dist/ui/assets/severityOptions-DtCsaAZK.js +11 -0
- package/dist/ui/assets/square-pen-D_oecB1x.js +6 -0
- package/dist/ui/assets/switch-Dqo0XkRD.js +1 -0
- package/dist/ui/assets/trace-DJq1miYa.js +1 -0
- package/dist/ui/assets/upload-prIohEdY.js +11 -0
- package/dist/ui/assets/{utilService-DNyqzwj0.js → utilService-C8TJKLqs.js} +1 -1
- package/dist/ui/assets/wand-sparkles-OgXuzsSx.js +6 -0
- package/dist/ui/index.html +2 -2
- package/package.json +44 -49
- package/dist/ui/assets/CollapsibleCard-B3KR_8mL.js +0 -1
- package/dist/ui/assets/DevToolsPage-OyZcDcmw.js +0 -1
- package/dist/ui/assets/LandingPage-CppFBA6K.js +0 -6
- package/dist/ui/assets/LogsPage-9Fq8GArS.js +0 -26
- package/dist/ui/assets/PluginCreatePage-X_aCH4t4.js +0 -50
- package/dist/ui/assets/PluginPage-DMDSihrZ.js +0 -27
- package/dist/ui/assets/alert-jQ9HCPIf.js +0 -1133
- package/dist/ui/assets/badge-CNq0-mH5.js +0 -1
- package/dist/ui/assets/card-DFAwwhN3.js +0 -1
- package/dist/ui/assets/index-BkD6DijD.js +0 -15
- package/dist/ui/assets/index-CERGVYZK.js +0 -292
- package/dist/ui/assets/index-CSIPf9qw.css +0 -1
- package/dist/ui/assets/label-DuVnkZ4q.js +0 -1
- package/dist/ui/assets/select-DhS8YUtJ.js +0 -1
- package/dist/ui/assets/separator-isK4chBP.js +0 -6
- package/dist/ui/assets/severityOptions-O38dSOfk.js +0 -11
- package/dist/ui/assets/switch-Z3mImG9n.js +0 -1
- package/dist/ui/assets/tabs-_77MUUQe.js +0 -16
- package/dist/ui/assets/upload-C1LT4Gkb.js +0 -16
|
@@ -1,70 +1,72 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DynamicMultiLogRecordProcessor = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
// optional if you want logging
|
|
7
|
+
const core_1 = require("@opentelemetry/core");
|
|
8
|
+
const logger_js_1 = __importDefault(require("../../../utils/logger.cjs")); // optional if you want logging
|
|
11
9
|
class DynamicMultiLogRecordProcessor {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Add a new LogRecordProcessor or an array of LogRecordProcessors at runtime.
|
|
19
|
-
*/
|
|
20
|
-
addProcessors(processor) {
|
|
21
|
-
if (Array.isArray(processor)) {
|
|
22
|
-
this._processors.push(...processor);
|
|
23
|
-
} else {
|
|
24
|
-
this._processors.push(processor);
|
|
10
|
+
_processors = [];
|
|
11
|
+
_forceFlushTimeoutMillis;
|
|
12
|
+
constructor(initialProcessors = [], forceFlushTimeoutMillis = 30000) {
|
|
13
|
+
this._processors = [...initialProcessors];
|
|
14
|
+
this._forceFlushTimeoutMillis = forceFlushTimeoutMillis;
|
|
25
15
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
clearProcessors() {
|
|
37
|
-
this._processors = [];
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* Called when a log record is emitted.
|
|
41
|
-
*/
|
|
42
|
-
onEmit(logRecord, context) {
|
|
43
|
-
for (const processor of this._processors) {
|
|
44
|
-
try {
|
|
45
|
-
processor.onEmit(logRecord, context);
|
|
46
|
-
} catch (error) {
|
|
47
|
-
_logger.default?.error?.('Error in onEmit of LogRecordProcessor:', error);
|
|
48
|
-
}
|
|
16
|
+
/**
|
|
17
|
+
* Add a new LogRecordProcessor or an array of LogRecordProcessors at runtime.
|
|
18
|
+
*/
|
|
19
|
+
addProcessors(processor) {
|
|
20
|
+
if (Array.isArray(processor)) {
|
|
21
|
+
this._processors.push(...processor);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
this._processors.push(processor);
|
|
25
|
+
}
|
|
49
26
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Remove a specific LogRecordProcessor.
|
|
29
|
+
*/
|
|
30
|
+
removeProcessor(processor) {
|
|
31
|
+
this._processors = this._processors.filter(p => p !== processor);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Clear all LogRecordProcessors.
|
|
35
|
+
*/
|
|
36
|
+
clearProcessors() {
|
|
37
|
+
this._processors = [];
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Called when a log record is emitted.
|
|
41
|
+
*/
|
|
42
|
+
onEmit(logRecord, context) {
|
|
43
|
+
for (const processor of this._processors) {
|
|
44
|
+
try {
|
|
45
|
+
processor.onEmit(logRecord, context);
|
|
46
|
+
}
|
|
47
|
+
catch (error) {
|
|
48
|
+
logger_js_1.default?.error?.('Error in onEmit of LogRecordProcessor:', error);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Force flush all processors with timeout.
|
|
54
|
+
*/
|
|
55
|
+
async forceFlush() {
|
|
56
|
+
const timeout = this._forceFlushTimeoutMillis;
|
|
57
|
+
const promises = this._processors.map(p => (0, core_1.callWithTimeout)(p.forceFlush(), timeout));
|
|
58
|
+
try {
|
|
59
|
+
await Promise.all(promises);
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
logger_js_1.default?.error?.('Error during forceFlush in DynamicMultiLogRecordProcessor:', error);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Shutdown all processors.
|
|
67
|
+
*/
|
|
68
|
+
async shutdown() {
|
|
69
|
+
await Promise.all(this._processors.map(p => p.shutdown()));
|
|
61
70
|
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Shutdown all processors.
|
|
65
|
-
*/
|
|
66
|
-
async shutdown() {
|
|
67
|
-
await Promise.all(this._processors.map(p => p.shutdown()));
|
|
68
|
-
}
|
|
69
71
|
}
|
|
70
|
-
exports.DynamicMultiLogRecordProcessor = DynamicMultiLogRecordProcessor;
|
|
72
|
+
exports.DynamicMultiLogRecordProcessor = DynamicMultiLogRecordProcessor;
|
|
@@ -1,70 +1,71 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.DynamicMultiSpanProcessor = void 0;
|
|
7
|
-
|
|
8
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
7
|
+
const logger_js_1 = __importDefault(require("../../../utils/logger.cjs"));
|
|
9
8
|
class DynamicMultiSpanProcessor {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Add a new SpanProcessor or an array of SpanProcessors at runtime.
|
|
16
|
-
*/
|
|
17
|
-
addProcessors(processor) {
|
|
18
|
-
if (Array.isArray(processor)) {
|
|
19
|
-
this._spanProcessors.push(...processor);
|
|
20
|
-
} else {
|
|
21
|
-
this._spanProcessors.push(processor);
|
|
9
|
+
_spanProcessors = [];
|
|
10
|
+
constructor(initialProcessors = []) {
|
|
11
|
+
this._spanProcessors = [...initialProcessors];
|
|
22
12
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
clearProcessors() {
|
|
34
|
-
this._spanProcessors = [];
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Called when a span is started.
|
|
38
|
-
*/
|
|
39
|
-
onStart(span, context) {
|
|
40
|
-
for (const processor of this._spanProcessors) {
|
|
41
|
-
processor.onStart(span, context);
|
|
13
|
+
/**
|
|
14
|
+
* Add a new SpanProcessor or an array of SpanProcessors at runtime.
|
|
15
|
+
*/
|
|
16
|
+
addProcessors(processor) {
|
|
17
|
+
if (Array.isArray(processor)) {
|
|
18
|
+
this._spanProcessors.push(...processor);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
this._spanProcessors.push(processor);
|
|
22
|
+
}
|
|
42
23
|
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
for (const processor of this._spanProcessors) {
|
|
49
|
-
processor.onEnd(span);
|
|
24
|
+
/**
|
|
25
|
+
* Remove a specific SpanProcessor if needed.
|
|
26
|
+
*/
|
|
27
|
+
removeProcessor(processor) {
|
|
28
|
+
this._spanProcessors = this._spanProcessors.filter(p => p !== processor);
|
|
50
29
|
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
30
|
+
/**
|
|
31
|
+
* Clear all processors.
|
|
32
|
+
*/
|
|
33
|
+
clearProcessors() {
|
|
34
|
+
this._spanProcessors = [];
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Called when a span is started.
|
|
38
|
+
*/
|
|
39
|
+
onStart(span, context) {
|
|
40
|
+
for (const processor of this._spanProcessors) {
|
|
41
|
+
processor.onStart(span, context);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Called when a span ends.
|
|
46
|
+
*/
|
|
47
|
+
onEnd(span) {
|
|
48
|
+
for (const processor of this._spanProcessors) {
|
|
49
|
+
processor.onEnd(span);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Force flush all processors.
|
|
54
|
+
*/
|
|
55
|
+
async forceFlush() {
|
|
56
|
+
const promises = this._spanProcessors.map(p => p.forceFlush());
|
|
57
|
+
try {
|
|
58
|
+
await Promise.all(promises);
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
logger_js_1.default.error('Error during forceFlush:', error);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Shutdown all processors.
|
|
66
|
+
*/
|
|
67
|
+
async shutdown() {
|
|
68
|
+
await Promise.all(this._spanProcessors.map(p => p.shutdown()));
|
|
61
69
|
}
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Shutdown all processors.
|
|
65
|
-
*/
|
|
66
|
-
async shutdown() {
|
|
67
|
-
await Promise.all(this._spanProcessors.map(p => p.shutdown()));
|
|
68
|
-
}
|
|
69
70
|
}
|
|
70
|
-
exports.DynamicMultiSpanProcessor = DynamicMultiSpanProcessor;
|
|
71
|
+
exports.DynamicMultiSpanProcessor = DynamicMultiSpanProcessor;
|
|
@@ -1,31 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
6
|
-
exports.applyNesting = applyNesting;
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
3
|
exports.removeCircularRefs = removeCircularRefs;
|
|
4
|
+
exports.applyNesting = applyNesting;
|
|
8
5
|
function removeCircularRefs(obj) {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
6
|
+
// const seen = new WeakMap(); // Used to keep track of visited objects
|
|
7
|
+
// Replacer function to handle circular references
|
|
8
|
+
function replacer(key, value) {
|
|
9
|
+
if (key === "_spanProcessor") {
|
|
10
|
+
return "oas-telemetry skips this field to avoid circular reference";
|
|
11
|
+
}
|
|
12
|
+
// GENERIC CIRCULAR REFERENCE HANDLING
|
|
13
|
+
// if (typeof value === "object" && value !== null) {
|
|
14
|
+
// // If the object has been visited before, return the name prefixed with "CIRCULAR+"
|
|
15
|
+
// if (seen.has(value)) {
|
|
16
|
+
// return `CIRCULAR${key}`;
|
|
17
|
+
// }
|
|
18
|
+
// seen.set(value, key); // Mark the object as visited with its name
|
|
19
|
+
// }
|
|
20
|
+
return value;
|
|
14
21
|
}
|
|
15
|
-
//
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
// return `CIRCULAR${key}`;
|
|
20
|
-
// }
|
|
21
|
-
// seen.set(value, key); // Mark the object as visited with its name
|
|
22
|
-
// }
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
|
-
// Convert the object to a string and then parse it back
|
|
26
|
-
// This will trigger the replacer function to handle circular references
|
|
27
|
-
const jsonString = JSON.stringify(obj, replacer);
|
|
28
|
-
return JSON.parse(jsonString);
|
|
22
|
+
// Convert the object to a string and then parse it back
|
|
23
|
+
// This will trigger the replacer function to handle circular references
|
|
24
|
+
const jsonString = JSON.stringify(obj, replacer);
|
|
25
|
+
return JSON.parse(jsonString);
|
|
29
26
|
}
|
|
30
27
|
/**
|
|
31
28
|
* Recursively converts dot-separated keys in an object to nested objects.
|
|
@@ -53,28 +50,31 @@ function removeCircularRefs(obj) {
|
|
|
53
50
|
* }
|
|
54
51
|
*/
|
|
55
52
|
function applyNesting(obj) {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
53
|
+
if (Array.isArray(obj)) {
|
|
54
|
+
return obj.map(item => applyNesting(item));
|
|
55
|
+
}
|
|
56
|
+
else if (typeof obj === 'object' && obj !== null) {
|
|
57
|
+
const result = {};
|
|
58
|
+
for (const key in obj) {
|
|
59
|
+
const value = applyNesting(obj[key]);
|
|
60
|
+
const keys = key.split('.');
|
|
61
|
+
let temp = result;
|
|
62
|
+
for (let i = 0; i < keys.length; i++) {
|
|
63
|
+
const currentKey = keys[i];
|
|
64
|
+
if (i === keys.length - 1) {
|
|
65
|
+
temp[currentKey] = value;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
if (!temp[currentKey]) {
|
|
69
|
+
temp[currentKey] = {};
|
|
70
|
+
}
|
|
71
|
+
temp = temp[currentKey];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
73
74
|
}
|
|
74
|
-
|
|
75
|
+
return result;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
return obj;
|
|
75
79
|
}
|
|
76
|
-
|
|
77
|
-
} else {
|
|
78
|
-
return obj;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
80
|
+
}
|