@conduitplatform/module-tools 0.16.0-alpha.8 → 0.16.0-rc.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/dist/ManagedModule.d.ts +1 -0
- package/dist/ManagedModule.js +153 -358
- package/dist/ManagedModule.js.map +1 -1
- package/dist/classes/ConduitActiveSchema.d.ts +12 -9
- package/dist/classes/ConduitActiveSchema.js +43 -52
- package/dist/classes/ConduitActiveSchema.js.map +1 -1
- package/dist/classes/ConduitServiceModule.d.ts +2 -0
- package/dist/classes/ConduitServiceModule.js +65 -112
- package/dist/classes/ConduitServiceModule.js.map +1 -1
- package/dist/classes/ConfigController.js +10 -17
- package/dist/classes/ConfigController.js.map +1 -1
- package/dist/classes/GrpcServer.d.ts +1 -0
- package/dist/classes/GrpcServer.js +93 -172
- package/dist/classes/GrpcServer.js.map +1 -1
- package/dist/helpers/GrpcHelper.js +11 -11
- package/dist/helpers/GrpcHelper.js.map +1 -1
- package/dist/helpers/GrpcToParsedRouterRequest.d.ts +2 -0
- package/dist/helpers/GrpcToParsedRouterRequest.js +19 -0
- package/dist/helpers/GrpcToParsedRouterRequest.js.map +1 -0
- package/dist/helpers/TypeHelpers.d.ts +41 -15
- package/dist/helpers/TypeHelpers.js +57 -119
- package/dist/helpers/TypeHelpers.js.map +1 -1
- package/dist/helpers/index.d.ts +1 -0
- package/dist/helpers/index.js +1 -0
- package/dist/helpers/index.js.map +1 -1
- package/dist/helpers/wrapGrpcFunctions.js +14 -15
- package/dist/helpers/wrapGrpcFunctions.js.map +1 -1
- package/dist/interfaces/ModuleLifecycleStage.d.ts +7 -0
- package/dist/interfaces/ModuleLifecycleStage.js +12 -0
- package/dist/interfaces/ModuleLifecycleStage.js.map +1 -0
- package/dist/logging/index.js +80 -180
- package/dist/logging/index.js.map +1 -1
- package/dist/metrics/MetricsServer.d.ts +2 -1
- package/dist/metrics/MetricsServer.js +25 -70
- package/dist/metrics/MetricsServer.js.map +1 -1
- package/dist/metrics/clientMiddleware.js +76 -217
- package/dist/metrics/clientMiddleware.js.map +1 -1
- package/dist/metrics/config/defaults.js +1 -1
- package/dist/metrics/config/defaults.js.map +1 -1
- package/dist/metrics/index.js +53 -89
- package/dist/metrics/index.js.map +1 -1
- package/dist/module.proto +58 -0
- package/dist/routing/ProxyRouteBuilder.js +21 -24
- package/dist/routing/ProxyRouteBuilder.js.map +1 -1
- package/dist/routing/RouteBuilder.d.ts +5 -5
- package/dist/routing/RouteBuilder.js +31 -34
- package/dist/routing/RouteBuilder.js.map +1 -1
- package/dist/routing/RoutingController.d.ts +8 -0
- package/dist/routing/RoutingController.js +25 -0
- package/dist/routing/RoutingController.js.map +1 -0
- package/dist/routing/RoutingManager.d.ts +5 -2
- package/dist/routing/RoutingManager.js +61 -115
- package/dist/routing/RoutingManager.js.map +1 -1
- package/dist/routing/RoutingUtilities.js +3 -3
- package/dist/routing/RoutingUtilities.js.map +1 -1
- package/dist/routing/wrapRouterFunctions.d.ts +5 -5
- package/dist/routing/wrapRouterFunctions.js +30 -39
- package/dist/routing/wrapRouterFunctions.js.map +1 -1
- package/dist/utilities/convictConfigParser.js +2 -2
- package/dist/utilities/convictConfigParser.js.map +1 -1
- package/dist/utilities/initializeSdk.js +9 -11
- package/dist/utilities/initializeSdk.js.map +1 -1
- package/dist/utilities/linearBackoffTimeout.d.ts +1 -1
- package/dist/utilities/linearBackoffTimeout.js +35 -92
- package/dist/utilities/linearBackoffTimeout.js.map +1 -1
- package/dist/utilities/merge.js +2 -2
- package/dist/utilities/merge.js.map +1 -1
- package/package.json +19 -20
package/dist/logging/index.js
CHANGED
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __assign = (this && this.__assign) || function () {
|
|
3
|
-
__assign = Object.assign || function(t) {
|
|
4
|
-
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
-
s = arguments[i];
|
|
6
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
-
t[p] = s[p];
|
|
8
|
-
}
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
3
|
if (k2 === undefined) k2 = k;
|
|
15
4
|
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
@@ -33,104 +22,40 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
33
22
|
__setModuleDefault(result, mod);
|
|
34
23
|
return result;
|
|
35
24
|
};
|
|
36
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
37
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
38
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
39
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
40
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
41
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
42
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
43
|
-
});
|
|
44
|
-
};
|
|
45
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
46
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
47
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
48
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
49
|
-
function step(op) {
|
|
50
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
51
|
-
while (_) try {
|
|
52
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
53
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
54
|
-
switch (op[0]) {
|
|
55
|
-
case 0: case 1: t = op; break;
|
|
56
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
57
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
58
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
59
|
-
default:
|
|
60
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
61
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
62
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
63
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
64
|
-
if (t[2]) _.ops.pop();
|
|
65
|
-
_.trys.pop(); continue;
|
|
66
|
-
}
|
|
67
|
-
op = body.call(thisArg, _);
|
|
68
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
69
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
var __read = (this && this.__read) || function (o, n) {
|
|
73
|
-
var m = typeof Symbol === "function" && o[Symbol.iterator];
|
|
74
|
-
if (!m) return o;
|
|
75
|
-
var i = m.call(o), r, ar = [], e;
|
|
76
|
-
try {
|
|
77
|
-
while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);
|
|
78
|
-
}
|
|
79
|
-
catch (error) { e = { error: error }; }
|
|
80
|
-
finally {
|
|
81
|
-
try {
|
|
82
|
-
if (r && !r.done && (m = i["return"])) m.call(i);
|
|
83
|
-
}
|
|
84
|
-
finally { if (e) throw e.error; }
|
|
85
|
-
}
|
|
86
|
-
return ar;
|
|
87
|
-
};
|
|
88
|
-
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
89
|
-
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
90
|
-
if (ar || !(i in from)) {
|
|
91
|
-
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
92
|
-
ar[i] = from[i];
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
return to.concat(ar || Array.prototype.slice.call(from));
|
|
96
|
-
};
|
|
97
25
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
98
26
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
99
27
|
};
|
|
100
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
101
29
|
exports.setupLoki = exports.ConduitLogger = void 0;
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
30
|
+
const grpc_sdk_1 = __importDefault(require("@conduitplatform/grpc-sdk"));
|
|
31
|
+
const winston_1 = __importStar(require("winston"));
|
|
32
|
+
const lodash_1 = require("lodash");
|
|
33
|
+
const http_1 = require("http");
|
|
34
|
+
const winston_loki_1 = __importDefault(require("winston-loki"));
|
|
35
|
+
const utilities_1 = require("../utilities");
|
|
36
|
+
const processMeta = (meta) => {
|
|
109
37
|
if (Array.isArray(meta)) {
|
|
110
|
-
return meta.reduce(
|
|
111
|
-
return "".concat(message, " \n ").concat(JSON.stringify(meta, null, 2));
|
|
112
|
-
}, '');
|
|
38
|
+
return meta.reduce((message, meta) => `${message} \n ${JSON.stringify(meta, null, 2)}`, '');
|
|
113
39
|
}
|
|
114
40
|
else {
|
|
115
41
|
return JSON.stringify(meta, null, 2);
|
|
116
42
|
}
|
|
117
43
|
};
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
return winston_1.format.combine(winston_1.format.printf(function (info) {
|
|
44
|
+
const createFormat = (logMeta = true) => {
|
|
45
|
+
return winston_1.format.combine(winston_1.format.printf(info => {
|
|
121
46
|
// This will customize the Error Message
|
|
122
47
|
if (info.stack) {
|
|
123
|
-
return
|
|
48
|
+
return `[${info.timestamp}] [${info.level.toUpperCase()}]: ${info.message} ${info.stack}`;
|
|
124
49
|
}
|
|
125
50
|
if (logMeta) {
|
|
126
|
-
return
|
|
51
|
+
return `[${info.timestamp}] [${info.level.toUpperCase()}]: ${info.message} ${!(0, lodash_1.isEmpty)(info.meta) ? processMeta(info.meta) : ''}`;
|
|
127
52
|
}
|
|
128
53
|
else {
|
|
129
|
-
return
|
|
54
|
+
return `[${info.timestamp}] [${info.level.toUpperCase()}]: ${info.message}`;
|
|
130
55
|
}
|
|
131
56
|
}));
|
|
132
57
|
};
|
|
133
|
-
|
|
58
|
+
const defaultTransport = new winston_1.default.transports.Console({
|
|
134
59
|
level: 'debug',
|
|
135
60
|
format: winston_1.format.combine(winston_1.format.prettyPrint(), winston_1.format.errors({ stack: true }), winston_1.format.timestamp({
|
|
136
61
|
format: 'YYYY-MM-DD HH:mm:ss',
|
|
@@ -138,118 +63,93 @@ var defaultTransport = new winston_1.default.transports.Console({
|
|
|
138
63
|
all: true,
|
|
139
64
|
})),
|
|
140
65
|
});
|
|
141
|
-
|
|
142
|
-
|
|
66
|
+
class ConduitLogger {
|
|
67
|
+
constructor(transports) {
|
|
143
68
|
this._winston = winston_1.default.createLogger({
|
|
144
69
|
format: winston_1.format.combine(winston_1.format.prettyPrint(), winston_1.format.errors({ stack: true }), winston_1.format.timestamp({
|
|
145
70
|
format: 'YYYY-MM-DD HH:mm:ss',
|
|
146
71
|
}), createFormat()),
|
|
147
|
-
transports: transports ?
|
|
72
|
+
transports: transports ? [...transports, defaultTransport] : [defaultTransport],
|
|
148
73
|
});
|
|
149
74
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
enumerable: false,
|
|
155
|
-
configurable: true
|
|
156
|
-
});
|
|
157
|
-
ConduitLogger.prototype.addTransport = function (transport) {
|
|
75
|
+
get winston() {
|
|
76
|
+
return this._winston;
|
|
77
|
+
}
|
|
78
|
+
addTransport(transport) {
|
|
158
79
|
this._winston.add(transport);
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
if (level === void 0) { level = 'info'; }
|
|
80
|
+
}
|
|
81
|
+
log(message, level = 'info', cb) {
|
|
162
82
|
return this._winston.log(level, message, cb);
|
|
163
|
-
}
|
|
164
|
-
|
|
165
|
-
if (message === void 0) { message = ''; }
|
|
166
|
-
if (level === void 0) { level = 'info'; }
|
|
83
|
+
}
|
|
84
|
+
logObject(object, message = '', level = 'info', cb) {
|
|
167
85
|
return this._winston.log(level, message, object, cb);
|
|
168
|
-
}
|
|
169
|
-
|
|
86
|
+
}
|
|
87
|
+
info(message, cb) {
|
|
170
88
|
return this._winston.info(message, cb);
|
|
171
|
-
}
|
|
172
|
-
|
|
89
|
+
}
|
|
90
|
+
warn(message, cb) {
|
|
173
91
|
return this._winston.warn(message, cb);
|
|
174
|
-
}
|
|
175
|
-
|
|
92
|
+
}
|
|
93
|
+
error(message, cb) {
|
|
176
94
|
if (typeof message === 'object') {
|
|
177
95
|
return this._winston.error(message);
|
|
178
96
|
}
|
|
179
97
|
return this._winston.error(message, cb);
|
|
180
|
-
}
|
|
181
|
-
|
|
98
|
+
}
|
|
99
|
+
http(message, cb) {
|
|
182
100
|
return this._winston.http(message, cb);
|
|
183
|
-
}
|
|
184
|
-
|
|
101
|
+
}
|
|
102
|
+
verbose(message, cb) {
|
|
185
103
|
return this._winston.verbose(message, cb);
|
|
186
|
-
}
|
|
187
|
-
|
|
188
|
-
}());
|
|
104
|
+
}
|
|
105
|
+
}
|
|
189
106
|
exports.ConduitLogger = ConduitLogger;
|
|
190
|
-
function lokiReadyCheck(lokiUrl) {
|
|
191
|
-
return
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
}).on('error', function (err) {
|
|
204
|
-
reject(err.message);
|
|
205
|
-
});
|
|
206
|
-
})];
|
|
107
|
+
async function lokiReadyCheck(lokiUrl) {
|
|
108
|
+
return new Promise((resolve, reject) => {
|
|
109
|
+
const data = [];
|
|
110
|
+
(0, http_1.get)(`${lokiUrl}/ready`, r => {
|
|
111
|
+
r.on('data', chunk => data.push(chunk));
|
|
112
|
+
r.on('end', () => {
|
|
113
|
+
if (Buffer.concat(data).toString() === 'ready\n')
|
|
114
|
+
resolve();
|
|
115
|
+
else
|
|
116
|
+
reject(false);
|
|
117
|
+
});
|
|
118
|
+
}).on('error', err => {
|
|
119
|
+
reject(err.message);
|
|
207
120
|
});
|
|
208
121
|
});
|
|
209
122
|
}
|
|
210
|
-
function setupLoki(module, instance) {
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
});
|
|
241
|
-
}); };
|
|
242
|
-
onFailure = function () {
|
|
243
|
-
grpc_sdk_1.default.Logger.error("Failed to connect to Loki on '".concat(lokiUrl, "'"));
|
|
244
|
-
};
|
|
245
|
-
return [4 /*yield*/, (0, utilities_1.linearBackoffTimeoutAsync)(onTry, 250, 15, onFailure, true)];
|
|
246
|
-
case 1:
|
|
247
|
-
_a.sent();
|
|
248
|
-
_a.label = 2;
|
|
249
|
-
case 2: return [2 /*return*/];
|
|
250
|
-
}
|
|
251
|
-
});
|
|
252
|
-
});
|
|
123
|
+
async function setupLoki(module, instance) {
|
|
124
|
+
let lokiUrl = process.env.LOKI_URL;
|
|
125
|
+
if (lokiUrl && lokiUrl !== '') {
|
|
126
|
+
if (lokiUrl.endsWith('/'))
|
|
127
|
+
lokiUrl = lokiUrl.slice(0, -1);
|
|
128
|
+
const onTry = async () => {
|
|
129
|
+
return await lokiReadyCheck(lokiUrl)
|
|
130
|
+
.then(() => {
|
|
131
|
+
grpc_sdk_1.default.Logger.addTransport(new winston_loki_1.default({
|
|
132
|
+
level: 'debug',
|
|
133
|
+
host: lokiUrl,
|
|
134
|
+
batching: false,
|
|
135
|
+
replaceTimestamp: true,
|
|
136
|
+
labels: {
|
|
137
|
+
module,
|
|
138
|
+
instance,
|
|
139
|
+
...(process.env.CONDUIT_NAMESPACE && {
|
|
140
|
+
namespace: process.env.CONDUIT_NAMESPACE,
|
|
141
|
+
}),
|
|
142
|
+
},
|
|
143
|
+
}));
|
|
144
|
+
return false;
|
|
145
|
+
})
|
|
146
|
+
.catch(() => true); // retry
|
|
147
|
+
};
|
|
148
|
+
const onFailure = () => {
|
|
149
|
+
grpc_sdk_1.default.Logger.error(`Failed to connect to Loki on '${lokiUrl}'`);
|
|
150
|
+
};
|
|
151
|
+
await (0, utilities_1.linearBackoffTimeoutAsync)(onTry, 250, 15, onFailure, true);
|
|
152
|
+
}
|
|
253
153
|
}
|
|
254
154
|
exports.setupLoki = setupLoki;
|
|
255
155
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/logging/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
+
import { Express } from 'express';
|
|
1
2
|
import { Registry } from 'prom-client';
|
|
2
3
|
export declare class MetricsServer {
|
|
3
4
|
private readonly moduleName;
|
|
4
5
|
private readonly instance;
|
|
5
6
|
private readonly Registry;
|
|
6
7
|
constructor(moduleName: string, instance: string, registry: Registry);
|
|
7
|
-
initialize():
|
|
8
|
+
initialize(): Express;
|
|
8
9
|
getHttpPort(): number;
|
|
9
10
|
}
|
|
@@ -1,94 +1,49 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
13
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (_) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
39
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
40
4
|
};
|
|
41
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
42
6
|
exports.MetricsServer = void 0;
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
7
|
+
const express_1 = __importDefault(require("express"));
|
|
8
|
+
const lodash_1 = require("lodash");
|
|
9
|
+
const grpc_sdk_1 = __importDefault(require("@conduitplatform/grpc-sdk"));
|
|
10
|
+
class MetricsServer {
|
|
11
|
+
constructor(moduleName, instance, registry) {
|
|
48
12
|
this.moduleName = moduleName;
|
|
49
13
|
this.instance = instance;
|
|
50
14
|
this.Registry = registry;
|
|
51
15
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
grpc_sdk_1.default.Logger.info("Metrics server listening on: ".concat(url));
|
|
16
|
+
initialize() {
|
|
17
|
+
const server = (0, express_1.default)();
|
|
18
|
+
const port = this.getHttpPort();
|
|
19
|
+
const url = '0.0.0.0:' + port.toString();
|
|
20
|
+
server.listen(port, () => {
|
|
21
|
+
grpc_sdk_1.default.Logger.info(`Metrics server listening on: ${url}`);
|
|
59
22
|
});
|
|
60
|
-
server.get('/',
|
|
23
|
+
server.get('/', (req, res) => {
|
|
61
24
|
return res
|
|
62
25
|
.status(200)
|
|
63
|
-
.send(
|
|
26
|
+
.send(`Conduit Metrics for module: ${this.moduleName}, instance: ${this.instance}`);
|
|
27
|
+
});
|
|
28
|
+
server.get('/metrics', async (req, res) => {
|
|
29
|
+
const metrics = await this.Registry.metrics();
|
|
30
|
+
return res.status(200).send(metrics);
|
|
64
31
|
});
|
|
65
|
-
server.get('/metrics', function (req, res) { return __awaiter(_this, void 0, void 0, function () {
|
|
66
|
-
var metrics;
|
|
67
|
-
return __generator(this, function (_a) {
|
|
68
|
-
switch (_a.label) {
|
|
69
|
-
case 0: return [4 /*yield*/, this.Registry.metrics()];
|
|
70
|
-
case 1:
|
|
71
|
-
metrics = _a.sent();
|
|
72
|
-
return [2 /*return*/, res.status(200).send(metrics)];
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
}); });
|
|
76
32
|
return server;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
|
|
33
|
+
}
|
|
34
|
+
getHttpPort() {
|
|
35
|
+
const value = process.env['METRICS_PORT'];
|
|
80
36
|
if (!value) {
|
|
81
|
-
grpc_sdk_1.default.Logger.error(
|
|
37
|
+
grpc_sdk_1.default.Logger.error(`Metrics HTTP port not set`);
|
|
82
38
|
process.exit(-1);
|
|
83
39
|
}
|
|
84
|
-
|
|
40
|
+
const port = parseInt(value, 10);
|
|
85
41
|
if ((0, lodash_1.isNaN)(port) || port < 1 || port > 65535) {
|
|
86
|
-
grpc_sdk_1.default.Logger.error(
|
|
42
|
+
grpc_sdk_1.default.Logger.error(`Invalid HTTP port value: ${port}`);
|
|
87
43
|
process.exit(-1);
|
|
88
44
|
}
|
|
89
45
|
return port;
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
}());
|
|
46
|
+
}
|
|
47
|
+
}
|
|
93
48
|
exports.MetricsServer = MetricsServer;
|
|
94
49
|
//# sourceMappingURL=MetricsServer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MetricsServer.js","sourceRoot":"","sources":["../../src/metrics/MetricsServer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MetricsServer.js","sourceRoot":"","sources":["../../src/metrics/MetricsServer.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA2C;AAE3C,mCAA+B;AAC/B,yEAAuD;AAEvD,MAAa,aAAa;IAKxB,YAAY,UAAkB,EAAE,QAAgB,EAAE,QAAkB;QAClE,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,UAAU;QACR,MAAM,MAAM,GAAG,IAAA,iBAAO,GAAE,CAAC;QACzB,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QAChC,MAAM,GAAG,GAAG,UAAU,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE;YACvB,kBAAc,CAAC,MAAM,CAAC,IAAI,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;QACpE,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAoB,EAAE,GAAqB,EAAE,EAAE;YAC9D,OAAO,GAAG;iBACP,MAAM,CAAC,GAAG,CAAC;iBACX,IAAI,CACH,+BAA+B,IAAI,CAAC,UAAU,eAAe,IAAI,CAAC,QAAQ,EAAE,CAC7E,CAAC;QACN,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,KAAK,EAAE,GAAoB,EAAE,GAAqB,EAAE,EAAE;YAC3E,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YAC9C,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC,CAAC,CAAC;QACH,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,WAAW;QACT,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,EAAE;YACV,kBAAc,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;YACzD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QACjC,IAAI,IAAA,cAAK,EAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,EAAE;YAC3C,kBAAc,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,IAAI,EAAE,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;SAClB;QACD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA7CD,sCA6CC"}
|