@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.
Files changed (167) hide show
  1. package/.env.example +21 -2
  2. package/README.md +1 -2
  3. package/dist/cjs/config/bootConfig.cjs +19 -14
  4. package/dist/cjs/config/config.cjs +112 -125
  5. package/dist/cjs/config/config.types.cjs +1 -4
  6. package/dist/cjs/docs/openapi.yaml +158 -4
  7. package/dist/cjs/index.cjs +27 -30
  8. package/dist/cjs/routesManager.cjs +62 -70
  9. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.cjs +202 -190
  10. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.cjs +204 -99
  11. package/dist/cjs/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.cjs +152 -116
  12. package/dist/cjs/telemetry/custom-implementations/instrumentations/logsInstrumentation.cjs +92 -0
  13. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Chunk.cjs +159 -0
  14. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/Series.cjs +168 -0
  15. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.cjs +389 -0
  16. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/types.cjs +2 -0
  17. package/dist/cjs/telemetry/custom-implementations/metrics/tsdb/utils.cjs +77 -0
  18. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.cjs +65 -63
  19. package/dist/cjs/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.cjs +63 -62
  20. package/dist/cjs/telemetry/custom-implementations/utils/circular.cjs +47 -47
  21. package/dist/cjs/telemetry/custom-implementations/utils/storagePath.cjs +39 -0
  22. package/dist/cjs/telemetry/custom-implementations/wrappers.cjs +141 -138
  23. package/dist/cjs/telemetry/initializeTelemetry.cjs +35 -91
  24. package/dist/cjs/telemetry/telemetryConfigurator.cjs +70 -72
  25. package/dist/cjs/telemetry/telemetryRegistry.cjs +45 -31
  26. package/dist/cjs/tlm-ai/agent.cjs +49 -64
  27. package/dist/cjs/tlm-ai/aiController.cjs +54 -76
  28. package/dist/cjs/tlm-ai/aiRoutes.cjs +17 -20
  29. package/dist/cjs/tlm-ai/aiService.cjs +91 -95
  30. package/dist/cjs/tlm-ai/tools.cjs +177 -174
  31. package/dist/cjs/tlm-auth/authController.cjs +80 -123
  32. package/dist/cjs/tlm-auth/authMiddleware.cjs +25 -30
  33. package/dist/cjs/tlm-auth/authRoutes.cjs +11 -14
  34. package/dist/cjs/tlm-log/logController.cjs +171 -116
  35. package/dist/cjs/tlm-log/logRoutes.cjs +20 -20
  36. package/dist/cjs/tlm-metric/metricsController.cjs +211 -121
  37. package/dist/cjs/tlm-metric/metricsRoutes.cjs +23 -20
  38. package/dist/cjs/tlm-plugin/pluginController.cjs +128 -140
  39. package/dist/cjs/tlm-plugin/pluginProcess.cjs +89 -94
  40. package/dist/cjs/tlm-plugin/pluginRoutes.cjs +11 -14
  41. package/dist/cjs/tlm-plugin/pluginService.cjs +73 -74
  42. package/dist/cjs/tlm-trace/traceController.cjs +169 -117
  43. package/dist/cjs/tlm-trace/traceRoutes.cjs +20 -20
  44. package/dist/cjs/tlm-ui/uiRoutes.cjs +63 -32
  45. package/dist/cjs/tlm-util/utilController.cjs +68 -70
  46. package/dist/cjs/tlm-util/utilRoutes.cjs +51 -63
  47. package/dist/cjs/types/index.cjs +2 -5
  48. package/dist/cjs/utils/logger.cjs +38 -43
  49. package/dist/cjs/utils/regexUtils.cjs +22 -22
  50. package/dist/esm/config/bootConfig.js +6 -0
  51. package/dist/esm/config/config.js +1 -2
  52. package/dist/esm/docs/openapi.yaml +158 -4
  53. package/dist/esm/index.js +9 -8
  54. package/dist/esm/routesManager.js +6 -10
  55. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.js +47 -8
  56. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.js +164 -48
  57. package/dist/esm/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.js +69 -29
  58. package/dist/esm/telemetry/custom-implementations/instrumentations/logsInstrumentation.js +85 -0
  59. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Chunk.js +155 -0
  60. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/Series.js +164 -0
  61. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.js +382 -0
  62. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/types.js +1 -0
  63. package/dist/esm/telemetry/custom-implementations/metrics/tsdb/utils.js +74 -0
  64. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.js +2 -1
  65. package/dist/esm/telemetry/custom-implementations/processors/dynamicMultiSpanProcessor.js +1 -1
  66. package/dist/esm/telemetry/custom-implementations/utils/storagePath.js +33 -0
  67. package/dist/esm/telemetry/custom-implementations/wrappers.js +5 -2
  68. package/dist/esm/telemetry/initializeTelemetry.js +27 -69
  69. package/dist/esm/telemetry/telemetryConfigurator.js +42 -40
  70. package/dist/esm/telemetry/telemetryRegistry.js +12 -1
  71. package/dist/esm/tlm-ai/agent.js +5 -3
  72. package/dist/esm/tlm-ai/aiController.js +3 -3
  73. package/dist/esm/tlm-ai/aiService.js +6 -2
  74. package/dist/esm/tlm-ai/tools.js +5 -9
  75. package/dist/esm/tlm-auth/authController.js +3 -2
  76. package/dist/esm/tlm-log/logController.js +84 -4
  77. package/dist/esm/tlm-log/logRoutes.js +5 -2
  78. package/dist/esm/tlm-metric/metricsController.js +172 -49
  79. package/dist/esm/tlm-metric/metricsRoutes.js +10 -4
  80. package/dist/esm/tlm-plugin/pluginController.js +6 -11
  81. package/dist/esm/tlm-plugin/pluginService.js +2 -4
  82. package/dist/esm/tlm-trace/traceController.js +102 -16
  83. package/dist/esm/tlm-trace/traceRoutes.js +5 -2
  84. package/dist/esm/tlm-ui/uiRoutes.js +5 -5
  85. package/dist/esm/tlm-util/utilController.js +3 -9
  86. package/dist/esm/tlm-util/utilRoutes.js +2 -2
  87. package/dist/types/config/bootConfig.d.ts +4 -0
  88. package/dist/types/config/config.d.ts +36 -7
  89. package/dist/types/config/config.types.d.ts +6 -0
  90. package/dist/types/index.d.ts +2 -3
  91. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbLogExporter.d.ts +4 -1
  92. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbMetricExporter.d.ts +60 -15
  93. package/dist/types/telemetry/custom-implementations/exporters/InMemoryDbSpanExporter.d.ts +9 -4
  94. package/dist/types/telemetry/custom-implementations/instrumentations/logsInstrumentation.d.ts +23 -0
  95. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Chunk.d.ts +49 -0
  96. package/dist/types/telemetry/custom-implementations/metrics/tsdb/Series.d.ts +67 -0
  97. package/dist/types/telemetry/custom-implementations/metrics/tsdb/SeriesRegistry.d.ts +69 -0
  98. package/dist/types/telemetry/custom-implementations/metrics/tsdb/types.d.ts +68 -0
  99. package/dist/types/telemetry/custom-implementations/metrics/tsdb/utils.d.ts +21 -0
  100. package/dist/types/telemetry/custom-implementations/processors/dynamicMultiLogProcessor.d.ts +2 -2
  101. package/dist/types/telemetry/custom-implementations/utils/storagePath.d.ts +12 -0
  102. package/dist/types/telemetry/custom-implementations/wrappers.d.ts +1 -1
  103. package/dist/types/telemetry/telemetryConfigurator.d.ts +1 -1
  104. package/dist/types/telemetry/telemetryRegistry.d.ts +8 -0
  105. package/dist/types/tlm-ai/agent.d.ts +1 -1
  106. package/dist/types/tlm-ai/aiService.d.ts +1 -1
  107. package/dist/types/tlm-log/logController.d.ts +2 -0
  108. package/dist/types/tlm-metric/metricsController.d.ts +16 -2
  109. package/dist/types/tlm-trace/traceController.d.ts +3 -1
  110. package/dist/types/types/index.d.ts +2 -2
  111. package/dist/ui/assets/{ApiDocsPage-C_VVPPHa.js → ApiDocsPage-BFUrXE5F.js} +2 -2
  112. package/dist/ui/assets/CollapsibleCard-STA1GVQO.js +1 -0
  113. package/dist/ui/assets/DevToolsPage-BRSfZqO_.js +1 -0
  114. package/dist/ui/assets/LandingPage-DzeDy7q7.js +6 -0
  115. package/dist/ui/assets/LogsPage-BeiFrV2X.js +1 -0
  116. package/dist/ui/assets/{NotFoundPage-B3quk3P1.js → NotFoundPage-fRNOatbM.js} +1 -1
  117. package/dist/ui/assets/PluginCreatePage-Ch_RXsdf.js +50 -0
  118. package/dist/ui/assets/PluginPage-Cl65ZZ_n.js +27 -0
  119. package/dist/ui/assets/TraceSpansPage-BoK4M5Hh.js +6 -0
  120. package/dist/ui/assets/VirtualizedListPanel-zcj0v7DL.js +16 -0
  121. package/dist/ui/assets/alert-BkNVKxJN.js +1133 -0
  122. package/dist/ui/assets/badge-CN7FeufU.js +1 -0
  123. package/dist/ui/assets/{chevron-down-CPsvsmqj.js → chevron-down-CG--ounh.js} +1 -1
  124. package/dist/ui/assets/{chevron-up-Df9jMo1X.js → chevron-up-B6tzMAOm.js} +1 -1
  125. package/dist/ui/assets/{circle-alert-DOPQPvU8.js → circle-alert-BDF8Tq9y.js} +1 -1
  126. package/dist/ui/assets/dialog-BrpWNk36.js +15 -0
  127. package/dist/ui/assets/index-6xOVKwKn.js +305 -0
  128. package/dist/ui/assets/index-D6f1KjWV.css +1 -0
  129. package/dist/ui/assets/index-D96rVSkR.js +1 -0
  130. package/dist/ui/assets/info-99kuqpbx.js +6 -0
  131. package/dist/ui/assets/{input-Dzvg_ZEZ.js → input-B-01QDg_.js} +1 -1
  132. package/dist/ui/assets/label-CQLeZjM1.js +1 -0
  133. package/dist/ui/assets/{loader-circle-CrvlRy5o.js → loader-circle-BoDGk-BO.js} +1 -1
  134. package/dist/ui/assets/{loginPage-qa4V-B70.js → loginPage-8F4EEd1B.js} +1 -1
  135. package/dist/ui/assets/metrics-page-D1GxaB_c.css +1 -0
  136. package/dist/ui/assets/metrics-page-DPtteXqY.js +31 -0
  137. package/dist/ui/assets/popover-DS_8DYYt.js +11 -0
  138. package/dist/ui/assets/select-DYjegiXi.js +6 -0
  139. package/dist/ui/assets/separator-DGsRxIrl.js +6 -0
  140. package/dist/ui/assets/severityOptions-DEOvJqC9.js +11 -0
  141. package/dist/ui/assets/square-pen-DPhgYz6O.js +6 -0
  142. package/dist/ui/assets/switch-Di9NJH2A.js +1 -0
  143. package/dist/ui/assets/trace-DJq1miYa.js +1 -0
  144. package/dist/ui/assets/upload-BiLTpCnX.js +11 -0
  145. package/dist/ui/assets/{utilService-DNyqzwj0.js → utilService-CNZOmadC.js} +1 -1
  146. package/dist/ui/assets/wand-sparkles-CPoBNFFg.js +6 -0
  147. package/dist/ui/index.html +2 -2
  148. package/package.json +44 -48
  149. package/dist/ui/assets/CollapsibleCard-B3KR_8mL.js +0 -1
  150. package/dist/ui/assets/DevToolsPage-OyZcDcmw.js +0 -1
  151. package/dist/ui/assets/LandingPage-CppFBA6K.js +0 -6
  152. package/dist/ui/assets/LogsPage-9Fq8GArS.js +0 -26
  153. package/dist/ui/assets/PluginCreatePage-X_aCH4t4.js +0 -50
  154. package/dist/ui/assets/PluginPage-DMDSihrZ.js +0 -27
  155. package/dist/ui/assets/alert-jQ9HCPIf.js +0 -1133
  156. package/dist/ui/assets/badge-CNq0-mH5.js +0 -1
  157. package/dist/ui/assets/card-DFAwwhN3.js +0 -1
  158. package/dist/ui/assets/index-BkD6DijD.js +0 -15
  159. package/dist/ui/assets/index-CERGVYZK.js +0 -292
  160. package/dist/ui/assets/index-CSIPf9qw.css +0 -1
  161. package/dist/ui/assets/label-DuVnkZ4q.js +0 -1
  162. package/dist/ui/assets/select-DhS8YUtJ.js +0 -1
  163. package/dist/ui/assets/separator-isK4chBP.js +0 -6
  164. package/dist/ui/assets/severityOptions-O38dSOfk.js +0 -11
  165. package/dist/ui/assets/switch-Z3mImG9n.js +0 -1
  166. package/dist/ui/assets/tabs-_77MUUQe.js +0 -16
  167. package/dist/ui/assets/upload-C1LT4Gkb.js +0 -16
