@oas-tools/oas-telemetry 0.1.9 → 0.2.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/README.md +39 -1
- package/dist/index.cjs +8 -7
- package/dist/telemetry.cjs +1 -24
- package/dist/ui.cjs +756 -691
- package/package.json +14 -2
- package/src/index.js +8 -9
- package/src/telemetry.js +1 -23
- package/src/ui.js +754 -694
- package/src/ui/detail.html +0 -441
- package/src/ui/main.html +0 -266
package/README.md
CHANGED
|
@@ -55,7 +55,7 @@ OAS Telemetry middleware adds the following endpoints to your Express applicatio
|
|
|
55
55
|
- /telemetry/heapStats: Shows v8 heapStats.
|
|
56
56
|
|
|
57
57
|
|
|
58
|
-
## Simple Example
|
|
58
|
+
## Simple Example [ES Module](https://nodejs.org/docs/latest/api/esm.html) (*.mjs)
|
|
59
59
|
```js index.mjs
|
|
60
60
|
import oasTelemetry from '@oas-tools/oas-telemetry';
|
|
61
61
|
import express from 'express';
|
|
@@ -93,3 +93,41 @@ app.listen(port, () => {
|
|
|
93
93
|
});
|
|
94
94
|
```
|
|
95
95
|
|
|
96
|
+
## Simple Example [Common.js Module](https://nodejs.org/docs/latest/api/modules.html) (*.cjs)
|
|
97
|
+
```js index.cjs
|
|
98
|
+
let oasTelemetry = require('@oas-tools/oas-telemetry');
|
|
99
|
+
let express = require('express');
|
|
100
|
+
|
|
101
|
+
const app = express();
|
|
102
|
+
const port = 3000;
|
|
103
|
+
|
|
104
|
+
const spec = { "paths": {
|
|
105
|
+
"/api/v1/pets": {
|
|
106
|
+
"get": {
|
|
107
|
+
"summary": "Get pets",
|
|
108
|
+
"responses":{
|
|
109
|
+
"200": {
|
|
110
|
+
"description": "Success"
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
app.use(oasTelemetry({
|
|
119
|
+
spec : JSON.stringify(spec)
|
|
120
|
+
}))
|
|
121
|
+
|
|
122
|
+
app.use(express.json());
|
|
123
|
+
|
|
124
|
+
app.get("/api/v1/pets", (req, res) => {
|
|
125
|
+
res.send([{ name: "rocky"},{ name: "pikachu"}]);
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
app.listen(port, () => {
|
|
129
|
+
console.log(`Example app listening at http://localhost:${port}`);
|
|
130
|
+
console.log(`Telemetry portal available at http://localhost:${port}/telemetry`);
|
|
131
|
+
});
|
|
132
|
+
```
|
|
133
|
+
|
package/dist/index.cjs
CHANGED
|
@@ -10,6 +10,7 @@ var _v = _interopRequireDefault(require("v8"));
|
|
|
10
10
|
var _fs = require("fs");
|
|
11
11
|
var _path = _interopRequireDefault(require("path"));
|
|
12
12
|
var _jsYaml = _interopRequireDefault(require("js-yaml"));
|
|
13
|
+
var _url = require("url");
|
|
13
14
|
var _ui = _interopRequireDefault(require("./ui.cjs"));
|
|
14
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
16
|
// telemetryMiddleware.js
|
|
@@ -34,14 +35,17 @@ function oasTelemetry(tlConfig) {
|
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
const router = (0, _express.Router)();
|
|
38
|
+
|
|
39
|
+
//const baseURL = telemetryConfig.baseURL;
|
|
40
|
+
|
|
37
41
|
router.get(baseURL, mainPage);
|
|
38
42
|
router.get(baseURL + "/detail/*", detailPage);
|
|
39
43
|
router.get(baseURL + "/spec", specLoader);
|
|
40
44
|
router.get(baseURL + "/api", apiPage);
|
|
41
|
-
router.get(baseURL + "/reset", resetTelemetry);
|
|
42
45
|
router.get(baseURL + "/start", startTelemetry);
|
|
43
46
|
router.get(baseURL + "/stop", stopTelemetry);
|
|
44
47
|
router.get(baseURL + "/status", statusTelemetry);
|
|
48
|
+
router.get(baseURL + "/reset", resetTelemetry);
|
|
45
49
|
router.get(baseURL + "/list", listTelemetry);
|
|
46
50
|
router.post(baseURL + "/find", findTelemetry);
|
|
47
51
|
router.get(baseURL + "/heapStats", heapStats);
|
|
@@ -63,9 +67,11 @@ const apiPage = (req, res) => {
|
|
|
63
67
|
res.send(text);
|
|
64
68
|
};
|
|
65
69
|
const mainPage = (req, res) => {
|
|
70
|
+
res.set('Content-Type', 'text/html');
|
|
66
71
|
res.send((0, _ui.default)().main);
|
|
67
72
|
};
|
|
68
73
|
const detailPage = (req, res) => {
|
|
74
|
+
res.set('Content-Type', 'text/html');
|
|
69
75
|
res.send((0, _ui.default)().detail);
|
|
70
76
|
};
|
|
71
77
|
const specLoader = (req, res) => {
|
|
@@ -84,7 +90,7 @@ const specLoader = (req, res) => {
|
|
|
84
90
|
console.log(`ERROR loading spec file ${telemetryConfig.specFileName}: ${e}`);
|
|
85
91
|
}
|
|
86
92
|
} else {
|
|
87
|
-
if (
|
|
93
|
+
if (telemetryConfig.spec) {
|
|
88
94
|
let spec = false;
|
|
89
95
|
try {
|
|
90
96
|
spec = JSON.parse(telemetryConfig.spec);
|
|
@@ -101,11 +107,6 @@ const specLoader = (req, res) => {
|
|
|
101
107
|
res.setHeader('Content-Type', 'application/json');
|
|
102
108
|
res.send(spec);
|
|
103
109
|
}
|
|
104
|
-
} else if (typeof telemetryConfig.spec === 'object') {
|
|
105
|
-
res.setHeader('Content-Type', 'application/json');
|
|
106
|
-
res.send(telemetryConfig.spec);
|
|
107
|
-
} else {
|
|
108
|
-
res.status(404);
|
|
109
110
|
}
|
|
110
111
|
}
|
|
111
112
|
};
|
package/dist/telemetry.cjs
CHANGED
|
@@ -12,35 +12,12 @@ var _instrumentationHttp = require("@opentelemetry/instrumentation-http");
|
|
|
12
12
|
var _InMemoryDbExporter = require("./exporters/InMemoryDbExporter.cjs");
|
|
13
13
|
// import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
|
14
14
|
|
|
15
|
-
// initialize the SDK and register with the OpenTelemetry API
|
|
16
|
-
// import { NodeTracerProvider } from '@opentelemetry/sdk-trace-node';
|
|
17
|
-
// import { SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
18
|
-
|
|
19
15
|
// Create an in-memory span exporter
|
|
20
16
|
const inMemoryExporter = exports.inMemoryExporter = new _InMemoryDbExporter.InMemoryExporter();
|
|
21
|
-
// configure the SDK to export telemetry data to the console
|
|
22
|
-
// enable all auto-instrumentations from the meta package
|
|
23
17
|
const traceExporter = inMemoryExporter;
|
|
24
18
|
const sdk = new _sdkNode.NodeSDK({
|
|
25
19
|
resource: new _resources.Resource(),
|
|
26
20
|
traceExporter,
|
|
27
21
|
instrumentations: [new _instrumentationHttp.HttpInstrumentation()]
|
|
28
22
|
});
|
|
29
|
-
sdk.start();
|
|
30
|
-
// Create a tracer provider
|
|
31
|
-
// const tracerProvider = new NodeTracerProvider({
|
|
32
|
-
// resource: new Resource({
|
|
33
|
-
// [SemanticResourceAttributes.SERVICE_NAME]: 'basic-service',
|
|
34
|
-
// }),
|
|
35
|
-
// instrumentations: [new HttpInstrumentation()],
|
|
36
|
-
// });
|
|
37
|
-
|
|
38
|
-
// // maybe BatchSpanProcessorBase
|
|
39
|
-
// tracerProvider.addSpanProcessor(new SimpleSpanProcessor(inMemoryExporter));
|
|
40
|
-
|
|
41
|
-
// // Register the tracer provider
|
|
42
|
-
// tracerProvider.register();
|
|
43
|
-
|
|
44
|
-
//WARNING: this is configured with batchSpanProcessor, it takes 5 seconds to flush the spans
|
|
45
|
-
// import {startTracesInstrumentation} from '@restsense/agent/api'
|
|
46
|
-
// startTracesInstrumentation(inMemoryExporter,resource);
|
|
23
|
+
sdk.start();
|