@revisium/endpoint 0.9.0 → 0.9.1

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.
Files changed (55) hide show
  1. package/dist/app.module.d.ts +2 -0
  2. package/dist/app.module.js +26 -0
  3. package/dist/app.module.js.map +1 -0
  4. package/dist/endpoint-microservice/endpoint-microservice.module.js +2 -0
  5. package/dist/endpoint-microservice/endpoint-microservice.module.js.map +1 -1
  6. package/dist/endpoint-microservice/graphql/graphql-endpoint.controller.js +2 -0
  7. package/dist/endpoint-microservice/graphql/graphql-endpoint.controller.js.map +1 -1
  8. package/dist/endpoint-microservice/graphql/graphql-endpoint.service.d.ts +5 -3
  9. package/dist/endpoint-microservice/graphql/graphql-endpoint.service.js +6 -2
  10. package/dist/endpoint-microservice/graphql/graphql-endpoint.service.js.map +1 -1
  11. package/dist/endpoint-microservice/graphql/graphql.module.js +2 -1
  12. package/dist/endpoint-microservice/graphql/graphql.module.js.map +1 -1
  13. package/dist/endpoint-microservice/metrics/graphql/constants.d.ts +3 -0
  14. package/dist/endpoint-microservice/metrics/graphql/constants.js +7 -0
  15. package/dist/endpoint-microservice/metrics/graphql/constants.js.map +1 -0
  16. package/dist/endpoint-microservice/metrics/graphql/graphql-metrics.plugin.d.ts +7 -0
  17. package/dist/endpoint-microservice/metrics/graphql/graphql-metrics.plugin.js +54 -0
  18. package/dist/endpoint-microservice/metrics/graphql/graphql-metrics.plugin.js.map +1 -0
  19. package/dist/endpoint-microservice/metrics/graphql/graphql-metrics.service.d.ts +15 -0
  20. package/dist/endpoint-microservice/metrics/graphql/graphql-metrics.service.js +49 -0
  21. package/dist/endpoint-microservice/metrics/graphql/graphql-metrics.service.js.map +1 -0
  22. package/dist/endpoint-microservice/metrics/metrics.module.d.ts +2 -0
  23. package/dist/endpoint-microservice/metrics/metrics.module.js +32 -0
  24. package/dist/endpoint-microservice/metrics/metrics.module.js.map +1 -0
  25. package/dist/endpoint-microservice/metrics/rest/constants.d.ts +3 -0
  26. package/dist/endpoint-microservice/metrics/rest/constants.js +7 -0
  27. package/dist/endpoint-microservice/metrics/rest/constants.js.map +1 -0
  28. package/dist/endpoint-microservice/metrics/rest/rest-metrics.interceptor.d.ts +9 -0
  29. package/dist/endpoint-microservice/metrics/rest/rest-metrics.interceptor.js +53 -0
  30. package/dist/endpoint-microservice/metrics/rest/rest-metrics.interceptor.js.map +1 -0
  31. package/dist/endpoint-microservice/metrics/rest/rest-metrics.service.d.ts +15 -0
  32. package/dist/endpoint-microservice/metrics/rest/rest-metrics.service.js +52 -0
  33. package/dist/endpoint-microservice/metrics/rest/rest-metrics.service.js.map +1 -0
  34. package/dist/endpoint-microservice/metrics/utils.d.ts +1 -0
  35. package/dist/endpoint-microservice/metrics/utils.js +9 -0
  36. package/dist/endpoint-microservice/metrics/utils.js.map +1 -0
  37. package/dist/endpoint-microservice/metrics-api/metrics-api.module.d.ts +4 -0
  38. package/dist/endpoint-microservice/metrics-api/metrics-api.module.js +29 -0
  39. package/dist/endpoint-microservice/metrics-api/metrics-api.module.js.map +1 -0
  40. package/dist/endpoint-microservice/metrics-api/metrics-enabled.guard.d.ts +7 -0
  41. package/dist/endpoint-microservice/metrics-api/metrics-enabled.guard.js +28 -0
  42. package/dist/endpoint-microservice/metrics-api/metrics-enabled.guard.js.map +1 -0
  43. package/dist/endpoint-microservice/metrics-api/metrics.controller.d.ts +7 -0
  44. package/dist/endpoint-microservice/metrics-api/metrics.controller.js +49 -0
  45. package/dist/endpoint-microservice/metrics-api/metrics.controller.js.map +1 -0
  46. package/dist/endpoint-microservice/restapi/restapi-endpoint.controller.js +2 -0
  47. package/dist/endpoint-microservice/restapi/restapi-endpoint.controller.js.map +1 -1
  48. package/dist/endpoint-microservice/restapi/restapi.module.js +2 -1
  49. package/dist/endpoint-microservice/restapi/restapi.module.js.map +1 -1
  50. package/dist/endpoint-microservice/restapi/swagger-endpoint.controller.js +2 -0
  51. package/dist/endpoint-microservice/restapi/swagger-endpoint.controller.js.map +1 -1
  52. package/dist/main.js +2 -2
  53. package/dist/main.js.map +1 -1
  54. package/dist/tsconfig.build.tsbuildinfo +1 -1
  55. package/package.json +2 -1
@@ -0,0 +1,2 @@
1
+ export declare class AppModule {
2
+ }
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AppModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const endpoint_microservice_module_1 = require("./endpoint-microservice/endpoint-microservice.module");
13
+ const metrics_api_module_1 = require("./endpoint-microservice/metrics-api/metrics-api.module");
14
+ let AppModule = class AppModule {
15
+ };
16
+ exports.AppModule = AppModule;
17
+ exports.AppModule = AppModule = __decorate([
18
+ (0, common_1.Module)({
19
+ imports: [
20
+ config_1.ConfigModule.forRoot(),
21
+ endpoint_microservice_module_1.EndpointMicroserviceModule,
22
+ metrics_api_module_1.MetricsApiModule,
23
+ ],
24
+ })
25
+ ], AppModule);
26
+ //# sourceMappingURL=app.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../src/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,uGAAoG;AACpG,+FAA4F;AASrF,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,8BAAS;oBAAT,SAAS;IAPrB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,EAAE;YACtB,yDAA0B;YAC1B,qCAAgB;SACjB;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -20,6 +20,7 @@ const internal_core_api_service_1 = require("./core-api/internal-core-api.servic
20
20
  const database_module_1 = require("./database/database.module");
