@oas-tools/oas-telemetry 0.1.10 → 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 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 (typeof telemetryConfig.spec === 'string' || telemetryConfig.spec instanceof String) {
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
  };
@@ -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();