@icd-iot-aicf/nestjs-logger 0.0.28 → 0.0.29
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/common/helper/response.d.ts +1 -0
- package/dist/common/helper/response.js +6 -0
- package/dist/common/helper/response.js.map +1 -1
- package/dist/common/helper/tools.js +14 -6
- package/dist/common/helper/tools.js.map +1 -1
- package/dist/common/helper/tools.service.d.ts +10 -0
- package/dist/common/helper/tools.service.js +152 -0
- package/dist/common/helper/tools.service.js.map +1 -0
- package/dist/common/internal-logs-info.module.js +4 -2
- package/dist/common/internal-logs-info.module.js.map +1 -1
- package/dist/common/service/logger-debug/logger-debug-lib.service.d.ts +6 -0
- package/dist/common/service/logger-debug/logger-debug-lib.service.js +35 -0
- package/dist/common/service/logger-debug/logger-debug-lib.service.js.map +1 -0
- package/dist/config/app-log-config.service.js +2 -0
- package/dist/config/app-log-config.service.js.map +1 -1
- package/dist/config/configurations.d.ts +5 -0
- package/dist/config/configurations.js +6 -1
- package/dist/config/configurations.js.map +1 -1
- package/dist/logger/aicf/middleware/aicf.middleware.d.ts +3 -1
- package/dist/logger/aicf/middleware/aicf.middleware.js +8 -3
- package/dist/logger/aicf/middleware/aicf.middleware.js.map +1 -1
- package/dist/logger/cloudron/dtos/cauldron.dto.d.ts +4 -1
- package/dist/logger/cloudron/dtos/cauldron.dto.js +4 -6
- package/dist/logger/cloudron/dtos/cauldron.dto.js.map +1 -1
- package/dist/logger/cloudron/middleware/cloudron.middleware.d.ts +6 -2
- package/dist/logger/cloudron/middleware/cloudron.middleware.js +28 -14
- package/dist/logger/cloudron/middleware/cloudron.middleware.js.map +1 -1
- package/dist/logger/cloudron/services/cloudron-summary-logs.service.js +1 -1
- package/dist/logger/cloudron/services/cloudron-summary-logs.service.js.map +1 -1
- package/dist/logger/core/interceptors/http.interceptor.js +3 -1
- package/dist/logger/core/interceptors/http.interceptor.js.map +1 -1
- package/dist/logger/core/middleware/http-logs-middleware.service.d.ts +5 -1
- package/dist/logger/core/middleware/http-logs-middleware.service.js +10 -4
- package/dist/logger/core/middleware/http-logs-middleware.service.js.map +1 -1
- package/dist/logger/logger.module.js.map +1 -1
- package/dist/metrics/metrics.middleware.d.ts +3 -1
- package/dist/metrics/metrics.middleware.js +6 -4
- package/dist/metrics/metrics.middleware.js.map +1 -1
- package/dist/metrics/metrics.module.js +2 -0
- package/dist/metrics/metrics.module.js.map +1 -1
- package/dist/metrics/metrics.service.js +1 -0
- package/dist/metrics/metrics.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -22,10 +22,14 @@ const microtime_1 = __importDefault(require("microtime"));
|
|
|
22
22
|
const global_function_1 = require("../../core/functions/global-function");
|
|
23
23
|
const aicf_dto_1 = require("../../aicf/dtos/aicf.dto");
|
|
24
24
|
const summaryEndpoint_info_1 = require("../../../common/async-storage/summaryEndpoint-info");
|
|
25
|
+
const tools_service_1 = require("../../../common/helper/tools.service");
|
|
26
|
+
const logger_debug_lib_service_1 = require("../../../common/service/logger-debug/logger-debug-lib.service");
|
|
25
27
|
let CloudronMiddleware = class CloudronMiddleware {
|
|
26
|
-
constructor(logger, externalSummaryService) {
|
|
28
|
+
constructor(logger, externalSummaryService, toolsService, loggerDebug) {
|
|
27
29
|
this.logger = logger;
|
|
28
30
|
this.externalSummaryService = externalSummaryService;
|
|
31
|
+
this.toolsService = toolsService;
|
|
32
|
+
this.loggerDebug = loggerDebug;
|
|
29
33
|
}
|
|
30
34
|
use(req, res, next) {
|
|
31
35
|
const startTime = microtime_1.default.now();
|
|
@@ -34,28 +38,36 @@ let CloudronMiddleware = class CloudronMiddleware {
|
|
|
34
38
|
const chunks = [];
|
|
35
39
|
const originalWrite = res.write;
|
|
36
40
|
const originalEnd = res.end;
|
|
41
|
+
let buffer;
|
|
37
42
|
res.write = (...args) => {
|
|
43
|
+
this.loggerDebug.debug(`res.write args: `, args);
|
|
38
44
|
chunks.push(Buffer.from(args[0]));
|
|
45
|
+
this.loggerDebug.debug(`res.write chunks: `, chunks);
|
|
39
46
|
return originalWrite.apply(res, args);
|
|
40
47
|
};
|
|
41
48
|
res.end = (...args) => {
|
|
49
|
+
this.loggerDebug.debug(`res.end: `, args);
|
|
42
50
|
if (args[0]) {
|
|
43
51
|
chunks.push(Buffer.from(args[0]));
|
|
44
52
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
const activityData = {
|
|
49
|
-
startTime,
|
|
50
|
-
endTime,
|
|
51
|
-
};
|
|
52
|
-
const summary = new cauldron_dto_1.CSummaryLog(req, buffer, activityData, res.statusCode);
|
|
53
|
-
summary.custom = this.externalSummaryService.getCustomSummaryCloudron();
|
|
54
|
-
this.logger.log(summary);
|
|
55
|
-
this.logger.log(new cauldron_dto_1.CDetailLog(req, buffer, activityData));
|
|
56
|
-
});
|
|
53
|
+
this.loggerDebug.debug(`chunks: `, chunks);
|
|
54
|
+
buffer = Buffer.concat(chunks).toString('utf8');
|
|
55
|
+
this.loggerDebug.debug(`buffer: `, buffer);
|
|
57
56
|
return originalEnd.apply(res, args);
|
|
58
57
|
};
|
|
58
|
+
res.on('finish', () => {
|
|
59
|
+
this.loggerDebug.debug(`res.finish: `, res.statusCode);
|
|
60
|
+
const endTime = microtime_1.default.now();
|
|
61
|
+
const activityData = {
|
|
62
|
+
startTime,
|
|
63
|
+
endTime,
|
|
64
|
+
};
|
|
65
|
+
const resultFormat = this.toolsService.mapResultCode(buffer, res.statusCode);
|
|
66
|
+
const summary = new cauldron_dto_1.CSummaryLog(req, resultFormat, activityData);
|
|
67
|
+
summary.custom = this.externalSummaryService.getCustomSummaryCloudron();
|
|
68
|
+
this.logger.log(summary);
|
|
69
|
+
this.logger.log(new cauldron_dto_1.CDetailLog(req, buffer, activityData));
|
|
70
|
+
});
|
|
59
71
|
(0, global_function_1.SetTransactionReference)({
|
|
60
72
|
transactionId: req.headers['x-ais-orderref'],
|
|
61
73
|
sessionId: sessionId,
|
|
@@ -71,6 +83,8 @@ exports.CloudronMiddleware = CloudronMiddleware;
|
|
|
71
83
|
exports.CloudronMiddleware = CloudronMiddleware = __decorate([
|
|
72
84
|
(0, common_1.Injectable)(),
|
|
73
85
|
__metadata("design:paramtypes", [logger_service_1.CustomLoggerService,
|
|
74
|
-
cloudron_summary_logs_service_1.CloudronSummaryLogsService
|
|
86
|
+
cloudron_summary_logs_service_1.CloudronSummaryLogsService,
|
|
87
|
+
tools_service_1.ToolsService,
|
|
88
|
+
logger_debug_lib_service_1.LoggerDebugLibService])
|
|
75
89
|
], CloudronMiddleware);
|
|
76
90
|
//# sourceMappingURL=cloudron.middleware.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudron.middleware.js","sourceRoot":"","sources":["../../../../src/logger/cloudron/middleware/cloudron.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAA4D;AAC5D,yDAA2D;AAC3D,6FAAuF;AAEvF,gDAAmD;AACnD,uDAA6E;AAC7E,0DAAkC;AAClC,0EAA+E;AAC/E,uDAAuD;AACvD,6FAAsF;AAG/
|
|
1
|
+
{"version":3,"file":"cloudron.middleware.js","sourceRoot":"","sources":["../../../../src/logger/cloudron/middleware/cloudron.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,7 +15,7 @@ const summaryEndpoint_info_1 = require("../../../common/async-storage/summaryEnd
|
|
|
15
15
|
let CloudronSummaryLogsService = class CloudronSummaryLogsService {
|
|
16
16
|
constructor() { }
|
|
17
17
|
getCustomSummaryCloudron() {
|
|
18
|
-
const currentSummary = summaryEndpoint_info_1.summaryInfoLocal.getStore();
|
|
18
|
+
const currentSummary = summaryEndpoint_info_1.summaryInfoLocal.getStore() || [];
|
|
19
19
|
if (currentSummary.length) {
|
|
20
20
|
return {
|
|
21
21
|
endPointSummary: currentSummary.map((edrDetail, index) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cloudron-summary-logs.service.js","sourceRoot":"","sources":["../../../../src/logger/cloudron/services/cloudron-summary-logs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,6FAG4D;AAGrD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,gBAAe,CAAC;IAChB,wBAAwB;QACtB,MAAM,cAAc,GAAqB,uCAAgB,CAAC,QAAQ,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"cloudron-summary-logs.service.js","sourceRoot":"","sources":["../../../../src/logger/cloudron/services/cloudron-summary-logs.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAE5C,6FAG4D;AAGrD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,gBAAe,CAAC;IAChB,wBAAwB;QACtB,MAAM,cAAc,GAAqB,uCAAgB,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;QAC3E,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO;gBACL,eAAe,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;oBACvD,OAAO;wBACL,EAAE,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE;wBAC1B,YAAY,EAAE,SAAS,CAAC,YAAY;wBACpC,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,WAAW,EAAE,SAAS,CAAC,WAAW;wBAClC,cAAc,EAAE,SAAS,CAAC,cAAc;qBACzC,CAAC;gBACJ,CAAC,CAAC;aACH,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,mBAAmB,CAAC,SAAiB,EAAE,SAAyB;QAE9D,IAAA,sCAAe,EAAC,SAAS,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AAxBY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,mBAAU,GAAE;;GACA,0BAA0B,CAwBtC"}
|
|
@@ -17,7 +17,9 @@ let HttpInterceptor = class HttpInterceptor {
|
|
|
17
17
|
transactionId: headers['x-ais-orderref'],
|
|
18
18
|
originSession: headers['x-origin-session'],
|
|
19
19
|
}, () => {
|
|
20
|
-
return next.handle()
|
|
20
|
+
return next.handle().pipe((response) => {
|
|
21
|
+
return response;
|
|
22
|
+
});
|
|
21
23
|
});
|
|
22
24
|
}
|
|
23
25
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.interceptor.js","sourceRoot":"","sources":["../../../../src/logger/core/interceptors/http.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAKwB;AAExB,kEAAuE;AAGhE,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,OAAO,IAAA,yCAAuB,EAC5B;YACE,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAAC;YACxC,aAAa,EAAE,OAAO,CAAC,kBAAkB,CAAC;SAC3C,EACD,GAAG,EAAE;YACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"http.interceptor.js","sourceRoot":"","sources":["../../../../src/logger/core/interceptors/http.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAKwB;AAExB,kEAAuE;AAGhE,IAAM,eAAe,GAArB,MAAM,eAAe;IAC1B,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAEhC,OAAO,IAAA,yCAAuB,EAC5B;YACE,aAAa,EAAE,OAAO,CAAC,gBAAgB,CAAC;YACxC,aAAa,EAAE,OAAO,CAAC,kBAAkB,CAAC;SAC3C,EACD,GAAG,EAAE;YACH,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACrC,OAAO,QAAQ,CAAC;YAClB,CAAC,CAAC,CAAC;QACL,CAAC,CACF,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,0CAAe;0BAAf,eAAe;IAD3B,IAAA,mBAAU,GAAE;GACA,eAAe,CAiB3B"}
|
|
@@ -4,12 +4,16 @@ import { ContextService } from '../../../common/service/common/context.service';
|
|
|
4
4
|
import { FORMAT_TYPE } from '../../../config/configurations';
|
|
5
5
|
import { Request, Response } from 'express';
|
|
6
6
|
import { CloudronSummaryLogsService } from '../../cloudron/services/cloudron-summary-logs.service';
|
|
7
|
+
import { ToolsService } from '../../../common/helper/tools.service';
|
|
8
|
+
import { LoggerDebugLibService } from '../../../common/service/logger-debug/logger-debug-lib.service';
|
|
7
9
|
export declare class HTTPLogsMiddleware implements NestMiddleware {
|
|
8
10
|
private readonly logger;
|
|
9
11
|
private readonly contextService;
|
|
10
12
|
private readonly externalSummaryService;
|
|
13
|
+
private readonly toolsService;
|
|
14
|
+
private readonly loggerDebug;
|
|
11
15
|
coreMiddleware: NestMiddleware;
|
|
12
16
|
format: FORMAT_TYPE;
|
|
13
|
-
constructor(logger: CustomLoggerService, contextService: ContextService, externalSummaryService: CloudronSummaryLogsService);
|
|
17
|
+
constructor(logger: CustomLoggerService, contextService: ContextService, externalSummaryService: CloudronSummaryLogsService, toolsService: ToolsService, loggerDebug: LoggerDebugLibService);
|
|
14
18
|
use(req: Request, res: Response, next: () => void): void;
|
|
15
19
|
}
|
|
@@ -19,18 +19,22 @@ const aicf_middleware_1 = require("../../aicf/middleware/aicf.middleware");
|
|
|
19
19
|
const cloudron_middleware_1 = require("../../cloudron/middleware/cloudron.middleware");
|
|
20
20
|
const cloudron_summary_logs_service_1 = require("../../cloudron/services/cloudron-summary-logs.service");
|
|
21
21
|
const esb_middleware_1 = require("../../esb/middleware/esb.middleware");
|
|
22
|
+
const tools_service_1 = require("../../../common/helper/tools.service");
|
|
23
|
+
const logger_debug_lib_service_1 = require("../../../common/service/logger-debug/logger-debug-lib.service");
|
|
22
24
|
let HTTPLogsMiddleware = class HTTPLogsMiddleware {
|
|
23
|
-
constructor(logger, contextService, externalSummaryService) {
|
|
25
|
+
constructor(logger, contextService, externalSummaryService, toolsService, loggerDebug) {
|
|
24
26
|
this.logger = logger;
|
|
25
27
|
this.contextService = contextService;
|
|
26
28
|
this.externalSummaryService = externalSummaryService;
|
|
29
|
+
this.toolsService = toolsService;
|
|
30
|
+
this.loggerDebug = loggerDebug;
|
|
27
31
|
this.format = app_log_config_service_1.AppLogConfigService.getConfig().format;
|
|
28
32
|
switch (this.format) {
|
|
29
33
|
case configurations_1.FORMAT_TYPE.AICF:
|
|
30
|
-
this.coreMiddleware = new aicf_middleware_1.AicfMiddleware(this.logger);
|
|
34
|
+
this.coreMiddleware = new aicf_middleware_1.AicfMiddleware(this.logger, this.loggerDebug);
|
|
31
35
|
break;
|
|
32
36
|
case configurations_1.FORMAT_TYPE.CLOUDRON:
|
|
33
|
-
this.coreMiddleware = new cloudron_middleware_1.CloudronMiddleware(this.logger, this.externalSummaryService);
|
|
37
|
+
this.coreMiddleware = new cloudron_middleware_1.CloudronMiddleware(this.logger, this.externalSummaryService, this.toolsService, this.loggerDebug);
|
|
34
38
|
break;
|
|
35
39
|
case configurations_1.FORMAT_TYPE.ESB:
|
|
36
40
|
this.coreMiddleware = new esb_middleware_1.EsbMiddleware(this.logger, this.contextService);
|
|
@@ -50,6 +54,8 @@ exports.HTTPLogsMiddleware = HTTPLogsMiddleware = __decorate([
|
|
|
50
54
|
(0, common_1.Injectable)(),
|
|
51
55
|
__metadata("design:paramtypes", [logger_service_1.CustomLoggerService,
|
|
52
56
|
context_service_1.ContextService,
|
|
53
|
-
cloudron_summary_logs_service_1.CloudronSummaryLogsService
|
|
57
|
+
cloudron_summary_logs_service_1.CloudronSummaryLogsService,
|
|
58
|
+
tools_service_1.ToolsService,
|
|
59
|
+
logger_debug_lib_service_1.LoggerDebugLibService])
|
|
54
60
|
], HTTPLogsMiddleware);
|
|
55
61
|
//# sourceMappingURL=http-logs-middleware.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-logs-middleware.service.js","sourceRoot":"","sources":["../../../../src/logger/core/middleware/http-logs-middleware.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAC5D,yDAA2D;AAC3D,oFAAgF;AAChF,mFAA6E;AAC7E,mEAA6D;AAE7D,2EAAuE;AACvE,uFAAmF;AACnF,yGAAmG;AACnG,wEAAoE;
|
|
1
|
+
{"version":3,"file":"http-logs-middleware.service.js","sourceRoot":"","sources":["../../../../src/logger/core/middleware/http-logs-middleware.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAC5D,yDAA2D;AAC3D,oFAAgF;AAChF,mFAA6E;AAC7E,mEAA6D;AAE7D,2EAAuE;AACvE,uFAAmF;AACnF,yGAAmG;AACnG,wEAAoE;AACpE,wEAAoE;AACpE,4GAAsG;AAG/F,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAG7B,YACmB,MAA2B,EAC3B,cAA8B,EAC9B,sBAAkD,EAClD,YAA0B,EAC1B,WAAkC;QAJlC,WAAM,GAAN,MAAM,CAAqB;QAC3B,mBAAc,GAAd,cAAc,CAAgB;QAC9B,2BAAsB,GAAtB,sBAAsB,CAA4B;QAClD,iBAAY,GAAZ,YAAY,CAAc;QAC1B,gBAAW,GAAX,WAAW,CAAuB;QAEnD,IAAI,CAAC,MAAM,GAAG,4CAAmB,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;QACrD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;YACpB,KAAK,4BAAW,CAAC,IAAI;gBACnB,IAAI,CAAC,cAAc,GAAG,IAAI,gCAAc,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;gBACxE,MAAM;YACR,KAAK,4BAAW,CAAC,QAAQ;gBACvB,IAAI,CAAC,cAAc,GAAG,IAAI,wCAAkB,CAC1C,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,sBAAsB,EAC3B,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,WAAW,CACjB,CAAC;gBACF,MAAM;YACR,KAAK,4BAAW,CAAC,GAAG;gBAClB,IAAI,CAAC,cAAc,GAAG,IAAI,8BAAa,CACrC,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,cAAc,CACpB,CAAC;gBACF,MAAM;YACR;gBACE,MAAM;QACV,CAAC;IACH,CAAC;IACD,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAgB;QAC/C,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;QAC1C,CAAC,EAAE,IAAI,GAAG,EAAe,CAAC,CAAC;IAC7B,CAAC;CACF,CAAA;AAtCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;qCAKgB,oCAAmB;QACX,gCAAc;QACN,0DAA0B;QACpC,4BAAY;QACb,gDAAqB;GAR1C,kBAAkB,CAsC9B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../../src/logger/logger.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAuD;AACvD,6CAAgD;AAChD,qGAA+F;AAC/F,qGAA+F;AAC/F,mFAA6E;AAC7E,qFAAgF;AAChF,uFAAmF;AACnF,wEAAoE;AACpE,wFAAkF;AAClF,2EAAuE;AACvE,iFAA4E;AAC5E,uEAAmE;AACnE,iGAAoF;
|
|
1
|
+
{"version":3,"file":"logger.module.js","sourceRoot":"","sources":["../../src/logger/logger.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAuD;AACvD,6CAAgD;AAChD,qGAA+F;AAC/F,qGAA+F;AAC/F,mFAA6E;AAC7E,qFAAgF;AAChF,uFAAmF;AACnF,wEAAoE;AACpE,wFAAkF;AAClF,2EAAuE;AACvE,iFAA4E;AAC5E,uEAAmE;AACnE,iGAAoF;AA+B7E,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IA7BxB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,YAAY,EAAE,kDAAsB,CAAC;QAC/C,SAAS,EAAE;YACT,oCAAmB;YACnB;gBACE,OAAO,EAAE,+BAAiB;gBAC1B,QAAQ,EAAE,IAAI,+BAAiB,EAAE;aAClC;YACD,0DAA0B;YAC1B,0DAA0B;YAC1B,2CAAmB;YACnB,0CAAmB;YACnB,gCAAc;YACd,kDAAsB;YACtB,0DAA0B;YAC1B,kCAAe;YACf,2CAAmB;YACnB,iDAAkB;YAClB,gCAAc;SACf;QACD,OAAO,EAAE;YACP,oCAAmB;YACnB,+BAAiB;YACjB,2CAAmB;YACnB,0DAA0B;YAC1B,kDAAsB;YACtB,iDAAkB;SACnB;KACF,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { NestMiddleware } from '@nestjs/common';
|
|
2
2
|
import { Request, Response, NextFunction } from 'express';
|
|
3
3
|
import { MetricsService } from './metrics.service';
|
|
4
|
+
import { ToolsService } from '../common/helper/tools.service';
|
|
4
5
|
export declare class HTTPMetricsMiddleware implements NestMiddleware {
|
|
5
6
|
private readonly metricsService;
|
|
6
|
-
|
|
7
|
+
private readonly toolsService;
|
|
8
|
+
constructor(metricsService: MetricsService, toolsService: ToolsService);
|
|
7
9
|
private activeRequests;
|
|
8
10
|
private maxConcurrentRequests;
|
|
9
11
|
getMaxConcurrentRequests(): number;
|
|
@@ -13,10 +13,11 @@ exports.AMQPMetricsMiddleware = exports.HTTPMetricsMiddleware = void 0;
|
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const metrics_service_1 = require("./metrics.service");
|
|
15
15
|
const tracnsaction_info_1 = require("../common/async-storage/tracnsaction-info");
|
|
16
|
-
const
|
|
16
|
+
const tools_service_1 = require("../common/helper/tools.service");
|
|
17
17
|
let HTTPMetricsMiddleware = class HTTPMetricsMiddleware {
|
|
18
|
-
constructor(metricsService) {
|
|
18
|
+
constructor(metricsService, toolsService) {
|
|
19
19
|
this.metricsService = metricsService;
|
|
20
|
+
this.toolsService = toolsService;
|
|
20
21
|
this.activeRequests = 0;
|
|
21
22
|
this.maxConcurrentRequests = 0;
|
|
22
23
|
}
|
|
@@ -47,7 +48,7 @@ let HTTPMetricsMiddleware = class HTTPMetricsMiddleware {
|
|
|
47
48
|
res.on('finish', () => {
|
|
48
49
|
this.activeRequests--;
|
|
49
50
|
const elapsedTimeSec = (new Date().getTime() - startTime) / 1000;
|
|
50
|
-
this.metricsService.incrementMetricsRequest(tracnsaction_info_1.transactionInfoLocalStorage.getStore().recordName, req.method,
|
|
51
|
+
this.metricsService.incrementMetricsRequest(tracnsaction_info_1.transactionInfoLocalStorage.getStore().recordName, req.method, this.toolsService.mapStatusCodeMetric(res.statusCode, responseBody), elapsedTimeSec, this.maxConcurrentRequests, this.activeRequests);
|
|
51
52
|
});
|
|
52
53
|
next();
|
|
53
54
|
}
|
|
@@ -55,7 +56,8 @@ let HTTPMetricsMiddleware = class HTTPMetricsMiddleware {
|
|
|
55
56
|
exports.HTTPMetricsMiddleware = HTTPMetricsMiddleware;
|
|
56
57
|
exports.HTTPMetricsMiddleware = HTTPMetricsMiddleware = __decorate([
|
|
57
58
|
(0, common_1.Injectable)(),
|
|
58
|
-
__metadata("design:paramtypes", [metrics_service_1.MetricsService
|
|
59
|
+
__metadata("design:paramtypes", [metrics_service_1.MetricsService,
|
|
60
|
+
tools_service_1.ToolsService])
|
|
59
61
|
], HTTPMetricsMiddleware);
|
|
60
62
|
let AMQPMetricsMiddleware = class AMQPMetricsMiddleware {
|
|
61
63
|
constructor(metricsService) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.middleware.js","sourceRoot":"","sources":["../../src/metrics/metrics.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4D;AAE5D,uDAAmD;AACnD,iFAAwF;
|
|
1
|
+
{"version":3,"file":"metrics.middleware.js","sourceRoot":"","sources":["../../src/metrics/metrics.middleware.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const common_1 = require("@nestjs/common");
|
|
|
12
12
|
const nestjs_prometheus_1 = require("@willsoto/nestjs-prometheus");
|
|
13
13
|
const metrics_service_1 = require("./metrics.service");
|
|
14
14
|
const metrics_middleware_1 = require("./metrics.middleware");
|
|
15
|
+
const internal_logs_info_module_1 = require("../common/internal-logs-info.module");
|
|
15
16
|
let MetricsModule = MetricsModule_1 = class MetricsModule {
|
|
16
17
|
static forRoot(prometheusOption) {
|
|
17
18
|
return {
|
|
@@ -32,6 +33,7 @@ exports.MetricsModule = MetricsModule = MetricsModule_1 = __decorate([
|
|
|
32
33
|
enabled: false,
|
|
33
34
|
},
|
|
34
35
|
}),
|
|
36
|
+
internal_logs_info_module_1.InternalLogsInfoModule,
|
|
35
37
|
],
|
|
36
38
|
providers: [metrics_service_1.MetricsService, metrics_middleware_1.HTTPMetricsMiddleware],
|
|
37
39
|
exports: [metrics_service_1.MetricsService, metrics_middleware_1.HTTPMetricsMiddleware],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../src/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,mEAA+D;AAC/D,uDAAmD;AACnD,6DAA6D;
|
|
1
|
+
{"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../src/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AACvD,mEAA+D;AAC/D,uDAAmD;AACnD,6DAA6D;AAE7D,mFAA6E;AAetE,IAAM,aAAa,qBAAnB,MAAM,aAAa;IACxB,MAAM,CAAC,OAAO,CAAC,gBAAmC;QAChD,OAAO;YACL,MAAM,EAAE,eAAa;YACrB,OAAO,EAAE,CAAC,oCAAgB,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;YACtD,SAAS,EAAE,CAAC,gCAAc,EAAE,0CAAqB,CAAC;YAClD,OAAO,EAAE,CAAC,gCAAc,EAAE,0CAAqB,CAAC;SACjD,CAAC;IACJ,CAAC;CACF,CAAA;AATY,sCAAa;wBAAb,aAAa;IAbzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,oCAAgB,CAAC,QAAQ,CAAC;gBACxB,IAAI,EAAE,UAAU;gBAChB,cAAc,EAAE;oBACd,OAAO,EAAE,KAAK;iBACf;aACF,CAAC;YACF,kDAAsB;SACvB;QACD,SAAS,EAAE,CAAC,gCAAc,EAAE,0CAAqB,CAAC;QAClD,OAAO,EAAE,CAAC,gCAAc,EAAE,0CAAqB,CAAC;KACjD,CAAC;GACW,aAAa,CASzB"}
|
|
@@ -90,6 +90,7 @@ let MetricsService = class MetricsService {
|
|
|
90
90
|
});
|
|
91
91
|
}
|
|
92
92
|
incrementMetricsRequest(path, method, status, elapsedTimeMs, maxConcurrentRequests, activeRequests) {
|
|
93
|
+
status ??= 'undefined';
|
|
93
94
|
this.transactionTotal.inc({ path, method, statuscode: status.toString() });
|
|
94
95
|
this.transactionCountTime.inc({
|
|
95
96
|
path,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"metrics.service.js","sourceRoot":"","sources":["../../src/metrics/metrics.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4C;AAC5C,wDAA0C;AAGnC,IAAM,cAAc,GAApB,MAAM,cAAc;IAQzB;
|
|
1
|
+
{"version":3,"file":"metrics.service.js","sourceRoot":"","sources":["../../src/metrics/metrics.service.ts"],"names":[],"mappings":"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"}
|