From 3f8086a9c7a2da0ef230aa1fbbc72cf6311363fd Mon Sep 17 00:00:00 2001 From: cfaur09 Date: Tue, 8 Oct 2024 09:03:55 +0300 Subject: [PATCH 1/7] add onRequest CPU request context --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/cache/package.json | 2 +- packages/common/package.json | 2 +- packages/elastic/package.json | 2 +- packages/http/package.json | 2 +- packages/monitoring/package.json | 2 +- .../src/interceptors/request.cpu.time.interceptor.ts | 10 +++++++++- packages/rabbitmq/package.json | 2 +- packages/redis/package.json | 2 +- 10 files changed, 18 insertions(+), 10 deletions(-) diff --git a/lerna.json b/lerna.json index ad2ea202..18cea427 100644 --- a/lerna.json +++ b/lerna.json @@ -1,7 +1,7 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useWorkspaces": true, - "version": "3.7.8", + "version": "3.8.0", "packages": [ "packages/*" ], diff --git a/packages/auth/package.json b/packages/auth/package.json index 22e5c7bf..a6d256c7 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-auth", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs auth package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/cache/package.json b/packages/cache/package.json index 7e75ddc4..b0f52ff5 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-cache", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs cache package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/common/package.json b/packages/common/package.json index f08eefbc..9a4879b5 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-common", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs common package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/elastic/package.json b/packages/elastic/package.json index 1266c5e7..005c0981 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-elastic", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs elastic package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/http/package.json b/packages/http/package.json index 5d71dae5..55378268 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-http", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs http package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/monitoring/package.json b/packages/monitoring/package.json index b1b75f8a..bddbcea2 100644 --- a/packages/monitoring/package.json +++ b/packages/monitoring/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-monitoring", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs monitoring package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts index 208235f8..80a3a518 100644 --- a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts +++ b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts @@ -6,6 +6,7 @@ import { CpuProfiler } from "../profilers/cpu.profiler"; @Injectable() export class RequestCpuTimeInterceptor implements NestInterceptor { + onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void; constructor( private readonly metricsService: MetricsService ) { } @@ -29,6 +30,10 @@ export class RequestCpuTimeInterceptor implements NestInterceptor { const duration = profiler.stop(); this.metricsService.setApiCpuTime(apiFunction, duration); + if (this.onRequest) { + this.onRequest(apiFunction, duration, context); + } + if (!request.res.headersSent) { request.res.set('X-Request-Cpu-Time', duration); } @@ -37,10 +42,13 @@ export class RequestCpuTimeInterceptor implements NestInterceptor { const duration = profiler.stop(); this.metricsService.setApiCpuTime(apiFunction, duration); + if (this.onRequest) { + this.onRequest(apiFunction, duration, context); + } + if (!request.res.headersSent) { request.res.set('X-Request-Cpu-Time', duration); } - return throwError(() => err); }) ); diff --git a/packages/rabbitmq/package.json b/packages/rabbitmq/package.json index 89e54d7e..a85c5a70 100644 --- a/packages/rabbitmq/package.json +++ b/packages/rabbitmq/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-rabbitmq", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs rabbitmq client package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/redis/package.json b/packages/redis/package.json index c1af20c6..c98d1b4f 100644 --- a/packages/redis/package.json +++ b/packages/redis/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-redis", - "version": "3.7.8", + "version": "3.8.0", "description": "Multiversx SDK Nestjs redis client package", "main": "lib/index.js", "types": "lib/index.d.ts", From c14efc478d4dfdd98b4a26f3f07d5d08dfca3d0e Mon Sep 17 00:00:00 2001 From: cfaur09 Date: Tue, 8 Oct 2024 09:57:10 +0300 Subject: [PATCH 2/7] Update request.cpu.time.interceptor.ts --- .../src/interceptors/request.cpu.time.interceptor.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts index 80a3a518..1d5f87d0 100644 --- a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts +++ b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts @@ -6,9 +6,9 @@ import { CpuProfiler } from "../profilers/cpu.profiler"; @Injectable() export class RequestCpuTimeInterceptor implements NestInterceptor { - onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void; constructor( - private readonly metricsService: MetricsService + private readonly metricsService: MetricsService, + private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void ) { } intercept(context: ExecutionContext, next: CallHandler): Observable { From eebc30a8b82020933ac60fc82df35bb5ee5e67e4 Mon Sep 17 00:00:00 2001 From: cfaur09 Date: Tue, 8 Oct 2024 10:19:16 +0300 Subject: [PATCH 3/7] Update logging.interceptor.ts --- .../monitoring/src/interceptors/logging.interceptor.ts | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/packages/monitoring/src/interceptors/logging.interceptor.ts b/packages/monitoring/src/interceptors/logging.interceptor.ts index e3db7d91..df036337 100644 --- a/packages/monitoring/src/interceptors/logging.interceptor.ts +++ b/packages/monitoring/src/interceptors/logging.interceptor.ts @@ -8,6 +8,7 @@ import { PerformanceProfiler } from "../profilers/performance.profiler"; export class LoggingInterceptor implements NestInterceptor { constructor( private readonly metricsService: MetricsService, + private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void ) { } intercept(context: ExecutionContext, next: CallHandler): Observable { @@ -38,6 +39,10 @@ export class LoggingInterceptor implements NestInterceptor { const res = http.getResponse(); this.metricsService.setApiCall(apiFunction, origin, res.statusCode, profiler.duration); + + if (this.onRequest) { + this.onRequest(apiFunction, profiler.duration, context); + } }), catchError(err => { profiler.stop(); @@ -45,6 +50,10 @@ export class LoggingInterceptor implements NestInterceptor { const statusCode = err.status ?? HttpStatus.INTERNAL_SERVER_ERROR; this.metricsService.setApiCall(apiFunction, origin, statusCode, profiler.duration); + if (this.onRequest) { + this.onRequest(apiFunction, profiler.duration, context); + } + return throwError(() => err); }) ); From e1294f591ecff9450c5cee90e2c16ed6ab7f3582 Mon Sep 17 00:00:00 2001 From: tanghel Date: Tue, 12 Nov 2024 11:12:49 +0200 Subject: [PATCH 4/7] added eol commas --- packages/monitoring/src/interceptors/logging.interceptor.ts | 2 +- .../monitoring/src/interceptors/request.cpu.time.interceptor.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/monitoring/src/interceptors/logging.interceptor.ts b/packages/monitoring/src/interceptors/logging.interceptor.ts index df036337..08de77fa 100644 --- a/packages/monitoring/src/interceptors/logging.interceptor.ts +++ b/packages/monitoring/src/interceptors/logging.interceptor.ts @@ -8,7 +8,7 @@ import { PerformanceProfiler } from "../profilers/performance.profiler"; export class LoggingInterceptor implements NestInterceptor { constructor( private readonly metricsService: MetricsService, - private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void + private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void, ) { } intercept(context: ExecutionContext, next: CallHandler): Observable { diff --git a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts index 1d5f87d0..24693366 100644 --- a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts +++ b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts @@ -8,7 +8,7 @@ import { CpuProfiler } from "../profilers/cpu.profiler"; export class RequestCpuTimeInterceptor implements NestInterceptor { constructor( private readonly metricsService: MetricsService, - private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void + private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void, ) { } intercept(context: ExecutionContext, next: CallHandler): Observable { From 6a48778c1124e4bb0716f8a7b778d10d395382ff Mon Sep 17 00:00:00 2001 From: tanghel Date: Tue, 12 Nov 2024 11:14:07 +0200 Subject: [PATCH 5/7] version bump --- lerna.json | 2 +- packages/auth/package.json | 2 +- packages/cache/package.json | 2 +- packages/common/package.json | 2 +- packages/elastic/package.json | 2 +- packages/http/package.json | 2 +- packages/monitoring/package.json | 2 +- packages/rabbitmq/package.json | 2 +- packages/redis/package.json | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/lerna.json b/lerna.json index 18cea427..14361b64 100644 --- a/lerna.json +++ b/lerna.json @@ -1,7 +1,7 @@ { "$schema": "node_modules/lerna/schemas/lerna-schema.json", "useWorkspaces": true, - "version": "3.8.0", + "version": "4.1.0", "packages": [ "packages/*" ], diff --git a/packages/auth/package.json b/packages/auth/package.json index a6d256c7..5bb20a13 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-auth", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs auth package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/cache/package.json b/packages/cache/package.json index b0f52ff5..d4366b26 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-cache", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs cache package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/common/package.json b/packages/common/package.json index 9a4879b5..eeb72305 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-common", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs common package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/elastic/package.json b/packages/elastic/package.json index 005c0981..fe8b14f1 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-elastic", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs elastic package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/http/package.json b/packages/http/package.json index 55378268..f5b069fc 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-http", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs http package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/monitoring/package.json b/packages/monitoring/package.json index bddbcea2..19a3fc90 100644 --- a/packages/monitoring/package.json +++ b/packages/monitoring/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-monitoring", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs monitoring package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/rabbitmq/package.json b/packages/rabbitmq/package.json index a85c5a70..c0af62a3 100644 --- a/packages/rabbitmq/package.json +++ b/packages/rabbitmq/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-rabbitmq", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs rabbitmq client package", "main": "lib/index.js", "types": "lib/index.d.ts", diff --git a/packages/redis/package.json b/packages/redis/package.json index c98d1b4f..4673161a 100644 --- a/packages/redis/package.json +++ b/packages/redis/package.json @@ -1,6 +1,6 @@ { "name": "@multiversx/sdk-nestjs-redis", - "version": "3.8.0", + "version": "4.1.0", "description": "Multiversx SDK Nestjs redis client package", "main": "lib/index.js", "types": "lib/index.d.ts", From 386b6f5798f05b5ac47d9434e03a038600bc5b8c Mon Sep 17 00:00:00 2001 From: tanghel Date: Tue, 12 Nov 2024 11:19:29 +0200 Subject: [PATCH 6/7] updated versions --- packages/auth/package.json | 6 +++--- packages/cache/package.json | 6 +++--- packages/common/package.json | 2 +- packages/elastic/package.json | 2 +- packages/http/package.json | 4 ++-- packages/rabbitmq/package.json | 2 +- 6 files changed, 11 insertions(+), 11 deletions(-) diff --git a/packages/auth/package.json b/packages/auth/package.json index 5bb20a13..e9e7d6a4 100644 --- a/packages/auth/package.json +++ b/packages/auth/package.json @@ -38,9 +38,9 @@ "jsonwebtoken": "^9.0.0" }, "peerDependencies": { - "@multiversx/sdk-nestjs-cache": "^3.7.2", - "@multiversx/sdk-nestjs-common": "^3.7.2", - "@multiversx/sdk-nestjs-monitoring": "^3.7.2", + "@multiversx/sdk-nestjs-cache": "^4.1.0", + "@multiversx/sdk-nestjs-common": "^4.1.0", + "@multiversx/sdk-nestjs-monitoring": "^4.1.0", "@nestjs/common": "^10.x" }, "publishConfig": { diff --git a/packages/cache/package.json b/packages/cache/package.json index d4366b26..9f56ac43 100644 --- a/packages/cache/package.json +++ b/packages/cache/package.json @@ -40,9 +40,9 @@ "uuid": "^8.3.2" }, "peerDependencies": { - "@multiversx/sdk-nestjs-common": "^3.7.2", - "@multiversx/sdk-nestjs-monitoring": "^3.7.2", - "@multiversx/sdk-nestjs-redis": "^3.7.2", + "@multiversx/sdk-nestjs-common": "^4.1.0", + "@multiversx/sdk-nestjs-monitoring": "^4.1.0", + "@multiversx/sdk-nestjs-redis": "^4.1.0", "@nestjs/common": "^10.x", "@nestjs/core": "^10.x" }, diff --git a/packages/common/package.json b/packages/common/package.json index eeb72305..2330af2d 100644 --- a/packages/common/package.json +++ b/packages/common/package.json @@ -40,7 +40,7 @@ "winston": "^3.7.2" }, "peerDependencies": { - "@multiversx/sdk-nestjs-monitoring": "^3.7.2", + "@multiversx/sdk-nestjs-monitoring": "^4.1.0", "@nestjs/common": "^10.x", "@nestjs/config": "^3.x", "@nestjs/core": "^10.x", diff --git a/packages/elastic/package.json b/packages/elastic/package.json index fe8b14f1..3cd477f7 100644 --- a/packages/elastic/package.json +++ b/packages/elastic/package.json @@ -31,7 +31,7 @@ "typescript": "^4.3.5" }, "peerDependencies": { - "@multiversx/sdk-nestjs-http": "^3.7.2", + "@multiversx/sdk-nestjs-http": "^4.1.0", "@nestjs/common": "^10.x" }, "publishConfig": { diff --git a/packages/http/package.json b/packages/http/package.json index f5b069fc..73514bc4 100644 --- a/packages/http/package.json +++ b/packages/http/package.json @@ -38,8 +38,8 @@ "axios": "^1.7.4" }, "peerDependencies": { - "@multiversx/sdk-nestjs-common": "^3.7.2", - "@multiversx/sdk-nestjs-monitoring": "^3.7.2", + "@multiversx/sdk-nestjs-common": "^4.1.0", + "@multiversx/sdk-nestjs-monitoring": "^4.1.0", "@nestjs/common": "^10.x", "@nestjs/core": "^10.x" }, diff --git a/packages/rabbitmq/package.json b/packages/rabbitmq/package.json index c0af62a3..3b0a2e36 100644 --- a/packages/rabbitmq/package.json +++ b/packages/rabbitmq/package.json @@ -37,7 +37,7 @@ "uuid": "^8.3.2" }, "peerDependencies": { - "@multiversx/sdk-nestjs-common": "^3.7.2", + "@multiversx/sdk-nestjs-common": "^4.1.0", "@nestjs/common": "^10.x" }, "publishConfig": { From e3554cb3821615a2caebe52c7bf0648b432f39af Mon Sep 17 00:00:00 2001 From: tanghel Date: Tue, 12 Nov 2024 11:53:08 +0200 Subject: [PATCH 7/7] context class for onRequest callbacks --- .../src/interceptors/entities/index.ts | 2 ++ .../entities/logging.interceptor.context.ts | 13 +++++++++++++ .../request.cpu.time.interceptor.context.ts | 11 +++++++++++ packages/monitoring/src/interceptors/index.ts | 1 + .../src/interceptors/logging.interceptor.ts | 19 ++++++++++++++++--- .../request.cpu.time.interceptor.ts | 15 ++++++++++++--- 6 files changed, 55 insertions(+), 6 deletions(-) create mode 100644 packages/monitoring/src/interceptors/entities/index.ts create mode 100644 packages/monitoring/src/interceptors/entities/logging.interceptor.context.ts create mode 100644 packages/monitoring/src/interceptors/entities/request.cpu.time.interceptor.context.ts diff --git a/packages/monitoring/src/interceptors/entities/index.ts b/packages/monitoring/src/interceptors/entities/index.ts new file mode 100644 index 00000000..d71df480 --- /dev/null +++ b/packages/monitoring/src/interceptors/entities/index.ts @@ -0,0 +1,2 @@ +export * from './logging.interceptor.context'; +export * from './request.cpu.time.interceptor.context'; diff --git a/packages/monitoring/src/interceptors/entities/logging.interceptor.context.ts b/packages/monitoring/src/interceptors/entities/logging.interceptor.context.ts new file mode 100644 index 00000000..169882db --- /dev/null +++ b/packages/monitoring/src/interceptors/entities/logging.interceptor.context.ts @@ -0,0 +1,13 @@ +import { ExecutionContext } from "@nestjs/common"; + +export class LoggingInterceptorContext { + apiFunction: string = ''; + durationMs: number = 0; + origin: string = ''; + statusCode: number = 0; + context!: ExecutionContext; + + constructor(init?: Partial) { + Object.assign(this, init); + } +} diff --git a/packages/monitoring/src/interceptors/entities/request.cpu.time.interceptor.context.ts b/packages/monitoring/src/interceptors/entities/request.cpu.time.interceptor.context.ts new file mode 100644 index 00000000..fa39ef7a --- /dev/null +++ b/packages/monitoring/src/interceptors/entities/request.cpu.time.interceptor.context.ts @@ -0,0 +1,11 @@ +import { ExecutionContext } from '@nestjs/common'; + +export class RequestCpuTimeInterceptorContext { + apiFunction: string = ''; + durationMs: number = 0; + context!: ExecutionContext; + + constructor(init?: Partial) { + Object.assign(this, init); + } +} diff --git a/packages/monitoring/src/interceptors/index.ts b/packages/monitoring/src/interceptors/index.ts index 380f3a99..fed1c0d0 100644 --- a/packages/monitoring/src/interceptors/index.ts +++ b/packages/monitoring/src/interceptors/index.ts @@ -1,3 +1,4 @@ +export * from './entities'; export * from './log.requests.interceptor'; export * from './logging.interceptor'; export * from './request.cpu.time.interceptor'; diff --git a/packages/monitoring/src/interceptors/logging.interceptor.ts b/packages/monitoring/src/interceptors/logging.interceptor.ts index 08de77fa..1aac79a9 100644 --- a/packages/monitoring/src/interceptors/logging.interceptor.ts +++ b/packages/monitoring/src/interceptors/logging.interceptor.ts @@ -3,12 +3,13 @@ import { Observable, throwError } from "rxjs"; import { catchError, tap } from "rxjs/operators"; import { MetricsService } from "../metrics"; import { PerformanceProfiler } from "../profilers/performance.profiler"; +import { LoggingInterceptorContext } from "./entities/logging.interceptor.context"; @Injectable() export class LoggingInterceptor implements NestInterceptor { constructor( private readonly metricsService: MetricsService, - private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void, + private readonly onRequest?: (context: LoggingInterceptorContext) => void, ) { } intercept(context: ExecutionContext, next: CallHandler): Observable { @@ -41,7 +42,13 @@ export class LoggingInterceptor implements NestInterceptor { this.metricsService.setApiCall(apiFunction, origin, res.statusCode, profiler.duration); if (this.onRequest) { - this.onRequest(apiFunction, profiler.duration, context); + this.onRequest(new LoggingInterceptorContext({ + apiFunction, + durationMs: profiler.duration, + origin, + statusCode: res.statusCode, + context, + })); } }), catchError(err => { @@ -51,7 +58,13 @@ export class LoggingInterceptor implements NestInterceptor { this.metricsService.setApiCall(apiFunction, origin, statusCode, profiler.duration); if (this.onRequest) { - this.onRequest(apiFunction, profiler.duration, context); + this.onRequest(new LoggingInterceptorContext({ + apiFunction, + durationMs: profiler.duration, + origin, + statusCode, + context, + })); } return throwError(() => err); diff --git a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts index 24693366..184dab7e 100644 --- a/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts +++ b/packages/monitoring/src/interceptors/request.cpu.time.interceptor.ts @@ -3,12 +3,13 @@ import { Observable, throwError } from "rxjs"; import { catchError, tap } from 'rxjs/operators'; import { MetricsService } from '../metrics'; import { CpuProfiler } from "../profilers/cpu.profiler"; +import { RequestCpuTimeInterceptorContext } from "./entities"; @Injectable() export class RequestCpuTimeInterceptor implements NestInterceptor { constructor( private readonly metricsService: MetricsService, - private readonly onRequest?: (apiFunction: string, durationMs: number, context: ExecutionContext) => void, + private readonly onRequest?: (context: RequestCpuTimeInterceptorContext) => void, ) { } intercept(context: ExecutionContext, next: CallHandler): Observable { @@ -31,7 +32,11 @@ export class RequestCpuTimeInterceptor implements NestInterceptor { this.metricsService.setApiCpuTime(apiFunction, duration); if (this.onRequest) { - this.onRequest(apiFunction, duration, context); + this.onRequest(new RequestCpuTimeInterceptorContext({ + apiFunction, + durationMs: duration, + context, + })); } if (!request.res.headersSent) { @@ -43,7 +48,11 @@ export class RequestCpuTimeInterceptor implements NestInterceptor { this.metricsService.setApiCpuTime(apiFunction, duration); if (this.onRequest) { - this.onRequest(apiFunction, duration, context); + this.onRequest(new RequestCpuTimeInterceptorContext({ + apiFunction, + durationMs: duration, + context, + })); } if (!request.res.headersSent) {