@@ -1,83 +1,81 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.specLoader = exports.heapStats = exports.getOasTelemetrySpec = void 0;
7
- var _fs = require("fs");
8
- var _path = _interopRequireDefault(require("path"));
9
- var _jsYaml = _interopRequireDefault(require("js-yaml"));
10
- var _nodeV = _interopRequireDefault(require("node:v8"));
11
- var _nodeUrl = require("node:url");
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
- if (oasTlmConfig.general.specFileName) {
15
- try {
16
- const data = (0, _fs.readFileSync)(oasTlmConfig.general.specFileName, {
17
- encoding: 'utf8',
18
- flag: 'r'
19
- });
20
- const extension = _path.default.extname(oasTlmConfig.general.specFileName);
21
- let json = data;
22
- if (extension == "yaml")
23
- //@ts-expect-error yes
24
- json = JSON.stringify(_jsYaml.default.SafeLoad(data), null, 2);
25
- res.setHeader('Content-Type', 'application/json');
26
- res.send(json);
27
- } catch (e) {
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
- } else if (oasTlmConfig.general.spec) {
31
- let spec = null;
32
- try {
33
- spec = JSON.parse(oasTlmConfig.general.spec);
34
- } catch (ej) {
35
- try {
36
- spec = JSON.stringify(_jsYaml.default.load(oasTlmConfig.general.spec), null, 2);
37
- } catch (ey) {
38
- console.error(`Error parsing spec: ${ej} - ${ey}`);
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
- if (!spec) {
42
- res.status(404);
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
- const heapStats = _nodeV.default.getHeapStatistics();
54
- const roundedHeapStats = Object.getOwnPropertyNames(heapStats).reduce(function (map, stat) {
55
- //@ts-expect-error yes
56
- map[stat] = Math.round(heapStats[stat] / 1024 / 1024 * 1000) / 1000;
57
- return map;
58
- }, {});
59
- // @ts-expect-error yes
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
- const __filenameUniversal = isCjs ? __filename : (0, _nodeUrl.fileURLToPath)(require('url').pathToFileURL(__filename).toString());
66
- const __dirnameUniversal = isCjs ? __dirname : _path.default.dirname(__filenameUniversal);
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
- try {
69
- const specPath = _path.default.join(__dirnameUniversal, '../docs/openapi.yaml');
70
- const data = (0, _fs.readFileSync)(specPath, {
71
- encoding: 'utf8',
72
- flag: 'r'
73
- });
74
- let json = data;
75
- json = JSON.stringify(_jsYaml.default.load(data), null, 2);
76
- res.setHeader('Content-Type', 'application/json');
77
- res.send(json);
78
- } catch (e) {
79
- console.error(`ERROR loading OAS Telemetry OpenAPI spec file: ${e}`);
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
- var _express = require("express");
8
- var _utilController = require("./utilController.cjs");
9
- const getUtilsRoutes = oasTlmConfig => {
10
- const router = (0, _express.Router)();
11
- router.get('/spec', (req, res) => (0, _utilController.specLoader)(req, res, oasTlmConfig));
12
- router.get('/oas-telemetry-spec', (req, res) => (0, _utilController.getOasTelemetrySpec)(req, res));
13
- router.get('/heapStats', _utilController.heapStats);
14
- //This route is NOT ignored by the spanExporter (includes "generate")
15
- router.post('/generate-log', async (req, res) => {
16
- const log = req.body.log || 'Default log message';
17
- const repeat = parseInt(req.body.repeat) || 1;
18
- const method = req.body.method?.toLowerCase() || 'log';
19
- if (!['log', 'warn', 'error', 'info', 'debug'].includes(method)) {
20
- res.status(400).send({
21
- error: 'Invalid method. Use log, warn, error, info, or debug.'
22
- });
23
- return;
24
- }
25
- res.send({
26
- message: 'Log generated',
27
- log: log
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
- for (let i = 0; i < repeat; i++) {
30
- console[method](log);
31
- await new Promise(resolve => setTimeout(resolve, 50)); // Slight delay between logs
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
- // This route is NOT ignored by the spanExporter
43
- router.get('/generate-wait/:seconds?', async (req, res) => {
44
- const seconds = parseInt(req.params.seconds ?? "1", 10);
45
- const waitTime = isNaN(seconds) ? 1 : seconds;
46
- await new Promise(resolve => setTimeout(resolve, waitTime * 1000));
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
- const methodMessages = {
56
- log: ['User logged in', 'Data fetched successfully'],
57
- warn: ['Warning: Disk space low', 'Warning: High memory usage'],
58
- error: ['Error connecting to database', 'Error: Invalid credentials'],
59
- info: ['Info: Scheduled job started', 'Info: Configuration loaded'],
60
- debug: ['Debugging mode enabled', 'Debug: Variable x = 42']
61
- };
62
- const methods = Object.keys(methodMessages);
63
- for (let i = 0; i < count; i++) {
64
- await new Promise(resolve => setTimeout(resolve, 50)); // Slight delay between logs
65
- const method = methods[Math.floor(Math.random() * methods.length)];
66
- const messages = methodMessages[method];
67
- const message = messages[Math.floor(Math.random() * messages.length)];
68
- console[method](`[${new Date().toISOString()}][MOCK LOG][${method.toUpperCase()}] -${i + 1}- ${message}`);
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
+ };
@@ -1,7 +1,4 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ ;
6
4
  ;
7
- ;
@@ -1,48 +1,43 @@
1
1
  "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
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 = _bootConfig.bootEnvVariables.OASTLM_BOOT_LOG_LEVEL.toUpperCase();
11
- const serviceName = 'OAS-TLM-@-' + _bootConfig.bootEnvVariables.OASTLM_BOOT_SERVICE_NAME;
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
- return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(currentLogLevel);
9
+ return LOG_LEVELS.indexOf(level) >= LOG_LEVELS.indexOf(currentLogLevel);
14
10
  }
15
- var _default = exports.default = {
16
- debug: (...messages) => {
17
- if (shouldLog('DEBUG')) {
18
- const timestamp = new Date().toISOString();
19
- _telemetryRegistry.originalConsoleMethods.debug(`${timestamp} [${serviceName}] [DEBUG]:`, ...messages);
20
- }
21
- },
22
- info: (...messages) => {
23
- if (shouldLog('INFO')) {
24
- const timestamp = new Date().toISOString();
25
- _telemetryRegistry.originalConsoleMethods.info(`${timestamp} [${serviceName}] [INFO]:`, ...messages);
26
- }
27
- },
28
- log: (...messages) => {
29
- if (shouldLog('INFO')) {
30
- const timestamp = new Date().toISOString();
31
- _telemetryRegistry.originalConsoleMethods.log(`${timestamp} [${serviceName}] [INFO]:`, ...messages);
32
- }
33
- },
34
- warn: (...messages) => {
35
- if (shouldLog('WARN')) {
36
- const timestamp = new Date().toISOString();
37
- _telemetryRegistry.originalConsoleMethods.warn(`${timestamp} [${serviceName}] [WARN]:`, ...messages);
38
- }
39
- },
40
- error: (...messages) => {
41
- if (shouldLog('ERROR')) {
42
- const timestamp = new Date().toISOString();
43
- _telemetryRegistry.originalConsoleMethods.error(`${timestamp} [${serviceName}] [ERROR]:`, ...messages);
44
- }
45
- },
46
- currentLogLevel
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
- if (Array.isArray(obj)) {
9
- return obj.map(convertRegexRecursively);
10
- } else if (obj && typeof obj === 'object') {
11
- const newObj = {};
12
- for (const key of Object.keys(obj)) {
13
- if (key === '$regex' && typeof obj[key] === 'string') {
14
- try {
15
- return new RegExp(obj[key]);
16
- } catch {
17
- throw new Error(`Invalid regex value "${obj[key]}"`);
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
- } else {
20
- newObj[key] = convertRegexRecursively(obj[key]);
21
- }
23
+ return newObj;
22
24
  }
23
- return newObj;
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) => {