@axinom/mosaic-service-common 0.46.0-rc.8 → 0.46.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/middleware/index.d.ts +1 -0
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +1 -0
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/liveness-readiness-middleware.d.ts.map +1 -1
- package/dist/middleware/liveness-readiness-middleware.js +2 -1
- package/dist/middleware/liveness-readiness-middleware.js.map +1 -1
- package/dist/middleware/maintenance-middleware.d.ts.map +1 -1
- package/dist/middleware/maintenance-middleware.js +2 -0
- package/dist/middleware/maintenance-middleware.js.map +1 -1
- package/dist/middleware/monitoring-middleware.d.ts.map +1 -1
- package/dist/middleware/monitoring-middleware.js +42 -2
- package/dist/middleware/monitoring-middleware.js.map +1 -1
- package/dist/middleware/mosaic-favicon.d.ts +4 -0
- package/dist/middleware/mosaic-favicon.d.ts.map +1 -0
- package/dist/middleware/mosaic-favicon.js +1408 -0
- package/dist/middleware/mosaic-favicon.js.map +1 -0
- package/package.json +5 -3
- package/src/middleware/index.ts +1 -0
- package/src/middleware/liveness-readiness-middleware.ts +2 -1
- package/src/middleware/maintenance-middleware.ts +2 -0
- package/src/middleware/monitoring-middleware.ts +45 -2
- package/src/middleware/mosaic-favicon.ts +1402 -0
|
@@ -3,6 +3,7 @@ export * from './http-server-with-websockets-middleware';
|
|
|
3
3
|
export * from './liveness-readiness-middleware';
|
|
4
4
|
export * from './maintenance-middleware';
|
|
5
5
|
export * from './monitoring-middleware';
|
|
6
|
+
export * from './mosaic-favicon';
|
|
6
7
|
export * from './service-health-check-middleware';
|
|
7
8
|
export * from './shutdown-actions-middleware';
|
|
8
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,cAAc,uCAAuC,CAAC;AACtD,cAAc,0CAA0C,CAAC;AACzD,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,yBAAyB,CAAC;AACxC,cAAc,kBAAkB,CAAC;AACjC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC"}
|
package/dist/middleware/index.js
CHANGED
|
@@ -19,6 +19,7 @@ __exportStar(require("./http-server-with-websockets-middleware"), exports);
|
|
|
19
19
|
__exportStar(require("./liveness-readiness-middleware"), exports);
|
|
20
20
|
__exportStar(require("./maintenance-middleware"), exports);
|
|
21
21
|
__exportStar(require("./monitoring-middleware"), exports);
|
|
22
|
+
__exportStar(require("./mosaic-favicon"), exports);
|
|
22
23
|
__exportStar(require("./service-health-check-middleware"), exports);
|
|
23
24
|
__exportStar(require("./shutdown-actions-middleware"), exports);
|
|
24
25
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD;AACtD,2EAAyD;AACzD,kEAAgD;AAChD,2DAAyC;AACzC,0DAAwC;AACxC,oEAAkD;AAClD,gEAA8C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wEAAsD;AACtD,2EAAyD;AACzD,kEAAgD;AAChD,2DAAyC;AACzC,0DAAwC;AACxC,mDAAiC;AACjC,oEAAkD;AAClD,gEAA8C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveness-readiness-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/liveness-readiness-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAe,MAAM,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"liveness-readiness-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/liveness-readiness-middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAe,MAAM,EAAE,MAAM,WAAW,CAAC;AAG7D,cAAM,KAAK,CAAC,CAAC;IACC,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,CAAC;IAErB,QAAQ,IAAI,CAAC;IAIb,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI;CAGhC;AAED;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC;;OAEG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B;;OAEG;IACH,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,yBAAyB,WAC5B,WAAW,6BACO,yBAAyB,WAC1C,MAAM,KACd;IACD,QAAQ,EAAE,MAAM,OAAO,CAAC,CAAC;IACzB,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC;CA0F3B,CAAC"}
|
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.setupLivenessAndReadiness = void 0;
|
|
7
7
|
const express_1 = __importDefault(require("express"));
|
|
8
8
|
const common_1 = require("../common");
|
|
9
|
+
const mosaic_favicon_1 = require("./mosaic-favicon");
|
|
9
10
|
class State {
|
|
10
11
|
constructor(state) {
|
|
11
12
|
this.state = state;
|
|
@@ -48,7 +49,7 @@ class State {
|
|
|
48
49
|
const setupLivenessAndReadiness = (config, livenessReadinessOptions = {}, logger) => {
|
|
49
50
|
const localLogger = logger !== null && logger !== void 0 ? logger : new common_1.Logger({ context: exports.setupLivenessAndReadiness.name });
|
|
50
51
|
const options = Object.assign({ enableLivenessEndpoint: true, livenessPath: '/live', defaultLiveness: true, enableReadinessEndpoint: true, readinessPath: '/ready', defaultReadiness: false }, livenessReadinessOptions);
|
|
51
|
-
const app = (0, express_1.default)();
|
|
52
|
+
const app = (0, express_1.default)().use(mosaic_favicon_1.mosaicFavicon);
|
|
52
53
|
// Configure liveness probe endpoint
|
|
53
54
|
const livenessData = new State(options.defaultLiveness);
|
|
54
55
|
if (options.enableLivenessEndpoint) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"liveness-readiness-middleware.js","sourceRoot":"","sources":["../../src/middleware/liveness-readiness-middleware.ts"],"names":[],"mappings":";;;;;;AAAA,sDAA8B;AAE9B,sCAA6D;
|
|
1
|
+
{"version":3,"file":"liveness-readiness-middleware.js","sourceRoot":"","sources":["../../src/middleware/liveness-readiness-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/maintenance-middleware.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKlD,OAAO,EACL,WAAW,EACX,sBAAsB,EAIvB,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"maintenance-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/maintenance-middleware.ts"],"names":[],"mappings":"AAAA,OAAgB,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKlD,OAAO,EACL,WAAW,EACX,sBAAsB,EAIvB,MAAM,WAAW,CAAC;AAGnB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,wBAAwB,WAC3B,WAAW,GAAG,sBAAsB,iCACb,cAAc,EAAE,KAC9C,IA+BF,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,qCAAqC,WACvC,WAAW,KAAG,cAoHtB,CAAC"}
|
|
@@ -9,6 +9,7 @@ const express_basic_auth_1 = __importDefault(require("express-basic-auth"));
|
|
|
9
9
|
const fs_1 = __importDefault(require("fs"));
|
|
10
10
|
const v8_1 = __importDefault(require("v8"));
|
|
11
11
|
const common_1 = require("../common");
|
|
12
|
+
const mosaic_favicon_1 = require("./mosaic-favicon");
|
|
12
13
|
/**
|
|
13
14
|
* Setup a maintenance endpoint for the service. The endpoint will be setup with a default middleware which offers basic commands
|
|
14
15
|
* for troubleshooting the service (see {@link basicMaintenanceRequestHandlerFactory}). The endpoint can be extended with more middleware as required by the service.
|
|
@@ -27,6 +28,7 @@ const setupMaintenanceEndpoint = (config, ...maintenanceRequestHandlers) => {
|
|
|
27
28
|
const logger = new common_1.Logger({ context: exports.setupMaintenanceEndpoint.name });
|
|
28
29
|
const maintenanceApp = (0, express_1.default)();
|
|
29
30
|
maintenanceApp.set('json spaces', 2);
|
|
31
|
+
maintenanceApp.use(mosaic_favicon_1.mosaicFavicon);
|
|
30
32
|
maintenanceApp.use((0, express_basic_auth_1.default)({
|
|
31
33
|
users: {
|
|
32
34
|
[config.maintenanceEndpointUserName]: config.maintenanceEndpointPassword,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"maintenance-middleware.js","sourceRoot":"","sources":["../../src/middleware/maintenance-middleware.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAkD;AAClD,4EAA2C;AAC3C,4CAAoB;AAEpB,4CAAoB;AACpB,sCAMmB;
|
|
1
|
+
{"version":3,"file":"maintenance-middleware.js","sourceRoot":"","sources":["../../src/middleware/maintenance-middleware.ts"],"names":[],"mappings":";;;;;;AAAA,sDAAkD;AAClD,4EAA2C;AAC3C,4CAAoB;AAEpB,4CAAoB;AACpB,sCAMmB;AACnB,qDAAiD;AAEjD;;;;;;;;;;;;GAYG;AACI,MAAM,wBAAwB,GAAG,CACtC,MAA4C,EAC5C,GAAG,0BAA4C,EACzC,EAAE;;IACR,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC,EAAE,OAAO,EAAE,gCAAwB,CAAC,IAAI,EAAE,CAAC,CAAC;IAE9E,MAAM,cAAc,GAAG,IAAA,iBAAO,GAAE,CAAC;IACjC,cAAc,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IACrC,cAAc,CAAC,GAAG,CAAC,8BAAa,CAAC,CAAC;IAElC,cAAc,CAAC,GAAG,CAChB,IAAA,4BAAS,EAAC;QACR,KAAK,EAAE;YACL,CAAC,MAAM,CAAC,2BAA2B,CAAC,EAClC,MAAM,CAAC,2BAA2B;SACrC;QACD,SAAS,EAAE,IAAI;KAChB,CAAC,EACF,0BAA0B,CAAC,MAAM,KAAK,CAAC;QACrC,CAAC,CAAC,IAAA,6CAAqC,EAAC,MAAM,CAAC;QAC/C,CAAC,CAAC,0BAA0B,CAC/B,CAAC;IAEF,MAAM,MAAM,GAAG,cAAc,CAAC,MAAM,CAClC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAA,MAAM,CAAC,uBAAuB,mCAAI,IAAI,EACzD,GAAG,EAAE;QACH,MAAM,IAAI,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAC;QAEpD,MAAM,CAAC,KAAK,CAAC;YACX,OAAO,EAAE,yBAAyB;YAClC,OAAO,EAAE,EAAE,GAAG,EAAE,oBAAoB,IAAI,EAAE,EAAE;SAC7C,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC,CAAC;AAlCW,QAAA,wBAAwB,4BAkCnC;AAEF;;;;;;;;;;;GAWG;AACI,MAAM,qCAAqC,GAChD,CAAC,MAAmB,EAAkB,EAAE,CACxC,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE;IACvB,MAAM,MAAM,GAAW,IAAI,eAAM,CAAC;QAChC,OAAO,EAAE,6CAAqC,CAAC,IAAI;KACpD,CAAC,CAAC;IAEH,IAAI;QACF,QAAQ,GAAG,CAAC,IAAI,EAAE;YAChB,KAAK,GAAG,CAAC,CAAC;gBACR,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;;;;;;;;;;WAUjB,CAAC,CAAC;gBAEH,MAAM;aACP;YAED,KAAK,MAAM,CAAC,CAAC;gBACX,GAAG,CAAC,IAAI,mBACH,OAAO,CAAC,GAAG,EACd,CAAC;gBAEH,MAAM;aACP;YAED,KAAK,SAAS,CAAC,CAAC;gBACd,GAAG,CAAC,IAAI,mBACH,MAAM,EACT,CAAC;gBAEH,MAAM;aACP;YAED,KAAK,oBAAoB,CAAC,CAAC;gBACzB,GAAG,CAAC,IAAI,mBACH,YAAE,CAAC,iBAAiB,EAAE,EACzB,CAAC;gBAEH,MAAM;aACP;YAED,KAAK,kBAAkB,CAAC,CAAC;gBACvB,MAAM,oBAAoB,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE,IAC3C,MAAM,CAAC,SACT,IAAI,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC;gBAE9B,GAAG,CAAC,UAAU,CAAC,oBAAoB,CAAC,CAAC;gBACrC,YAAE,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAE/B,MAAM;aACP;YAED,KAAK,YAAY,CAAC,CAAC;gBACjB,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAW,CAAC;gBAEvC,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBACtC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;gBAEzB,MAAM,YAAY,GAAG;oBACnB,CAAC,GAAG,CAAC,EAAE;wBACL,YAAY,EAAE,YAAY;wBAC1B,QAAQ,EAAE,KAAK;qBAChB;iBACF,CAAC;gBAEF,MAAM,CAAC,GAAG,CAAC;oBACT,OAAO,EAAE,gCAAgC;oBACzC,OAAO,kBAAI,WAAW,EAAX,oBAAW,IAAK,YAAY,CAAE;iBAC1C,CAAC,CAAC;gBAEH,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;gBAEvB,MAAM;aACP;YAED,KAAK,UAAU,CAAC,CAAC;gBACf,IAAI;oBACF,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAC5B,MAAM,YAAE,CAAC,QAAQ,CAAC,QAAQ,CACxB,GAAG,OAAO,CAAC,GAAG,EAAE,eAAe,EAC/B,MAAM,CACP,CACF,CAAC;oBACF,GAAG,CAAC,IAAI,CAAC;wBACP,IAAI,EAAE,WAAW,CAAC,IAAI;wBACtB,OAAO,EAAE,WAAW,CAAC,OAAO;wBAC5B,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE;qBACnB,CAAC,CAAC;iBACJ;gBAAC,OAAO,KAAK,EAAE;oBACd,GAAG,CAAC,IAAI,CAAC;wBACP,aAAa,EAAE,iCAAiC,OAAO,CAAC,GAAG,EAAE,EAAE;qBAChE,CAAC,CAAC;iBACJ;gBACD,MAAM;aACP;YAED,OAAO,CAAC,CAAC;gBACP,IAAI,EAAE,CAAC;aACR;SACF;KACF;IAAC,OAAO,CAAC,EAAE;QACV,MAAM,KAAK,GAAG,IAAA,oBAAW,EAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE;YACpB,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC7B;QAED,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KACrB;AACH,CAAC,CAAC;AArHS,QAAA,qCAAqC,yCAqH9C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/monitoring-middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,MAAM,EACP,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"monitoring-middleware.d.ts","sourceRoot":"","sources":["../../src/middleware/monitoring-middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,MAAM,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtE,OAAO,EACL,WAAW,EACX,kBAAkB,EAElB,MAAM,EACP,MAAM,WAAW,CAAC;AAInB;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,cAAc,CAAC,EAAE,QAAQ,CAAC;IAC1B;;OAEG;IACH,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,WAClB,WAAW,GAAG,kBAAkB,sBACrB,kBAAkB,WAC5B,MAAM,KACd,QA+FF,CAAC"}
|
|
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.setupMonitoring = void 0;
|
|
4
4
|
const prom_client_1 = require("prom-client");
|
|
5
5
|
const common_1 = require("../common");
|
|
6
|
+
const mosaic_favicon_1 = require("./mosaic-favicon");
|
|
6
7
|
const express = require("express");
|
|
7
8
|
/**
|
|
8
9
|
* Setup a prometheus metric monitoring endpoint using an express application.
|
|
@@ -17,13 +18,52 @@ const express = require("express");
|
|
|
17
18
|
const setupMonitoring = (config, monitoringOptions = {}, logger) => {
|
|
18
19
|
const localLogger = logger !== null && logger !== void 0 ? logger : new common_1.Logger({ context: exports.setupMonitoring.name });
|
|
19
20
|
const options = Object.assign({ metricsPath: '/metrics', metricRegistry: new prom_client_1.Registry(), collectDefaultMetrics: true, metrics: [] }, monitoringOptions);
|
|
20
|
-
const app = express();
|
|
21
|
+
const app = express().use(mosaic_favicon_1.mosaicFavicon);
|
|
21
22
|
options.metricRegistry.setDefaultLabels({
|
|
22
23
|
serviceId: config.serviceId,
|
|
23
24
|
environment: config.environment,
|
|
24
25
|
});
|
|
25
26
|
for (const metric of options.metrics) {
|
|
26
|
-
|
|
27
|
+
/**
|
|
28
|
+
* We wrap the collection of each metric in a try-catch block to ensure that any errors caused
|
|
29
|
+
* during the collection will not make the entire metrics endpoint unusable.
|
|
30
|
+
*
|
|
31
|
+
* Also now each metric's errors will be granularly logged instead of stoping the evaluation of
|
|
32
|
+
* other metrics when one metric collection fails.
|
|
33
|
+
*/
|
|
34
|
+
const safeMetric = new Proxy(metric, {
|
|
35
|
+
get(target, prop, receiver) {
|
|
36
|
+
if (prop === 'get') {
|
|
37
|
+
return async () => {
|
|
38
|
+
var _a, _b;
|
|
39
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
40
|
+
const typelessTarget = target;
|
|
41
|
+
try {
|
|
42
|
+
return await typelessTarget[prop]();
|
|
43
|
+
}
|
|
44
|
+
catch (error) {
|
|
45
|
+
const originalMetricData = {
|
|
46
|
+
name: (_a = typelessTarget === null || typelessTarget === void 0 ? void 0 : typelessTarget.name) !== null && _a !== void 0 ? _a : 'unknown_metric_name',
|
|
47
|
+
help: (_b = typelessTarget === null || typelessTarget === void 0 ? void 0 : typelessTarget.help) !== null && _b !== void 0 ? _b : 'unknown_metric_help',
|
|
48
|
+
};
|
|
49
|
+
localLogger.error(error, {
|
|
50
|
+
message: `METRIC_COLLECTION_ERROR`,
|
|
51
|
+
details: Object.assign({}, originalMetricData),
|
|
52
|
+
});
|
|
53
|
+
/**
|
|
54
|
+
* We return only the mandatory values (name, help) of any metric as we cannot
|
|
55
|
+
* assume a reasonable value for various metric types for erroneous situations.
|
|
56
|
+
*/
|
|
57
|
+
return originalMetricData;
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
return Reflect.get(target, prop, receiver);
|
|
63
|
+
}
|
|
64
|
+
},
|
|
65
|
+
});
|
|
66
|
+
options.metricRegistry.registerMetric(safeMetric);
|
|
27
67
|
}
|
|
28
68
|
if (options.collectDefaultMetrics) {
|
|
29
69
|
(0, prom_client_1.collectDefaultMetrics)({ register: options.metricRegistry });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring-middleware.js","sourceRoot":"","sources":["../../src/middleware/monitoring-middleware.ts"],"names":[],"mappings":";;;AACA,6CAAsE;AACtE,sCAKmB;AACnB,mCAAoC;AAwBpC;;;;;;;;;GASG;AACI,MAAM,eAAe,GAAG,CAC7B,MAAwC,EACxC,oBAAwC,EAAE,EAC1C,MAAe,EACL,EAAE;IACZ,MAAM,WAAW,GAAG,MAAM,aAAN,MAAM,cAAN,MAAM,GAAI,IAAI,eAAM,CAAC,EAAE,OAAO,EAAE,uBAAe,CAAC,IAAI,EAAE,CAAC,CAAC;IAC5E,MAAM,OAAO,mBACX,WAAW,EAAE,UAAU,EACvB,cAAc,EAAE,IAAI,sBAAQ,EAAE,EAC9B,qBAAqB,EAAE,IAAI,EAC3B,OAAO,EAAE,EAAE,IACR,iBAAiB,CACrB,CAAC;IAEF,MAAM,GAAG,GAAG,OAAO,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"monitoring-middleware.js","sourceRoot":"","sources":["../../src/middleware/monitoring-middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
/// <reference types="qs" />
|
|
2
|
+
/// <reference types="express" />
|
|
3
|
+
export declare const mosaicFavicon: import("express").RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
|
|
4
|
+
//# sourceMappingURL=mosaic-favicon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mosaic-favicon.d.ts","sourceRoot":"","sources":["../../src/middleware/mosaic-favicon.ts"],"names":[],"mappings":";;AAy3CA,eAAO,MAAM,aAAa,8IAAyB,CAAC"}
|