21
21
  const endpoint_listener_controller_1 = require("./endpoint-listener.controller");
22
22
  const graphql_module_1 = require("./graphql/graphql.module");
23
+ const metrics_module_1 = require("./metrics/metrics.module");
23
24
  const restapi_module_1 = require("./restapi/restapi.module");
24
25
  let EndpointMicroserviceModule = class EndpointMicroserviceModule {
25
26
  constructor(commandBus, internalCoreApiService) {
@@ -48,6 +49,7 @@ exports.EndpointMicroserviceModule = EndpointMicroserviceModule = __decorate([
48
49
  graphql_module_1.GraphqlModule,
49
50
  restapi_module_1.RestapiModule,
50
51
  core_api_module_1.CoreApiModule,
52
+ metrics_module_1.MetricsModule,
51
53
  ],
52
54
  controllers: [endpoint_listener_controller_1.EndpointListenerController],
53
55
  providers: [...handlers_1.ENDPOINT_COMMANDS],
@@ -1 +1 @@
1
- {"version":3,"file":"endpoint-microservice.module.js","sourceRoot":"","sources":["../../src/endpoint-microservice/endpoint-microservice.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAgE;AAChE,2CAA8C;AAC9C,uCAAsD;AACtD,kDAAgF;AAChF,yFAA2G;AAC3G,gEAAmF;AACnF,oFAAsG;AACtG,gEAAoF;AACpF,iFAAoG;AACpG,6DAAiF;AACjF,6DAAiF;AAc1E,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,YACmB,UAAsB,EACtB,sBAA8C;QAD9C,eAAU,GAAV,UAAU,CAAY;QACtB,2BAAsB,GAAtB,sBAAsB,CAAwB;IAC9D,CAAC;IAEG,KAAK,CAAC,sBAAsB;QAEjC,YAAY,CAAC,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,kDAAsB,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjBY,gEAA0B;qCAA1B,0BAA0B;IAZtC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,iBAAU;YACV,qBAAY,CAAC,OAAO,EAAE;YACtB,gCAAc;YACd,8BAAa;YACb,8BAAa;YACb,+BAAa;SACd;QACD,WAAW,EAAE,CAAC,yDAA0B,CAAC;QACzC,SAAS,EAAE,CAAC,GAAG,4BAAiB,CAAC;KAClC,CAAC;qCAG+B,iBAAU;QACE,kDAAsB;GAHtD,0BAA0B,CAiBtC"}
1
+ {"version":3,"file":"endpoint-microservice.module.js","sourceRoot":"","sources":["../../src/endpoint-microservice/endpoint-microservice.module.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAgE;AAChE,2CAA8C;AAC9C,uCAAsD;AACtD,kDAAgF;AAChF,yFAA2G;AAC3G,gEAAmF;AACnF,oFAAsG;AACtG,gEAAoF;AACpF,iFAAoG;AACpG,6DAAiF;AACjF,6DAAiF;AACjF,6DAAiF;AAe1E,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IACrC,YACmB,UAAsB,EACtB,sBAA8C;QAD9C,eAAU,GAAV,UAAU,CAAY;QACtB,2BAAsB,GAAtB,sBAAsB,CAAwB;IAC9D,CAAC;IAEG,KAAK,CAAC,sBAAsB;QAEjC,YAAY,CAAC,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,kDAAsB,EAAE,CAAC,CAAC;YAC9D,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF,CAAA;AAjBY,gEAA0B;qCAA1B,0BAA0B;IAbtC,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,iBAAU;YACV,qBAAY,CAAC,OAAO,EAAE;YACtB,gCAAc;YACd,8BAAa;YACb,8BAAa;YACb,+BAAa;YACb,8BAAa;SACd;QACD,WAAW,EAAE,CAAC,yDAA0B,CAAC;QACzC,SAAS,EAAE,CAAC,GAAG,4BAAiB,CAAC;KAClC,CAAC;qCAG+B,iBAAU;QACE,kDAAsB;GAHtD,0BAA0B,CAiBtC"}
@@ -16,6 +16,7 @@ exports.GraphqlEndpointController = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const swagger_1 = require("@nestjs/swagger");
18
18
  const graphql_endpoint_service_1 = require("./graphql-endpoint.service");
19
+ const rest_metrics_interceptor_1 = require("../metrics/rest/rest-metrics.interceptor");
19
20
  let GraphqlEndpointController = class GraphqlEndpointController {
20
21
  constructor(endpointService) {
21
22
  this.endpointService = endpointService;
@@ -78,6 +79,7 @@ __decorate([
78
79
  __metadata("design:returntype", void 0)
79
80
  ], GraphqlEndpointController.prototype, "post", null);
80
81
  exports.GraphqlEndpointController = GraphqlEndpointController = __decorate([
82
+ (0, common_1.UseInterceptors)(rest_metrics_interceptor_1.RestMetricsInterceptor),
81
83
  (0, swagger_1.ApiExcludeController)(),
82
84
  (0, common_1.Controller)('endpoint/graphql/:organizationId/:projectName/:branchName/:postfix'),
83
85
  __metadata("design:paramtypes", [graphql_endpoint_service_1.GraphqlEndpointService])
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-endpoint.controller.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql-endpoint.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CASwB;AACxB,6CAAuD;AAEvD,yEAAoG;AAM7F,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAA6B,eAAuC;QAAvC,oBAAe,GAAf,eAAe,CAAwB;IAAG,CAAC;IAGxE,GAAG,CACwB,cAAsB,EACzB,WAAmB,EACpB,UAAkB,EAEvC,OAAe,EAEf,GAAY,EACL,GAAa,EACZ,IAAkB;QAE1B,IAAI,CAAC,GAAG,CAAC;YACP,cAAc;YACd,WAAW;YACX,UAAU;YACV,OAAO;YACP,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CACuB,cAAsB,EACzB,WAAmB,EACpB,UAAkB,EAEvC,OAA2B,EACpB,GAAY,EACZ,GAAa,EACZ,IAAkB;QAE1B,IAAI,CAAC,GAAG,CAAC;YACP,cAAc;YACd,WAAW;YACX,UAAU;YACV,OAAO;YACP,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAEO,GAAG,CAAC,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,EACP,GAAG,EACH,GAAG,EACH,IAAI,GASL;QACC,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACnE,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,mBAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA9EY,8DAAyB;AAIpC;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAEhB,WAAA,IAAA,YAAG,GAAE,CAAA;IAEL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAWR;AAGD;IADC,IAAA,aAAI,GAAE;IAEJ,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAEhB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;qDAWR;oCA9CU,yBAAyB;IAJrC,IAAA,8BAAoB,GAAE;IACtB,IAAA,mBAAU,EACT,oEAAoE,CACrE;qCAE+C,iDAAsB;GADzD,yBAAyB,CA8ErC"}
1
+ {"version":3,"file":"graphql-endpoint.controller.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql-endpoint.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAUwB;AACxB,6CAAuD;AAEvD,yEAAoG;AACpG,uFAAyG;AAOlG,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,YAA6B,eAAuC;QAAvC,oBAAe,GAAf,eAAe,CAAwB;IAAG,CAAC;IAGxE,GAAG,CACwB,cAAsB,EACzB,WAAmB,EACpB,UAAkB,EAEvC,OAAe,EAEf,GAAY,EACL,GAAa,EACZ,IAAkB;QAE1B,IAAI,CAAC,GAAG,CAAC;YACP,cAAc;YACd,WAAW;YACX,UAAU;YACV,OAAO;YACP,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAGD,IAAI,CACuB,cAAsB,EACzB,WAAmB,EACpB,UAAkB,EAEvC,OAA2B,EACpB,GAAY,EACZ,GAAa,EACZ,IAAkB;QAE1B,IAAI,CAAC,GAAG,CAAC;YACP,cAAc;YACd,WAAW;YACX,UAAU;YACV,OAAO;YACP,GAAG;YACH,GAAG;YACH,IAAI;SACL,CAAC,CAAC;IACL,CAAC;IAEO,GAAG,CAAC,EACV,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,EACP,GAAG,EACH,GAAG,EACH,IAAI,GASL;QACC,MAAM,kBAAkB,GAAG,IAAI,CAAC,eAAe,CAAC,qBAAqB,CACnE,cAAc,EACd,WAAW,EACX,UAAU,EACV,OAAO,CACR,CAAC;QAEF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,OAAO,GAAG,CAAC,MAAM,CAAC,mBAAU,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACjD,CAAC;QAED,kBAAkB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACF,CAAA;AA9EY,8DAAyB;AAIpC;IADC,IAAA,YAAG,GAAE;IAEH,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAEhB,WAAA,IAAA,YAAG,GAAE,CAAA;IAEL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;oDAWR;AAGD;IADC,IAAA,aAAI,GAAE;IAEJ,WAAA,IAAA,cAAK,EAAC,gBAAgB,CAAC,CAAA;IACvB,WAAA,IAAA,cAAK,EAAC,aAAa,CAAC,CAAA;IACpB,WAAA,IAAA,cAAK,EAAC,YAAY,CAAC,CAAA;IACnB,WAAA,IAAA,cAAK,EAAC,SAAS,CAAC,CAAA;IAEhB,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,YAAG,GAAE,CAAA;IACL,WAAA,IAAA,aAAI,GAAE,CAAA;;;;qDAWR;oCA9CU,yBAAyB;IALrC,IAAA,wBAAe,EAAC,iDAAsB,CAAC;IACvC,IAAA,8BAAoB,GAAE;IACtB,IAAA,mBAAU,EACT,oEAAoE,CACrE;qCAE+C,iDAAsB;GADzD,yBAAyB,CA8ErC"}
@@ -2,13 +2,15 @@
2
2
  import { QueryBus } from '@nestjs/cqrs';
3
3
  import { RequestHandler } from 'express';
4
4
  import { PrismaService } from 'src/endpoint-microservice/database/prisma.service';
5
+ import { GraphqlMetricsPlugin } from 'src/endpoint-microservice/metrics/graphql/graphql-metrics.plugin';
5
6
  export declare class GraphqlEndpointService {
6
- private prisma;
7
- private queryBus;
7
+ private readonly prisma;
8
+ private readonly queryBus;
9
+ private readonly graphqlMetricsPlugin;
8
10
  private readonly logger;
9
11
  private map;
10
12
  private startedEndpointIds;
11
- constructor(prisma: PrismaService, queryBus: QueryBus);
13
+ constructor(prisma: PrismaService, queryBus: QueryBus, graphqlMetricsPlugin: GraphqlMetricsPlugin);
12
14
  getEndpointMiddleware(organizationId: string, projectName: string, branchName: string, postfix: string): RequestHandler<import("express-serve-static-core").ParamsDictionary, any, any, import("qs").ParsedQs, Record<string, any>>;
13
15
  existEndpoint(endpointId: string): boolean;
14
16
  stopEndpoint(endpointId: string): Promise<void>;
@@ -18,11 +18,13 @@ const common_1 = require("@nestjs/common");
18
18
  const cqrs_1 = require("@nestjs/cqrs");
19
19
  const prisma_service_1 = require("../database/prisma.service");
20
20
  const impl_1 = require("./queries/impl");
21
+ const graphql_metrics_plugin_1 = require("../metrics/graphql/graphql-metrics.plugin");
21
22
  const parseHeaders_1 = require("../shared/utils/parseHeaders");
22
23
  let GraphqlEndpointService = GraphqlEndpointService_1 = class GraphqlEndpointService {
23
- constructor(prisma, queryBus) {
24
+ constructor(prisma, queryBus, graphqlMetricsPlugin) {
24
25
  this.prisma = prisma;
25
26
  this.queryBus = queryBus;
27
+ this.graphqlMetricsPlugin = graphqlMetricsPlugin;
26
28
  this.logger = new common_1.Logger(GraphqlEndpointService_1.name);
27
29
  this.map = new Map();
28
30
  this.startedEndpointIds = [];
@@ -76,6 +78,7 @@ let GraphqlEndpointService = GraphqlEndpointService_1 = class GraphqlEndpointSer
76
78
  schema: graphqlSchema,
77
79
  introspection: true,
78
80
  plugins: [
81
+ this.graphqlMetricsPlugin,
79
82
  (0, default_1.ApolloServerPluginLandingPageLocalDefault)({
80
83
  document: `query ExampleQuery {
81
84
  ${table} {
@@ -133,6 +136,7 @@ exports.GraphqlEndpointService = GraphqlEndpointService;
133
136
  exports.GraphqlEndpointService = GraphqlEndpointService = GraphqlEndpointService_1 = __decorate([
134
137
  (0, common_1.Injectable)(),
135
138
  __metadata("design:paramtypes", [prisma_service_1.PrismaService,
136
- cqrs_1.QueryBus])
139
+ cqrs_1.QueryBus,
140
+ graphql_metrics_plugin_1.GraphqlMetricsPlugin])
137
141
  ], GraphqlEndpointService);
138
142
  //# sourceMappingURL=graphql-endpoint.service.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"graphql-endpoint.service.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql-endpoint.service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"graphql-endpoint.service.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql-endpoint.service.ts"],"names":[],"mappings":"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"}
@@ -15,12 +15,13 @@ const handlers_1 = require("./commands/handlers");
15
15
  const graphql_endpoint_controller_1 = require("./graphql-endpoint.controller");
16
16
  const graphql_endpoint_service_1 = require("./graphql-endpoint.service");
17
17
  const handlers_2 = require("./queries/handlers");
18
+ const metrics_module_1 = require("../metrics/metrics.module");
18
19
  let GraphqlModule = class GraphqlModule {
19
20
  };
20
21
  exports.GraphqlModule = GraphqlModule;
21
22
  exports.GraphqlModule = GraphqlModule = __decorate([
22
23
  (0, common_1.Module)({
23
- imports: [cqrs_1.CqrsModule, database_module_1.DatabaseModule, core_api_module_1.CoreApiModule],
24
+ imports: [cqrs_1.CqrsModule, database_module_1.DatabaseModule, core_api_module_1.CoreApiModule, metrics_module_1.MetricsModule],
24
25
  providers: [graphql_endpoint_service_1.GraphqlEndpointService, ...handlers_1.GRAPHQL_COMMANDS, ...handlers_2.GRAPHQL_QUERIES],
25
26
  controllers: [graphql_endpoint_controller_1.GraphqlEndpointController],
26
27
  })
@@ -1 +1 @@
1
- {"version":3,"file":"graphql.module.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uCAA0C;AAC1C,iEAAmF;AACnF,iEAAoF;AACpF,kDAAuF;AACvF,+EAA0G;AAC1G,yEAAoG;AACpG,iDAAqF;AAO9E,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IALzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,EAAE,gCAAc,EAAE,+BAAa,CAAC;QACpD,SAAS,EAAE,CAAC,iDAAsB,EAAE,GAAG,2BAAgB,EAAE,GAAG,0BAAe,CAAC;QAC5E,WAAW,EAAE,CAAC,uDAAyB,CAAC;KACzC,CAAC;GACW,aAAa,CAAG"}
1
+ {"version":3,"file":"graphql.module.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/graphql/graphql.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,uCAA0C;AAC1C,iEAAmF;AACnF,iEAAoF;AACpF,kDAAuF;AACvF,+EAA0G;AAC1G,yEAAoG;AACpG,iDAAqF;AACrF,8DAAiF;AAO1E,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IALzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,iBAAU,EAAE,gCAAc,EAAE,+BAAa,EAAE,8BAAa,CAAC;QACnE,SAAS,EAAE,CAAC,iDAAsB,EAAE,GAAG,2BAAgB,EAAE,GAAG,0BAAe,CAAC;QAC5E,WAAW,EAAE,CAAC,uDAAyB,CAAC;KACzC,CAAC;GACW,aAAa,CAAG"}
@@ -0,0 +1,3 @@
1
+ export declare const GRAPHQL_ENDPOINT_REQUEST_DURATION_SECONDS = "graphql_endpoint_request_duration_seconds";
2
+ export declare const GRAPHQL_ENDPOINT_DID_RESOLVE_OPERATION_TOTAL = "graphql_endpoint_did_resolve_operation_total";
3
+ export declare const GRAPHQL_ENDPOINT_DID_ENCOUNTER_ERRORS_TOTAL = "graphql_endpoint_did_encounter_errors_total";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GRAPHQL_ENDPOINT_DID_ENCOUNTER_ERRORS_TOTAL = exports.GRAPHQL_ENDPOINT_DID_RESOLVE_OPERATION_TOTAL = exports.GRAPHQL_ENDPOINT_REQUEST_DURATION_SECONDS = void 0;
4
+ exports.GRAPHQL_ENDPOINT_REQUEST_DURATION_SECONDS = 'graphql_endpoint_request_duration_seconds';
5
+ exports.GRAPHQL_ENDPOINT_DID_RESOLVE_OPERATION_TOTAL = 'graphql_endpoint_did_resolve_operation_total';
6
+ exports.GRAPHQL_ENDPOINT_DID_ENCOUNTER_ERRORS_TOTAL = 'graphql_endpoint_did_encounter_errors_total';
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/endpoint-microservice/metrics/graphql/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,yCAAyC,GACpD,2CAA2C,CAAC;AAEjC,QAAA,4CAA4C,GACvD,8CAA8C,CAAC;AAEpC,QAAA,2CAA2C,GACtD,6CAA6C,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ApolloServerPlugin, BaseContext, GraphQLRequestListener } from '@apollo/server';
2
+ import { GraphqlMetricsService } from 'src/endpoint-microservice/metrics/graphql/graphql-metrics.service';
3
+ export declare class GraphqlMetricsPlugin implements ApolloServerPlugin {
4
+ private readonly graphqlMetrics;
5
+ constructor(graphqlMetrics: GraphqlMetricsService);
6
+ requestDidStart(): Promise<GraphQLRequestListener<BaseContext>>;
7
+ }
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GraphqlMetricsPlugin = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const process = require("node:process");
15
+ const graphql_metrics_service_1 = require("./graphql-metrics.service");
16
+ const utils_1 = require("../utils");
17
+ let GraphqlMetricsPlugin = class GraphqlMetricsPlugin {
18
+ constructor(graphqlMetrics) {
19
+ this.graphqlMetrics = graphqlMetrics;
20
+ }
21
+ async requestDidStart() {
22
+ const startAt = process.hrtime();
23
+ return {
24
+ didResolveOperation: async (requestContext) => {
25
+ this.graphqlMetrics.didResolveOperation(getLabels(requestContext));
26
+ },
27
+ willSendResponse: async (requestContext) => {
28
+ this.graphqlMetrics.requestDurationSeconds({
29
+ ...getLabels(requestContext),
30
+ result: 'true',
31
+ }, (0, utils_1.getDurationInSeconds)(startAt));
32
+ },
33
+ didEncounterErrors: async (requestContext) => {
34
+ const labels = getLabels(requestContext);
35
+ this.graphqlMetrics.didEncounterErrors(labels);
36
+ this.graphqlMetrics.requestDurationSeconds({
37
+ ...labels,
38
+ result: 'false',
39
+ }, (0, utils_1.getDurationInSeconds)(startAt));
40
+ },
41
+ };
42
+ }
43
+ };
44
+ exports.GraphqlMetricsPlugin = GraphqlMetricsPlugin;
45
+ exports.GraphqlMetricsPlugin = GraphqlMetricsPlugin = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __metadata("design:paramtypes", [graphql_metrics_service_1.GraphqlMetricsService])
48
+ ], GraphqlMetricsPlugin);
49
+ function getLabels(context) {
50
+ return {
51
+ operation: context.operation?.operation,
52
+ };
53
+ }
54
+ //# sourceMappingURL=graphql-metrics.plugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-metrics.plugin.js","sourceRoot":"","sources":["../../../../src/endpoint-microservice/metrics/graphql/graphql-metrics.plugin.ts"],"names":[],"mappings":";;;;;;;;;;;;AAKA,2CAA4C;AAC5C,wCAAwC;AACxC,uEAA0G;AAC1G,oCAA+E;AAGxE,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YAA6B,cAAqC;QAArC,mBAAc,GAAd,cAAc,CAAuB;IAAG,CAAC;IAEtE,KAAK,CAAC,eAAe;QACnB,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjC,OAAO;YACL,mBAAmB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;gBAC5C,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC;YACrE,CAAC;YAED,gBAAgB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;gBACzC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC;oBACE,GAAG,SAAS,CAAC,cAAc,CAAC;oBAC5B,MAAM,EAAE,MAAM;iBACf,EACD,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAC9B,CAAC;YACJ,CAAC;YAED,kBAAkB,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAG,SAAS,CAAC,cAAc,CAAC,CAAC;gBAEzC,IAAI,CAAC,cAAc,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gBAE/C,IAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC;oBACE,GAAG,MAAM;oBACT,MAAM,EAAE,OAAO;iBAChB,EACD,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAC9B,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AApCY,oDAAoB;+BAApB,oBAAoB;IADhC,IAAA,mBAAU,GAAE;qCAEkC,+CAAqB;GADvD,oBAAoB,CAoChC;AAED,SAAS,SAAS,CAAC,OAA8C;IAC/D,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,SAAS;KACxC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ type Labels = {
2
+ operation?: string;
3
+ };
4
+ export declare class GraphqlMetricsService {
5
+ private readonly requestDurationSecondsHistogram;
6
+ private readonly didResolveOperationTotalCounter;
7
+ private readonly didEncounterErrorsTotalCounter;
8
+ constructor();
9
+ requestDurationSeconds(labels: Labels & {
10
+ result?: 'true' | 'false';
11
+ }, durationInSeconds: number): void;
12
+ didResolveOperation(labels: Labels): void;
13
+ didEncounterErrors(labels: Labels): void;
14
+ }
15
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.GraphqlMetricsService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const prom_client_1 = require("prom-client");
15
+ const constants_1 = require("./constants");
16
+ let GraphqlMetricsService = class GraphqlMetricsService {
17
+ constructor() {
18
+ this.requestDurationSecondsHistogram = new prom_client_1.Histogram({
19
+ name: constants_1.GRAPHQL_ENDPOINT_REQUEST_DURATION_SECONDS,
20
+ help: 'Duration of GraphQL requests in seconds',
21
+ labelNames: ['operationName', 'operation', 'result'],
22
+ });
23
+ this.didResolveOperationTotalCounter = new prom_client_1.Counter({
24
+ name: constants_1.GRAPHQL_ENDPOINT_DID_RESOLVE_OPERATION_TOTAL,
25
+ help: 'Total number of successfully resolved GraphQL operations',
26
+ labelNames: ['operationName', 'operation'],
27
+ });
28
+ this.didEncounterErrorsTotalCounter = new prom_client_1.Counter({
29
+ name: constants_1.GRAPHQL_ENDPOINT_DID_ENCOUNTER_ERRORS_TOTAL,
30
+ help: 'Total number of errors encountered during GraphQL request processing',
31
+ labelNames: ['operationName', 'operation'],
32
+ });
33
+ }
34
+ requestDurationSeconds(labels, durationInSeconds) {
35
+ this.requestDurationSecondsHistogram.observe(labels, durationInSeconds);
36
+ }
37
+ didResolveOperation(labels) {
38
+ this.didResolveOperationTotalCounter.inc(labels);
39
+ }
40
+ didEncounterErrors(labels) {
41
+ this.didEncounterErrorsTotalCounter.inc(labels);
42
+ }
43
+ };
44
+ exports.GraphqlMetricsService = GraphqlMetricsService;
45
+ exports.GraphqlMetricsService = GraphqlMetricsService = __decorate([
46
+ (0, common_1.Injectable)(),
47
+ __metadata("design:paramtypes", [])
48
+ ], GraphqlMetricsService);
49
+ //# sourceMappingURL=graphql-metrics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"graphql-metrics.service.js","sourceRoot":"","sources":["../../../../src/endpoint-microservice/metrics/graphql/graphql-metrics.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAAiD;AACjD,2CAI6D;AAOtD,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IAmBhC;QAlBiB,oCAA+B,GAAG,IAAI,uBAAS,CAAC;YAC/D,IAAI,EAAE,qDAAyC;YAC/C,IAAI,EAAE,yCAAyC;YAC/C,UAAU,EAAE,CAAC,eAAe,EAAE,WAAW,EAAE,QAAQ,CAAC;SACrD,CAAC,CAAC;QAEc,oCAA+B,GAAG,IAAI,qBAAO,CAAC;YAC7D,IAAI,EAAE,wDAA4C;YAClD,IAAI,EAAE,0DAA0D;YAChE,UAAU,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC;SAC3C,CAAC,CAAC;QAEc,mCAA8B,GAAG,IAAI,qBAAO,CAAC;YAC5D,IAAI,EAAE,uDAA2C;YACjD,IAAI,EAAE,sEAAsE;YAC5E,UAAU,EAAE,CAAC,eAAe,EAAE,WAAW,CAAC;SAC3C,CAAC,CAAC;IAEY,CAAC;IAET,sBAAsB,CAC3B,MAEC,EACD,iBAAyB;QAEzB,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IAEM,mBAAmB,CAAC,MAAc;QACvC,IAAI,CAAC,+BAA+B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACnD,CAAC;IAEM,kBAAkB,CAAC,MAAc;QACtC,IAAI,CAAC,8BAA8B,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AArCY,sDAAqB;gCAArB,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAqCjC"}
@@ -0,0 +1,2 @@
1
+ export declare class MetricsModule {
2
+ }
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MetricsModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const database_module_1 = require("../database/database.module");
13
+ const graphql_metrics_plugin_1 = require("./graphql/graphql-metrics.plugin");
14
+ const graphql_metrics_service_1 = require("./graphql/graphql-metrics.service");
15
+ const rest_metrics_interceptor_1 = require("./rest/rest-metrics.interceptor");
16
+ const rest_metrics_service_1 = require("./rest/rest-metrics.service");
17
+ let MetricsModule = class MetricsModule {
18
+ };
19
+ exports.MetricsModule = MetricsModule;
20
+ exports.MetricsModule = MetricsModule = __decorate([
21
+ (0, common_1.Module)({
22
+ imports: [database_module_1.DatabaseModule, config_1.ConfigModule],
23
+ providers: [
24
+ graphql_metrics_service_1.GraphqlMetricsService,
25
+ graphql_metrics_plugin_1.GraphqlMetricsPlugin,
26
+ rest_metrics_service_1.RestMetricsService,
27
+ rest_metrics_interceptor_1.RestMetricsInterceptor,
28
+ ],
29
+ exports: [graphql_metrics_plugin_1.GraphqlMetricsPlugin, rest_metrics_service_1.RestMetricsService, rest_metrics_interceptor_1.RestMetricsInterceptor],
30
+ })
31
+ ], MetricsModule);
32
+ //# sourceMappingURL=metrics.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics.module.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/metrics/metrics.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,2CAA8C;AAC9C,iEAAoF;AACpF,6EAAwG;AACxG,+EAA0G;AAC1G,8EAAyG;AACzG,sEAAiG;AAY1F,IAAM,aAAa,GAAnB,MAAM,aAAa;CAAG,CAAA;AAAhB,sCAAa;wBAAb,aAAa;IAVzB,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,gCAAc,EAAE,qBAAY,CAAC;QACvC,SAAS,EAAE;YACT,+CAAqB;YACrB,6CAAoB;YACpB,yCAAkB;YAClB,iDAAsB;SACvB;QACD,OAAO,EAAE,CAAC,6CAAoB,EAAE,yCAAkB,EAAE,iDAAsB,CAAC;KAC5E,CAAC;GACW,aAAa,CAAG"}
@@ -0,0 +1,3 @@
1
+ export declare const REST_REQUEST_DURATION_SECONDS = "rest_request_duration_seconds";
2
+ export declare const REST_REQUESTS_TOTAL = "rest_requests_total";
3
+ export declare const REST_REQUEST_ERRORS_TOTAL = "rest_requests_errors_total";
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.REST_REQUEST_ERRORS_TOTAL = exports.REST_REQUESTS_TOTAL = exports.REST_REQUEST_DURATION_SECONDS = void 0;
4
+ exports.REST_REQUEST_DURATION_SECONDS = 'rest_request_duration_seconds';
5
+ exports.REST_REQUESTS_TOTAL = 'rest_requests_total';
6
+ exports.REST_REQUEST_ERRORS_TOTAL = 'rest_requests_errors_total';
7
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/endpoint-microservice/metrics/rest/constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,6BAA6B,GAAG,+BAA+B,CAAC;AAEhE,QAAA,mBAAmB,GAAG,qBAAqB,CAAC;AAE5C,QAAA,yBAAyB,GAAG,4BAA4B,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { CallHandler, ExecutionContext, NestInterceptor } from '@nestjs/common';
2
+ import { Observable } from 'rxjs';
3
+ import { RestMetricsService } from 'src/endpoint-microservice/metrics/rest/rest-metrics.service';
4
+ export declare class RestMetricsInterceptor implements NestInterceptor {
5
+ private readonly metricsService;
6
+ constructor(metricsService: RestMetricsService);
7
+ intercept(context: ExecutionContext, next: CallHandler): Observable<any>;
8
+ metricsProcess(context: ExecutionContext, startAt: [number, number]): void;
9
+ }
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RestMetricsInterceptor = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const rxjs_1 = require("rxjs");
15
+ const rest_metrics_service_1 = require("./rest-metrics.service");
16
+ const utils_1 = require("../utils");
17
+ let RestMetricsInterceptor = class RestMetricsInterceptor {
18
+ constructor(metricsService) {
19
+ this.metricsService = metricsService;
20
+ }
21
+ intercept(context, next) {
22
+ const startAt = process.hrtime();
23
+ return next.handle().pipe((0, rxjs_1.finalize)(() => {
24
+ this.metricsProcess(context, startAt);
25
+ }));
26
+ }
27
+ metricsProcess(context, startAt) {
28
+ const labels = getLabels(context);
29
+ this.metricsService.requestDurationSeconds(labels, (0, utils_1.getDurationInSeconds)(startAt));
30
+ this.metricsService.requestTotal(labels);
31
+ if (labels.status >= 400) {
32
+ this.metricsService.requestErrors(labels);
33
+ }
34
+ }
35
+ };
36
+ exports.RestMetricsInterceptor = RestMetricsInterceptor;
37
+ exports.RestMetricsInterceptor = RestMetricsInterceptor = __decorate([
38
+ (0, common_1.Injectable)(),
39
+ __metadata("design:paramtypes", [rest_metrics_service_1.RestMetricsService])
40
+ ], RestMetricsInterceptor);
41
+ function getLabels(context) {
42
+ const request = context.switchToHttp().getRequest();
43
+ const response = context.switchToHttp().getResponse();
44
+ const method = request.method;
45
+ const route = request.route ? request.route.path : request.path;
46
+ const status = response.statusCode.toString();
47
+ return {
48
+ method,
49
+ route,
50
+ status,
51
+ };
52
+ }
53
+ //# sourceMappingURL=rest-metrics.interceptor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-metrics.interceptor.js","sourceRoot":"","sources":["../../../../src/endpoint-microservice/metrics/rest/rest-metrics.interceptor.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAKwB;AACxB,+BAA4C;AAC5C,iEAAiG;AACjG,oCAA+E;AAGxE,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,YAA6B,cAAkC;QAAlC,mBAAc,GAAd,cAAc,CAAoB;IAAG,CAAC;IAEnE,SAAS,CAAC,OAAyB,EAAE,IAAiB;QACpD,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAEjC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAQ,EAAC,GAAG,EAAE;YACZ,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxC,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,OAAyB,EAAE,OAAyB;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,CAAC;QAElC,IAAI,CAAC,cAAc,CAAC,sBAAsB,CACxC,MAAM,EACN,IAAA,4BAAoB,EAAC,OAAO,CAAC,CAC9B,CAAC;QAEF,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;YACzB,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;CACF,CAAA;AA3BY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,mBAAU,GAAE;qCAEkC,yCAAkB;GADpD,sBAAsB,CA2BlC;AAED,SAAS,SAAS,CAAC,OAAyB;IAC1C,MAAM,OAAO,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,WAAW,EAAE,CAAC;IAEtD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAC9B,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC;IAChE,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;IAE9C,OAAO;QACL,MAAM;QACN,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ type Labels = {
2
+ method?: string;
3
+ route?: string;
4
+ status?: string;
5
+ };
6
+ export declare class RestMetricsService {
7
+ private readonly requestDurationSecondsHistogram;
8
+ private readonly requestTotalCounter;
9
+ private readonly requestErrorsTotalCounter;
10
+ constructor();
11
+ requestDurationSeconds(labels: Labels, durationInSeconds: number): void;
12
+ requestTotal(labels: Labels): void;
13
+ requestErrors(labels: Labels): void;
14
+ }
15
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.RestMetricsService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const prom_client_1 = require("prom-client");
15
+ const constants_1 = require("./constants");
16
+ let RestMetricsService = class RestMetricsService {
17
+ constructor() {
18
+ this.requestDurationSecondsHistogram = prom_client_1.register.getSingleMetric(constants_1.REST_REQUEST_DURATION_SECONDS) ||
19
+ new prom_client_1.Histogram({
20
+ name: constants_1.REST_REQUEST_DURATION_SECONDS,
21
+ help: 'Duration of REST API requests in seconds',
22
+ labelNames: ['method', 'route', 'status'],
23
+ });
24
+ this.requestTotalCounter = prom_client_1.register.getSingleMetric(constants_1.REST_REQUESTS_TOTAL) ||
25
+ new prom_client_1.Counter({
26
+ name: constants_1.REST_REQUESTS_TOTAL,
27
+ help: 'Total number of REST API requests',
28
+ labelNames: ['method', 'route', 'status'],
29
+ });
30
+ this.requestErrorsTotalCounter = prom_client_1.register.getSingleMetric(constants_1.REST_REQUEST_ERRORS_TOTAL) ||
31
+ new prom_client_1.Counter({
32
+ name: constants_1.REST_REQUEST_ERRORS_TOTAL,
33
+ help: 'Total number of errors encountered during REST API request processing',
34
+ labelNames: ['method', 'route', 'status'],
35
+ });
36
+ }
37
+ requestDurationSeconds(labels, durationInSeconds) {
38
+ this.requestDurationSecondsHistogram.observe(labels, durationInSeconds);
39
+ }
40
+ requestTotal(labels) {
41
+ this.requestTotalCounter.inc(labels);
42
+ }
43
+ requestErrors(labels) {
44
+ this.requestErrorsTotalCounter.inc(labels);
45
+ }
46
+ };
47
+ exports.RestMetricsService = RestMetricsService;
48
+ exports.RestMetricsService = RestMetricsService = __decorate([
49
+ (0, common_1.Injectable)(),
50
+ __metadata("design:paramtypes", [])
51
+ ], RestMetricsService);
52
+ //# sourceMappingURL=rest-metrics.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rest-metrics.service.js","sourceRoot":"","sources":["../../../../src/endpoint-microservice/metrics/rest/rest-metrics.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAC5C,6CAA2D;AAC3D,2CAI0D;AASnD,IAAM,kBAAkB,GAAxB,MAAM,kBAAkB;IAyB7B;QAxBiB,oCAA+B,GAC7C,sBAAQ,CAAC,eAAe,CAAC,yCAA6B,CAAe;YACtE,IAAI,uBAAS,CAAC;gBACZ,IAAI,EAAE,yCAA6B;gBACnC,IAAI,EAAE,0CAA0C;gBAChD,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;aAC1C,CAAC,CAAC;QAEY,wBAAmB,GACjC,sBAAQ,CAAC,eAAe,CAAC,+BAAmB,CAAa;YAC1D,IAAI,qBAAO,CAAC;gBACV,IAAI,EAAE,+BAAmB;gBACzB,IAAI,EAAE,mCAAmC;gBACzC,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;aAC1C,CAAC,CAAC;QAEY,8BAAyB,GACvC,sBAAQ,CAAC,eAAe,CAAC,qCAAyB,CAAa;YAChE,IAAI,qBAAO,CAAC;gBACV,IAAI,EAAE,qCAAyB;gBAC/B,IAAI,EAAE,uEAAuE;gBAC7E,UAAU,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC;aAC1C,CAAC,CAAC;IAEU,CAAC;IAET,sBAAsB,CAAC,MAAc,EAAE,iBAAyB;QACrE,IAAI,CAAC,+BAA+B,CAAC,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IAC1E,CAAC;IAEM,YAAY,CAAC,MAAc;QAChC,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEM,aAAa,CAAC,MAAc;QACjC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;CACF,CAAA;AAtCY,gDAAkB;6BAAlB,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;;GACA,kBAAkB,CAsC9B"}
@@ -0,0 +1 @@
1
+ export declare function getDurationInSeconds(startAt: [number, number]): number;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getDurationInSeconds = void 0;
4
+ function getDurationInSeconds(startAt) {
5
+ const [seconds, nanoseconds] = process.hrtime(startAt);
6
+ return seconds + nanoseconds / 1e9;
7
+ }
8
+ exports.getDurationInSeconds = getDurationInSeconds;
9
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/metrics/utils.ts"],"names":[],"mappings":";;;AAAA,SAAgB,oBAAoB,CAAC,OAAyB;IAC5D,MAAM,CAAC,OAAO,EAAE,WAAW,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvD,OAAO,OAAO,GAAG,WAAW,GAAG,GAAG,CAAC;AACrC,CAAC;AAHD,oDAGC"}
@@ -0,0 +1,4 @@
1
+ import { OnModuleInit } from '@nestjs/common';
2
+ export declare class MetricsApiModule implements OnModuleInit {
3
+ onModuleInit(): void;
4
+ }
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.MetricsApiModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const config_1 = require("@nestjs/config");
12
+ const client = require("prom-client");
13
+ const database_module_1 = require("../database/database.module");
14
+ const metrics_enabled_guard_1 = require("./metrics-enabled.guard");
15
+ const metrics_controller_1 = require("./metrics.controller");
16
+ let MetricsApiModule = class MetricsApiModule {
17
+ onModuleInit() {
18
+ client.collectDefaultMetrics();
19
+ }
20
+ };
21
+ exports.MetricsApiModule = MetricsApiModule;
22
+ exports.MetricsApiModule = MetricsApiModule = __decorate([
23
+ (0, common_1.Module)({
24
+ imports: [database_module_1.DatabaseModule, config_1.ConfigModule],
25
+ providers: [metrics_enabled_guard_1.MetricsEnabledGuard],
26
+ controllers: [metrics_controller_1.MetricsController],
27
+ })
28
+ ], MetricsApiModule);
29
+ //# sourceMappingURL=metrics-api.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metrics-api.module.js","sourceRoot":"","sources":["../../../src/endpoint-microservice/metrics-api/metrics-api.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAsD;AACtD,2CAA8C;AAC9C,sCAAsC;AACtC,iEAAoF;AACpF,mEAAkG;AAClG,6DAA6F;AAOtF,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAAY;QACV,MAAM,CAAC,qBAAqB,EAAE,CAAC;IACjC,CAAC;CACF,CAAA;AAJY,4CAAgB;2BAAhB,gBAAgB;IAL5B,IAAA,eAAM,EAAC;QACN,OAAO,EAAE,CAAC,gCAAc,EAAE,qBAAY,CAAC;QACvC,SAAS,EAAE,CAAC,2CAAmB,CAAC;QAChC,WAAW,EAAE,CAAC,sCAAiB,CAAC;KACjC,CAAC;GACW,gBAAgB,CAI5B"}
@@ -0,0 +1,7 @@
1
+ import { CanActivate } from '@nestjs/common';
2
+ import { ConfigService } from '@nestjs/config';
3
+ export declare class MetricsEnabledGuard implements CanActivate {
4
+ private readonly configService;
5
+ constructor(configService: ConfigService);
6
+ canActivate(): boolean;
7
+ }