@oas-tools/oas-telemetry 0.7.1 → 0.8.0-alpha.0
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 +21 -2
- package/README.md +1 -2
- package/dist/cjs/config/bootConfig.cjs +19 -14
- package/dist/cjs/config/config.cjs +112 -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/InMemoryDbLogExporter.cjs +202 -190
- package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.cjs +204 -99
- package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.cjs +152 -116
- 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 +389 -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/utils/storagePath.cjs +39 -0
- package/dist/cjs/telemetry/custom-implementations/wrappers.cjs +141 -138
- package/dist/cjs/telemetry/initializeTelemetry.cjs +35 -91
- package/dist/cjs/telemetry/telemetryConfigurator.cjs +70 -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 +171 -116
- package/dist/cjs/tlm-log/logRoutes.cjs +20 -20
- package/dist/cjs/tlm-metric/metricsController.cjs +211 -121
- package/dist/cjs/tlm-metric/metricsRoutes.cjs +23 -20
- 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 +169 -117
- package/dist/cjs/tlm-trace/traceRoutes.cjs +20 -20
- 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 +6 -0
- package/dist/esm/config/config.js +1 -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/InMemoryDbLogExporter.js +47 -8
- package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.js +164 -48
- package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.js +69 -29
- 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 +382 -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/utils/storagePath.js +33 -0
- package/dist/esm/telemetry/custom-implementations/wrappers.js +5 -2
- package/dist/esm/telemetry/initializeTelemetry.js +27 -69
- package/dist/esm/telemetry/telemetryConfigurator.js +42 -40
- 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 +84 -4
- package/dist/esm/tlm-log/logRoutes.js +5 -2
- package/dist/esm/tlm-metric/metricsController.js +172 -49
- package/dist/esm/tlm-metric/metricsRoutes.js +10 -4
- 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 +102 -16
- package/dist/esm/tlm-trace/traceRoutes.js +5 -2
- 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 +4 -0
- package/dist/types/config/config.d.ts +36 -7
- package/dist/types/config/config.types.d.ts +6 -0
- package/dist/types/index.d.ts +2 -3
- package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.d.ts +4 -1
- package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.d.ts +60 -15
- package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.d.ts +9 -4
- 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/utils/storagePath.d.ts +12 -0
- package/dist/types/telemetry/custom-implementations/wrappers.d.ts +1 -1
- 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-metric/metricsController.d.ts +16 -2
- package/dist/types/tlm-trace/traceController.d.ts +3 -1
- package/dist/types/types/index.d.ts +2 -2
- package/dist/ui/assets/{ApiDocsPage-C_VVPPHa.js → ApiDocsPage-BFUrXE5F.js} +2 -2
- package/dist/ui/assets/CollapsibleCard-STA1GVQO.js +1 -0
- package/dist/ui/assets/DevToolsPage-BRSfZqO_.js +1 -0
- package/dist/ui/assets/LandingPage-DzeDy7q7.js +6 -0
- package/dist/ui/assets/LogsPage-BeiFrV2X.js +1 -0
- package/dist/ui/assets/{NotFoundPage-B3quk3P1.js → NotFoundPage-fRNOatbM.js} +1 -1
- package/dist/ui/assets/PluginCreatePage-Ch_RXsdf.js +50 -0
- package/dist/ui/assets/PluginPage-Cl65ZZ_n.js +27 -0
- package/dist/ui/assets/TraceSpansPage-BoK4M5Hh.js +6 -0
- package/dist/ui/assets/VirtualizedListPanel-zcj0v7DL.js +16 -0
- package/dist/ui/assets/alert-BkNVKxJN.js +1133 -0
- package/dist/ui/assets/badge-CN7FeufU.js +1 -0
- package/dist/ui/assets/{chevron-down-CPsvsmqj.js → chevron-down-CG--ounh.js} +1 -1
- package/dist/ui/assets/{chevron-up-Df9jMo1X.js → chevron-up-B6tzMAOm.js} +1 -1
- package/dist/ui/assets/{circle-alert-DOPQPvU8.js → circle-alert-BDF8Tq9y.js} +1 -1
- package/dist/ui/assets/dialog-BrpWNk36.js +15 -0
- package/dist/ui/assets/index-6xOVKwKn.js +305 -0
- package/dist/ui/assets/index-D6f1KjWV.css +1 -0
- package/dist/ui/assets/index-D96rVSkR.js +1 -0
- package/dist/ui/assets/info-99kuqpbx.js +6 -0
- package/dist/ui/assets/{input-Dzvg_ZEZ.js → input-B-01QDg_.js} +1 -1
- package/dist/ui/assets/label-CQLeZjM1.js +1 -0
- package/dist/ui/assets/{loader-circle-CrvlRy5o.js → loader-circle-BoDGk-BO.js} +1 -1
- package/dist/ui/assets/{loginPage-qa4V-B70.js → loginPage-8F4EEd1B.js} +1 -1
- package/dist/ui/assets/metrics-page-D1GxaB_c.css +1 -0
- package/dist/ui/assets/metrics-page-DPtteXqY.js +31 -0
- package/dist/ui/assets/popover-DS_8DYYt.js +11 -0
- package/dist/ui/assets/select-DYjegiXi.js +6 -0
- package/dist/ui/assets/separator-DGsRxIrl.js +6 -0
- package/dist/ui/assets/severityOptions-DEOvJqC9.js +11 -0
- package/dist/ui/assets/square-pen-DPhgYz6O.js +6 -0
- package/dist/ui/assets/switch-Di9NJH2A.js +1 -0
- package/dist/ui/assets/trace-DJq1miYa.js +1 -0
- package/dist/ui/assets/upload-BiLTpCnX.js +11 -0
- package/dist/ui/assets/{utilService-DNyqzwj0.js → utilService-CNZOmadC.js} +1 -1
- package/dist/ui/assets/wand-sparkles-CPoBNFFg.js +6 -0
- package/dist/ui/index.html +2 -2
- package/package.json +44 -48
- 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,83 +1,81 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
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
|
+
exports.getOasTelemetrySpec = exports.heapStats = exports.specLoader = void 0;
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const js_yaml_1 = __importDefault(require("js-yaml"));
|
|
10
|
+
const node_v8_1 = __importDefault(require("node:v8"));
|
|
11
|
+
const node_url_1 = require("node:url");
|
|
13
12
|
const specLoader = (_req, res, oasTlmConfig) => {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
console.error(`ERROR loading spec file ${oasTlmConfig.general.specFileName}: ${e}`);
|
|
13
|
+
if (oasTlmConfig.general.specFileName) {
|
|
14
|
+
try {
|
|
15
|
+
const data = (0, fs_1.readFileSync)(oasTlmConfig.general.specFileName, { encoding: 'utf8', flag: 'r' });
|
|
16
|
+
const extension = path_1.default.extname(oasTlmConfig.general.specFileName);
|
|
17
|
+
let json = data;
|
|
18
|
+
if (extension == "yaml")
|
|
19
|
+
//@ts-expect-error yes
|
|
20
|
+
json = JSON.stringify(js_yaml_1.default.SafeLoad(data), null, 2);
|
|
21
|
+
res.setHeader('Content-Type', 'application/json');
|
|
22
|
+
res.send(json);
|
|
23
|
+
}
|
|
24
|
+
catch (e) {
|
|
25
|
+
console.error(`ERROR loading spec file ${oasTlmConfig.general.specFileName}: ${e}`);
|
|
26
|
+
}
|
|
29
27
|
}
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
28
|
+
else if (oasTlmConfig.general.spec) {
|
|
29
|
+
let spec = null;
|
|
30
|
+
try {
|
|
31
|
+
spec = JSON.parse(oasTlmConfig.general.spec);
|
|
32
|
+
}
|
|
33
|
+
catch (ej) {
|
|
34
|
+
try {
|
|
35
|
+
spec = JSON.stringify(js_yaml_1.default.load(oasTlmConfig.general.spec), null, 2);
|
|
36
|
+
}
|
|
37
|
+
catch (ey) {
|
|
38
|
+
console.error(`Error parsing spec: ${ej} - ${ey}`);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
if (!spec) {
|
|
42
|
+
res.status(404);
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
res.setHeader('Content-Type', 'application/json');
|
|
46
|
+
res.send(spec);
|
|
47
|
+
}
|
|
40
48
|
}
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
} else {
|
|
44
|
-
res.setHeader('Content-Type', 'application/json');
|
|
45
|
-
res.send(spec);
|
|
49
|
+
else {
|
|
50
|
+
res.status(404);
|
|
46
51
|
}
|
|
47
|
-
} else {
|
|
48
|
-
res.status(404);
|
|
49
|
-
}
|
|
50
52
|
};
|
|
51
53
|
exports.specLoader = specLoader;
|
|
52
54
|
const heapStats = (req, res) => {
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
roundedHeapStats['units'] = 'MB';
|
|
61
|
-
res.send(roundedHeapStats);
|
|
55
|
+
const heapStats = node_v8_1.default.getHeapStatistics();
|
|
56
|
+
const roundedHeapStats = Object.getOwnPropertyNames(heapStats).reduce(function (map, stat) {
|
|
57
|
+
map[stat] = Math.round((heapStats[stat] / 1024 / 1024) * 1000) / 1000;
|
|
58
|
+
return map;
|
|
59
|
+
}, {});
|
|
60
|
+
roundedHeapStats['units'] = 'MB';
|
|
61
|
+
res.send(roundedHeapStats);
|
|
62
62
|
};
|
|
63
63
|
exports.heapStats = heapStats;
|
|
64
64
|
const isCjs = typeof __filename !== "undefined" && typeof __dirname !== "undefined";
|
|
65
|
-
|
|
66
|
-
const
|
|
65
|
+
// @ts-ignore -- import.meta no existe en el build CJS
|
|
66
|
+
const currentDirectory = isCjs ? __dirname : path_1.default.dirname((0, node_url_1.fileURLToPath)(__filename));
|
|
67
67
|
const getOasTelemetrySpec = (_req, res) => {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
res.status(500).send(`ERROR loading OAS Telemetry OpenAPI spec file: ${e}`);
|
|
81
|
-
}
|
|
68
|
+
try {
|
|
69
|
+
const specPath = path_1.default.join(currentDirectory, '../docs/openapi.yaml');
|
|
70
|
+
const data = (0, fs_1.readFileSync)(specPath, { encoding: 'utf8', flag: 'r' });
|
|
71
|
+
let json = data;
|
|
72
|
+
json = JSON.stringify(js_yaml_1.default.load(data), null, 2);
|
|
73
|
+
res.setHeader('Content-Type', 'application/json');
|
|
74
|
+
res.send(json);
|
|
75
|
+
}
|
|
76
|
+
catch (e) {
|
|
77
|
+
console.error(`ERROR loading OAS Telemetry OpenAPI spec file: ${e}`);
|
|
78
|
+
res.status(500).send(`ERROR loading OAS Telemetry OpenAPI spec file: ${e}`);
|
|
79
|
+
}
|
|
82
80
|
};
|
|
83
|
-
exports.getOasTelemetrySpec = getOasTelemetrySpec;
|
|
81
|
+
exports.getOasTelemetrySpec = getOasTelemetrySpec;
|
|
@@ -1,70 +1,58 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.getUtilsRoutes = void 0;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const getUtilsRoutes = oasTlmConfig => {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
4
|
+
const express_1 = require("express");
|
|
5
|
+
const utilController_js_1 = require("./utilController.cjs");
|
|
6
|
+
const getUtilsRoutes = (oasTlmConfig) => {
|
|
7
|
+
const router = (0, express_1.Router)();
|
|
8
|
+
router.get('/spec', (req, res) => (0, utilController_js_1.specLoader)(req, res, oasTlmConfig));
|
|
9
|
+
router.get('/oas-telemetry-spec', (req, res) => (0, utilController_js_1.getOasTelemetrySpec)(req, res));
|
|
10
|
+
router.get('/heapStats', utilController_js_1.heapStats);
|
|
11
|
+
//This route is NOT ignored by the spanExporter (includes "generate")
|
|
12
|
+
router.post('/generate-log', async (req, res) => {
|
|
13
|
+
const log = req.body.log || 'Default log message';
|
|
14
|
+
const repeat = parseInt(req.body.repeat) || 1;
|
|
15
|
+
const method = req.body.method?.toLowerCase() || 'log';
|
|
16
|
+
if (!['log', 'warn', 'error', 'info', 'debug'].includes(method)) {
|
|
17
|
+
res.status(400).send({ error: 'Invalid method. Use log, warn, error, info, or debug.' });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
res.send({ message: 'Log generated', log: log });
|
|
21
|
+
for (let i = 0; i < repeat; i++) {
|
|
22
|
+
console[method](log);
|
|
23
|
+
await new Promise(resolve => setTimeout(resolve, 50)); // Slight delay between logs
|
|
24
|
+
}
|
|
28
25
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
// This route is NOT ignored by the spanExporter (includes "generate")
|
|
35
|
-
router.post('/generate-mock-logs', async (req, res) => {
|
|
36
|
-
const count = parseInt(req.body.count) || 50;
|
|
37
|
-
generateMockLogs(count);
|
|
38
|
-
res.send({
|
|
39
|
-
message: 'Started generating mock logs'
|
|
26
|
+
// This route is NOT ignored by the spanExporter (includes "generate")
|
|
27
|
+
router.post('/generate-mock-logs', async (req, res) => {
|
|
28
|
+
const count = parseInt(req.body.count) || 50;
|
|
29
|
+
generateMockLogs(count);
|
|
30
|
+
res.send({ message: 'Started generating mock logs' });
|
|
40
31
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
res.send({
|
|
48
|
-
waited: waitTime
|
|
32
|
+
// This route is NOT ignored by the spanExporter
|
|
33
|
+
router.get('/generate-wait', async (req, res) => {
|
|
34
|
+
const seconds = parseInt(req.query.seconds ?? "1", 10);
|
|
35
|
+
const waitTime = isNaN(seconds) ? 1 : seconds;
|
|
36
|
+
await new Promise(resolve => setTimeout(resolve, waitTime * 1000));
|
|
37
|
+
res.send({ waited: waitTime });
|
|
49
38
|
});
|
|
50
|
-
|
|
51
|
-
return router;
|
|
39
|
+
return router;
|
|
52
40
|
};
|
|
53
41
|
exports.getUtilsRoutes = getUtilsRoutes;
|
|
54
|
-
const generateMockLogs = async count => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
};
|
|
42
|
+
const generateMockLogs = async (count) => {
|
|
43
|
+
const methodMessages = {
|
|
44
|
+
log: ['User logged in', 'Data fetched successfully'],
|
|
45
|
+
warn: ['Warning: Disk space low', 'Warning: High memory usage'],
|
|
46
|
+
error: ['Error connecting to database', 'Error: Invalid credentials'],
|
|
47
|
+
info: ['Info: Scheduled job started', 'Info: Configuration loaded'],
|
|
48
|
+
debug: ['Debugging mode enabled', 'Debug: Variable x = 42'],
|
|
49
|
+
};
|
|
50
|
+
const methods = Object.keys(methodMessages);
|
|
51
|
+
for (let i = 0; i < count; i++) {
|
|
52
|
+
await new Promise(resolve => setTimeout(resolve, 50)); // Slight delay between logs
|
|
53
|
+
const method = methods[Math.floor(Math.random() * methods.length)];
|
|
54
|
+
const messages = methodMessages[method];
|
|
55
|
+
const message = messages[Math.floor(Math.random() * messages.length)];
|
|
56
|
+
console[method](`[${new Date().toISOString()}][MOCK LOG][${method.toUpperCase()}] -${i + 1}- ${message}`);
|
|
57
|
+
}
|
|
58
|
+
};
|
package/dist/cjs/types/index.cjs
CHANGED
|
@@ -1,48 +1,43 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
});
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
var _bootConfig = require("../config/bootConfig.cjs");
|
|
8
|
-
var _telemetryRegistry = require("../telemetry/telemetryRegistry.cjs");
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const bootConfig_js_1 = require("../config/bootConfig.cjs");
|
|
4
|
+
const telemetryRegistry_js_1 = require("../telemetry/telemetryRegistry.cjs");
|
|
9
5
|
const LOG_LEVELS = ['DEBUG', 'INFO', 'WARN', 'ERROR', 'NONE'];
|
|
10
|
-
const currentLogLevel =
|
|
11
|
-
const serviceName = 'OAS-TLM-@-' +
|
|
6
|
+
const currentLogLevel = (bootConfig_js_1.bootEnvVariables.OASTLM_BOOT_LOG_LEVEL).toUpperCase();
|
|
7
|
+
const serviceName = 'OAS-TLM-@-' + bootConfig_js_1.bootEnvVariables.OASTLM_BOOT_SERVICE_NAME;
|
|
12
8
|
function shouldLog(level) {
|
|
13
|
-
|
|
9
|
+
return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(currentLogLevel);
|
|
14
10
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
11
|
+
exports.default = {
|
|
12
|
+
debug: (...messages) => {
|
|
13
|
+
if (shouldLog('DEBUG')) {
|
|
14
|
+
const timestamp = new Date().toISOString();
|
|
15
|
+
telemetryRegistry_js_1.originalConsoleMethods.debug(`${timestamp} [${serviceName}] [DEBUG]:`, ...messages);
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
info: (...messages) => {
|
|
19
|
+
if (shouldLog('INFO')) {
|
|
20
|
+
const timestamp = new Date().toISOString();
|
|
21
|
+
telemetryRegistry_js_1.originalConsoleMethods.info(`${timestamp} [${serviceName}] [INFO]:`, ...messages);
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
log: (...messages) => {
|
|
25
|
+
if (shouldLog('INFO')) {
|
|
26
|
+
const timestamp = new Date().toISOString();
|
|
27
|
+
telemetryRegistry_js_1.originalConsoleMethods.log(`${timestamp} [${serviceName}] [INFO]:`, ...messages);
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
warn: (...messages) => {
|
|
31
|
+
if (shouldLog('WARN')) {
|
|
32
|
+
const timestamp = new Date().toISOString();
|
|
33
|
+
telemetryRegistry_js_1.originalConsoleMethods.warn(`${timestamp} [${serviceName}] [WARN]:`, ...messages);
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
error: (...messages) => {
|
|
37
|
+
if (shouldLog('ERROR')) {
|
|
38
|
+
const timestamp = new Date().toISOString();
|
|
39
|
+
telemetryRegistry_js_1.originalConsoleMethods.error(`${timestamp} [${serviceName}] [ERROR]:`, ...messages);
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
currentLogLevel
|
|
47
43
|
};
|
|
48
|
-
module.exports = exports.default;
|
|
@@ -1,27 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, "__esModule", {
|
|
4
|
-
value: true
|
|
5
|
-
});
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.convertRegexRecursively = void 0;
|
|
7
|
-
const convertRegexRecursively = obj => {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
4
|
+
const convertRegexRecursively = (obj) => {
|
|
5
|
+
if (Array.isArray(obj)) {
|
|
6
|
+
return obj.map(exports.convertRegexRecursively);
|
|
7
|
+
}
|
|
8
|
+
else if (obj && typeof obj === 'object') {
|
|
9
|
+
const newObj = {};
|
|
10
|
+
for (const key of Object.keys(obj)) {
|
|
11
|
+
if (key === '$regex' && typeof obj[key] === 'string') {
|
|
12
|
+
try {
|
|
13
|
+
return new RegExp(obj[key]);
|
|
14
|
+
}
|
|
15
|
+
catch {
|
|
16
|
+
throw new Error(`Invalid regex value "${obj[key]}"`);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
newObj[key] = (0, exports.convertRegexRecursively)(obj[key]);
|
|
21
|
+
}
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
newObj[key] = convertRegexRecursively(obj[key]);
|
|
21
|
-
}
|
|
23
|
+
return newObj;
|
|
22
24
|
}
|
|
23
|
-
return
|
|
24
|
-
}
|
|
25
|
-
return obj;
|
|
25
|
+
return obj;
|
|
26
26
|
};
|
|
27
|
-
exports.convertRegexRecursively = convertRegexRecursively;
|
|
27
|
+
exports.convertRegexRecursively = convertRegexRecursively;
|
|
@@ -10,4 +10,10 @@ export const bootEnvVariables = {
|
|
|
10
10
|
OASTLM_BOOT_MODULE_DISABLED: process.env.OASTLM_BOOT_MODULE_DISABLED === 'true',
|
|
11
11
|
OASTLM_BOOT_LOG_LEVEL: process.env.OASTLM_BOOT_LOG_LEVEL || 'INFO',
|
|
12
12
|
OASTLM_BOOT_SERVICE_NAME: process.env.OASTLM_BOOT_SERVICE_NAME || `SERVICE-${randomUUID().slice(0, 8).toUpperCase()}`,
|
|
13
|
+
OASTLM_BOOT_BASE_URL: process.env.OASTLM_BOOT_BASE_URL || '/oas-telemetry',
|
|
14
|
+
OASTLM_BOOT_AUTOINSTRUMENTATIONS_NODE_DISABLED: process.env.OASTLM_BOOT_AUTOINSTRUMENTATIONS_NODE_DISABLED == 'true',
|
|
15
|
+
OASTLM_BOOT_AUTOINSTRUMENTATIONS_LOGS_DISABLED: process.env.OASTLM_BOOT_AUTOINSTRUMENTATIONS_LOGS_DISABLED == 'true',
|
|
16
|
+
// Storage path: empty string = in-memory, else = disk storage at specified path
|
|
17
|
+
OASTLM_BOOT_STORAGE_PATH: process.env.OASTLM_BOOT_STORAGE_PATH || '',
|
|
13
18
|
};
|
|
19
|
+
// REMEMBER TO UPDATE THE .env.example FILE WITH ANY NEW BOOT VARIABLE ADDED HERE.
|
|
@@ -5,7 +5,6 @@ import merge from 'lodash.merge';
|
|
|
5
5
|
const loadEnv = () => {
|
|
6
6
|
return {
|
|
7
7
|
general: {
|
|
8
|
-
baseUrl: getParsedEnvVar("OASTLM_CONFIG_GENERAL_BASE_URL"),
|
|
9
8
|
specFileName: getParsedEnvVar("OASTLM_CONFIG_GENERAL_SPEC_FILE_NAME"),
|
|
10
9
|
// spec Not settable via env
|
|
11
10
|
},
|
|
@@ -55,7 +54,6 @@ const loadEnv = () => {
|
|
|
55
54
|
// This means certain settings may affect application startup behavior outside of this configuration system.
|
|
56
55
|
export const defaultConfig = {
|
|
57
56
|
general: {
|
|
58
|
-
baseUrl: "/telemetry",
|
|
59
57
|
specFileName: null, // e.g. "oas.json" or null if not provided
|
|
60
58
|
spec: null, // e.g. JSON.stringify(oasSpec) or null if not provided,
|
|
61
59
|
uiPath: "/oas-telemetry-ui", // path to the UI, e.g. "/oas-telemetry-ui" WARN: This must match the UI package's App.tsx "oas-telemetry-ui" path
|
|
@@ -110,6 +108,7 @@ export const defaultConfig = {
|
|
|
110
108
|
enabled: true, // future feature
|
|
111
109
|
extraPlugins: [], // future feature
|
|
112
110
|
},
|
|
111
|
+
instrumentations: [],
|
|
113
112
|
};
|
|
114
113
|
// Helper to get an environment variable with optional transform
|
|
115
114
|
const getParsedEnvVar = (envKey, transform) => {
|