@zorionapp/gg-core 5.0.25 → 5.0.26
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/package.json +2 -8
- package/src/gg-config/app.config.d.ts +0 -2
- package/src/gg-config/app.config.js +0 -10
- package/src/gg-config/app.config.js.map +1 -1
- package/src/gg-core/gg-core.module.js +1 -1
- package/src/gg-core/gg-core.module.js.map +1 -1
- package/src/gg-errors/gg-errors.module-options.d.ts +0 -1
- package/src/gg-errors/gg-errors.module.js +0 -2
- package/src/gg-errors/gg-errors.module.js.map +1 -1
- package/src/gg-errors/gg-exception.service.d.ts +1 -3
- package/src/gg-errors/gg-exception.service.js +2 -32
- package/src/gg-errors/gg-exception.service.js.map +1 -1
- package/src/gg-metrics/gg-metrics.module.d.ts +3 -2
- package/src/gg-metrics/gg-metrics.module.js +16 -0
- package/src/gg-metrics/gg-metrics.module.js.map +1 -1
- package/src/gg-micro/gg-server-rmq.js +28 -4
- package/src/gg-micro/gg-server-rmq.js.map +1 -1
- package/src/index.d.ts +0 -1
- package/src/index.js +0 -1
- package/src/index.js.map +1 -1
- package/src/gg-errors/gcp-error-event.interface.d.ts +0 -18
- package/src/gg-errors/gcp-error-event.interface.js +0 -3
- package/src/gg-errors/gcp-error-event.interface.js.map +0 -1
- package/src/gg-errors/gcp-error-reporting.service.d.ts +0 -11
- package/src/gg-errors/gcp-error-reporting.service.js +0 -71
- package/src/gg-errors/gcp-error-reporting.service.js.map +0 -1
- package/src/gg-gcp/gcp-trace-and-profiler.d.ts +0 -1
- package/src/gg-gcp/gcp-trace-and-profiler.js +0 -52
- package/src/gg-gcp/gcp-trace-and-profiler.js.map +0 -1
- package/src/gg-gcp/index.d.ts +0 -1
- package/src/gg-gcp/index.js +0 -5
- package/src/gg-gcp/index.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,12 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zorionapp/gg-core",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.26",
|
|
4
4
|
"type": "commonjs",
|
|
5
5
|
"dependencies": {
|
|
6
6
|
"cache-manager": "5.2.4",
|
|
7
|
-
"
|
|
8
|
-
"@google-cloud/profiler": "6.0.0",
|
|
9
|
-
"@google-cloud/trace-agent": "7.1.2"
|
|
7
|
+
"class-transformer-validator": "^0.9.1"
|
|
10
8
|
},
|
|
11
9
|
"peerDependencies": {
|
|
12
10
|
"cache-manager-ioredis-yet": "^2.0.0",
|
|
@@ -14,9 +12,6 @@
|
|
|
14
12
|
"amqplib": "^0.10.3",
|
|
15
13
|
"helmet": "^7.1.0",
|
|
16
14
|
"pino-http": "^8.5.0",
|
|
17
|
-
"@google-cloud/error-reporting": "^3.0.5",
|
|
18
|
-
"@google-cloud/profiler": "^6.0.0",
|
|
19
|
-
"@google-cloud/trace-agent": "^7.1.2",
|
|
20
15
|
"@horizon-republic/nominal-types": "^2.0.14",
|
|
21
16
|
"@mikro-orm/core": "^5.0.0 || ^6.0.0",
|
|
22
17
|
"@mikro-orm/migrations": "^6.2.8",
|
|
@@ -36,7 +31,6 @@
|
|
|
36
31
|
"@willsoto/nestjs-prometheus": "^5.5.1",
|
|
37
32
|
"axios": "^1.0.0",
|
|
38
33
|
"class-transformer": "^0.5.1",
|
|
39
|
-
"class-transformer-validator": "^0.9.1",
|
|
40
34
|
"class-validator": "^0.14.0",
|
|
41
35
|
"express": "^4.18.0",
|
|
42
36
|
"get-root-path": "^2.0.2",
|
|
@@ -9,8 +9,6 @@ declare class AppConfig {
|
|
|
9
9
|
readonly swaggerEnabled: boolean;
|
|
10
10
|
readonly logFormat: 'json' | 'pretty';
|
|
11
11
|
readonly logLevel: LogLevel;
|
|
12
|
-
readonly gcpOpsEnabled: boolean;
|
|
13
|
-
readonly gcpTraceIgnoreUrls: string[];
|
|
14
12
|
}
|
|
15
13
|
export declare const appConfig: (() => Promise<AppConfig>) & import("@nestjs/config").ConfigFactoryKeyHost<Promise<AppConfig>>;
|
|
16
14
|
export {};
|
|
@@ -17,8 +17,6 @@ let AppConfig = class AppConfig {
|
|
|
17
17
|
this.swaggerEnabled = (0, lodash_1.get)(process.env, 'SWAGGER_ENABLED', false);
|
|
18
18
|
this.logFormat = (0, lodash_1.get)(process.env, 'LOG_FORMAT', 'json');
|
|
19
19
|
this.logLevel = (0, lodash_1.get)(process.env, 'LOG_LEVEL', 'info');
|
|
20
|
-
this.gcpOpsEnabled = (0, lodash_1.get)(process.env, 'GCP_OPS_ENABLED', false);
|
|
21
|
-
this.gcpTraceIgnoreUrls = (0, lodash_1.get)(process.env, 'GCP_TRACE_IGNORE_URLS', '').split(',');
|
|
22
20
|
}
|
|
23
21
|
};
|
|
24
22
|
tslib_1.__decorate([
|
|
@@ -63,14 +61,6 @@ tslib_1.__decorate([
|
|
|
63
61
|
(0, class_validator_1.IsNotEmpty)(),
|
|
64
62
|
tslib_1.__metadata("design:type", String)
|
|
65
63
|
], AppConfig.prototype, "logLevel", void 0);
|
|
66
|
-
tslib_1.__decorate([
|
|
67
|
-
(0, class_validator_1.IsOptional)(),
|
|
68
|
-
tslib_1.__metadata("design:type", Boolean)
|
|
69
|
-
], AppConfig.prototype, "gcpOpsEnabled", void 0);
|
|
70
|
-
tslib_1.__decorate([
|
|
71
|
-
(0, class_validator_1.IsOptional)(),
|
|
72
|
-
tslib_1.__metadata("design:type", Array)
|
|
73
|
-
], AppConfig.prototype, "gcpTraceIgnoreUrls", void 0);
|
|
74
64
|
AppConfig = tslib_1.__decorate([
|
|
75
65
|
(0, common_1.Injectable)()
|
|
76
66
|
], AppConfig);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/app.config.ts"],"names":[],"mappings":";;;;AAAA,2CAAsD;AACtD,qDAAwF;AACxF,mCAA6B;AAC7B,uDAAmD;AAGnD,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QAGkB,YAAO,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAI9D,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAI5C,eAAU,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAIrD,SAAI,GAAW,MAAM,CAAC,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAI1D,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAI3D,UAAK,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC;QAGjE,mBAAc,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAY,CAAC;QAGhF,cAAS,GAAsB,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAsB,CAAC;QAG3F,aAAQ,GAAa,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"app.config.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-config/app.config.ts"],"names":[],"mappings":";;;;AAAA,2CAAsD;AACtD,qDAAwF;AACxF,mCAA6B;AAC7B,uDAAmD;AAGnD,IAAM,SAAS,GAAf,MAAM,SAAS;IAAf;QAGkB,YAAO,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;QAI9D,SAAI,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;QAI5C,eAAU,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;QAIrD,SAAI,GAAW,MAAM,CAAC,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC;QAI1D,WAAM,GAAW,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QAI3D,UAAK,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,MAAM,CAAC;QAGjE,mBAAc,GAAY,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,iBAAiB,EAAE,KAAK,CAAY,CAAC;QAGhF,cAAS,GAAsB,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,YAAY,EAAE,MAAM,CAAsB,CAAC;QAG3F,aAAQ,GAAa,IAAA,YAAG,EAAC,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,MAAM,CAAa,CAAC;IACzF,CAAC;CAAA,CAAA;AA9BiB;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;0CACmE;AAI9D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCACiD;AAI5C;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;6CAC0D;AAIrD;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCAC+D;AAI1D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;yCACgE;AAI3D;IAFf,IAAA,4BAAU,GAAE;IACZ,IAAA,2BAAS,GAAE;;wCACqE;AAGjE;IADf,IAAA,4BAAU,GAAE;;iDACmF;AAGhF;IADf,IAAA,4BAAU,GAAE;;4CAC8F;AAG3F;IADf,IAAA,4BAAU,GAAE;;2CAC0E;AAhCnF,SAAS;IADd,IAAA,mBAAU,GAAE;GACP,SAAS,CAiCd;AAEY,QAAA,SAAS,GAAG,IAAA,gCAAc,EAAC,SAAS,CAAC,CAAC"}
|
|
@@ -39,7 +39,7 @@ let GgCoreModule = GgCoreModule_1 = class GgCoreModule {
|
|
|
39
39
|
gg_metrics_1.GgMetricsModule.forRoot(),
|
|
40
40
|
/** Exceptions */
|
|
41
41
|
gg_errors_module_1.GgErrorsModule.asyncForRoot({
|
|
42
|
-
useFactory: () => ({ domain: options.errors.domain
|
|
42
|
+
useFactory: () => ({ domain: options.errors.domain }),
|
|
43
43
|
}),
|
|
44
44
|
];
|
|
45
45
|
if (options.db)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gg-core.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-core/gg-core.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAA+F;AAC/F,8DAAyD;AACzD,0CAA0C;AAC1C,iEAA4D;AAC5D,sCAAwC;AACxC,4CAAyD;AACzD,gDAAgD;AAChD,oEAA+D;AAC/D,sFAAiF;AACjF,oEAA+D;AAC/D,8CAAgD;AAChD,0CAAwC;AAExC,6DAAwD;AAExD;;GAEG;AAGI,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAChB,MAAM,CAAC,YAAY,CAAC,OAAsB;QAC/C,MAAM,OAAO,GAAG;YACd,kDAAkD;YAClD,0BAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,qBAAS,EAAE,sBAAW,EAAE,oBAAS,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAExG,uDAAuD;YACvD,oBAAW,CAAC,OAAO,EAAE;YAErB,yBAAyB;YACzB,iCAAc,CAAC,OAAO,EAAE;YAExB,kBAAkB;YAClB,6BAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YAEvC,+CAA+C;YAE/C,yBAAyB;YACzB,+BAAa,CAAC,OAAO,EAAE;YAEvB,mBAAmB;YACnB,6CAAoB,CAAC,OAAO,EAAE;YAE9B,mBAAmB;YACnB,4BAAe,CAAC,OAAO,EAAE;YAEzB,iBAAiB;YACjB,iCAAc,CAAC,YAAY,CAAC;gBAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"gg-core.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-core/gg-core.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAA+F;AAC/F,8DAAyD;AACzD,0CAA0C;AAC1C,iEAA4D;AAC5D,sCAAwC;AACxC,4CAAyD;AACzD,gDAAgD;AAChD,oEAA+D;AAC/D,sFAAiF;AACjF,oEAA+D;AAC/D,8CAAgD;AAChD,0CAAwC;AAExC,6DAAwD;AAExD;;GAEG;AAGI,IAAM,YAAY,oBAAlB,MAAM,YAAY;IAChB,MAAM,CAAC,YAAY,CAAC,OAAsB;QAC/C,MAAM,OAAO,GAAG;YACd,kDAAkD;YAClD,0BAAc,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC,qBAAS,EAAE,sBAAW,EAAE,oBAAS,EAAE,GAAG,CAAC,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC;YAExG,uDAAuD;YACvD,oBAAW,CAAC,OAAO,EAAE;YAErB,yBAAyB;YACzB,iCAAc,CAAC,OAAO,EAAE;YAExB,kBAAkB;YAClB,6BAAY,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC;YAEvC,+CAA+C;YAE/C,yBAAyB;YACzB,+BAAa,CAAC,OAAO,EAAE;YAEvB,mBAAmB;YACnB,6CAAoB,CAAC,OAAO,EAAE;YAE9B,mBAAmB;YACnB,4BAAe,CAAC,OAAO,EAAE;YAEzB,iBAAiB;YACjB,iCAAc,CAAC,YAAY,CAAC;gBAC1B,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;aACtD,CAAC;SACH,CAAC;QAEF,IAAI,OAAO,CAAC,EAAE;YAAE,OAAO,CAAC,IAAI,CAAC,4BAAc,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC;QAEjE,OAAO,EAAE,MAAM,EAAE,cAAY,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACxE,CAAC;IAEM,SAAS,CAAC,QAA4B;QAC3C,QAAQ,CAAC,KAAK,CAAC,qCAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAxCY,oCAAY;uBAAZ,YAAY;IAFxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,YAAY,CAwCxB"}
|
|
@@ -3,6 +3,5 @@ export declare const GG_ERRORS_MODULE_OPTIONS_TOKEN = "GG_ERRORS_MODULE_OPTIONS"
|
|
|
3
3
|
export interface GgErrorsOptions {
|
|
4
4
|
/** @example GGEX - gg-example */
|
|
5
5
|
domain: string;
|
|
6
|
-
gcpIgnoreCodes?: string[];
|
|
7
6
|
}
|
|
8
7
|
export type GgErrorsModuleOptions = Pick<ModuleMetadata, 'imports'> & Pick<FactoryProvider<GgErrorsOptions>, 'useFactory' | 'inject'>;
|
|
@@ -5,7 +5,6 @@ exports.GgErrorsModule = void 0;
|
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const common_1 = require("@nestjs/common");
|
|
7
7
|
const core_1 = require("@nestjs/core");
|
|
8
|
-
const gcp_error_reporting_service_1 = require("./gcp-error-reporting.service");
|
|
9
8
|
const gg_errors_exception_filter_1 = require("./gg-errors-exception.filter");
|
|
10
9
|
const gg_errors_module_options_1 = require("./gg-errors.module-options");
|
|
11
10
|
const gg_exception_service_1 = require("./gg-exception.service");
|
|
@@ -15,7 +14,6 @@ let GgErrorsModule = GgErrorsModule_1 = class GgErrorsModule {
|
|
|
15
14
|
global: true,
|
|
16
15
|
module: GgErrorsModule_1,
|
|
17
16
|
providers: [
|
|
18
|
-
gcp_error_reporting_service_1.GCPErrorReportingService,
|
|
19
17
|
gg_exception_service_1.GgExceptionService,
|
|
20
18
|
gg_errors_exception_filter_1.GgErrorsExceptionFilter,
|
|
21
19
|
{ provide: core_1.APP_FILTER, useClass: gg_errors_exception_filter_1.GgErrorsExceptionFilter },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gg-errors.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-errors/gg-errors.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAuD;AACvD,uCAA0C;AAC1C
|
|
1
|
+
{"version":3,"file":"gg-errors.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-errors/gg-errors.module.ts"],"names":[],"mappings":";;;;;AAAA,2CAAuD;AACvD,uCAA0C;AAC1C,6EAAuE;AACvE,yEAAmG;AACnG,iEAA4D;AAGrD,IAAM,cAAc,sBAApB,MAAM,cAAc;IAClB,MAAM,CAAC,YAAY,CAAC,OAA+B;QACxD,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,MAAM,EAAE,gBAAc;YACtB,SAAS,EAAE;gBACT,yCAAkB;gBAClB,oDAAuB;gBACvB,EAAE,OAAO,EAAE,iBAAU,EAAE,QAAQ,EAAE,oDAAuB,EAAE;gBAC1D;oBACE,OAAO,EAAE,yDAA8B;oBACvC,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,MAAM,EAAE,OAAO,CAAC,MAAM;iBACvB;aACF;SACF,CAAC;IACJ,CAAC;CACF,CAAA;AAjBY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,cAAc,CAiB1B"}
|
|
@@ -2,14 +2,12 @@ import { HttpArgumentsHost, RpcArgumentsHost } from '@nestjs/common/interfaces';
|
|
|
2
2
|
import { RpcException } from '@nestjs/microservices';
|
|
3
3
|
import { Response } from 'express';
|
|
4
4
|
import { AuthorizedUser } from '../gg-auth';
|
|
5
|
-
import { GCPErrorReportingService } from './gcp-error-reporting.service';
|
|
6
5
|
import { GgErrorsOptions } from './gg-errors.module-options';
|
|
7
6
|
export declare class GgExceptionService {
|
|
8
7
|
private readonly errorsOptions;
|
|
9
|
-
private readonly gcpReporting;
|
|
10
8
|
private readonly user;
|
|
11
9
|
private readonly logger;
|
|
12
|
-
constructor(errorsOptions: GgErrorsOptions,
|
|
10
|
+
constructor(errorsOptions: GgErrorsOptions, user: AuthorizedUser);
|
|
13
11
|
handleHttp(httpArgumentsHost: HttpArgumentsHost, exception: any): Response<any, Record<string, any>>;
|
|
14
12
|
/**
|
|
15
13
|
* RPC exception can be instantiated as HttpException or GgException by default
|
|
@@ -11,12 +11,10 @@ const core_1 = require("@mikro-orm/core");
|
|
|
11
11
|
const gg_auth_1 = require("../gg-auth");
|
|
12
12
|
const exception_domain_codes_1 = require("./exception.domain-codes");
|
|
13
13
|
const gg_exception_1 = require("./exceptions/gg.exception");
|
|
14
|
-
const gcp_error_reporting_service_1 = require("./gcp-error-reporting.service");
|
|
15
14
|
const gg_errors_module_options_1 = require("./gg-errors.module-options");
|
|
16
15
|
let GgExceptionService = GgExceptionService_1 = class GgExceptionService {
|
|
17
|
-
constructor(errorsOptions,
|
|
16
|
+
constructor(errorsOptions, user) {
|
|
18
17
|
this.errorsOptions = errorsOptions;
|
|
19
|
-
this.gcpReporting = gcpReporting;
|
|
20
18
|
this.user = user;
|
|
21
19
|
this.logger = new common_1.Logger(GgExceptionService_1.name);
|
|
22
20
|
}
|
|
@@ -62,22 +60,6 @@ let GgExceptionService = GgExceptionService_1 = class GgExceptionService {
|
|
|
62
60
|
body = this.getBodyForBaseError(domainCode, request, statusCode, exception);
|
|
63
61
|
this.logger.error(exception, new Error().stack);
|
|
64
62
|
}
|
|
65
|
-
if (!this.errorsOptions.gcpIgnoreCodes?.length || !this.errorsOptions.gcpIgnoreCodes.includes(domainCode)) {
|
|
66
|
-
if (exception?.message)
|
|
67
|
-
exception.message = `[${domainCode}] ${exception.message}`;
|
|
68
|
-
this.gcpReporting.reportError(exception, {
|
|
69
|
-
url: (body?.path ?? request.url),
|
|
70
|
-
httpMethod: request.method,
|
|
71
|
-
referrer: request.headers.referer,
|
|
72
|
-
remoteIp: request.ip,
|
|
73
|
-
userAgent: request.headers['user-agent'],
|
|
74
|
-
responseStatusCode: statusCode,
|
|
75
|
-
user: this.user?.dto?.ggId,
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
this.logger.debug({ msg: 'HTTPError ignored by GCP ignore codes filter', domainCode });
|
|
80
|
-
}
|
|
81
63
|
return response.status(statusCode).json(body);
|
|
82
64
|
}
|
|
83
65
|
/**
|
|
@@ -107,17 +89,6 @@ let GgExceptionService = GgExceptionService_1 = class GgExceptionService {
|
|
|
107
89
|
const rpcMethod = (0, lodash_1.get)(rpcArgumentsHost.getContext(), 'args[2]', 'RPC');
|
|
108
90
|
this.logger.error(`RPC Exception caught: ${exception.message}`, exception.stack);
|
|
109
91
|
const body = this.getBodyForRPCError(domainCode, statusCode, requestId, rpcMethod, exception);
|
|
110
|
-
if (!this.errorsOptions.gcpIgnoreCodes?.length || !this.errorsOptions.gcpIgnoreCodes.includes(domainCode)) {
|
|
111
|
-
this.gcpReporting.reportEvent({
|
|
112
|
-
message: `[${domainCode}] ${body.message}`,
|
|
113
|
-
url: body.path,
|
|
114
|
-
responseStatusCode: body.statusCode,
|
|
115
|
-
user: this.user?.dto?.ggId,
|
|
116
|
-
});
|
|
117
|
-
}
|
|
118
|
-
else {
|
|
119
|
-
this.logger.debug({ msg: 'RPCError ignored by GCP ignore codes filter', domainCode });
|
|
120
|
-
}
|
|
121
92
|
return new microservices_1.RpcException(body);
|
|
122
93
|
}
|
|
123
94
|
getBodyForInternalError(domainCode, request, statusCode, exception) {
|
|
@@ -204,7 +175,6 @@ exports.GgExceptionService = GgExceptionService;
|
|
|
204
175
|
exports.GgExceptionService = GgExceptionService = GgExceptionService_1 = tslib_1.__decorate([
|
|
205
176
|
(0, common_1.Injectable)(),
|
|
206
177
|
tslib_1.__param(0, (0, common_1.Inject)(gg_errors_module_options_1.GG_ERRORS_MODULE_OPTIONS_TOKEN)),
|
|
207
|
-
tslib_1.__metadata("design:paramtypes", [Object,
|
|
208
|
-
gg_auth_1.AuthorizedUser])
|
|
178
|
+
tslib_1.__metadata("design:paramtypes", [Object, gg_auth_1.AuthorizedUser])
|
|
209
179
|
], GgExceptionService);
|
|
210
180
|
//# sourceMappingURL=gg-exception.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gg-exception.service.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-errors/gg-exception.service.ts"],"names":[],"mappings":";;;;;AAAA,2CAUwB;AAGxB,yDAAqD;AAGrD,mCAA2D;AAC3D,+BAA0B;AAE1B,0CAAkD;AAClD,wCAA4C;AAC5C,qEAAgE;AAChE,4DAAwD;AACxD
|
|
1
|
+
{"version":3,"file":"gg-exception.service.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-errors/gg-exception.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { DynamicModule } from '@nestjs/common';
|
|
2
|
-
export declare class GgMetricsModule {
|
|
1
|
+
import { DynamicModule, OnModuleInit } from '@nestjs/common';
|
|
2
|
+
export declare class GgMetricsModule implements OnModuleInit {
|
|
3
3
|
static forRoot(): DynamicModule;
|
|
4
|
+
onModuleInit(): void;
|
|
4
5
|
}
|
|
@@ -2,8 +2,19 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GgMetricsModule = void 0;
|
|
4
4
|
const nestjs_prometheus_1 = require("@willsoto/nestjs-prometheus");
|
|
5
|
+
const prom_client_1 = require("prom-client");
|
|
5
6
|
const gg_config_1 = require("../gg-config");
|
|
6
7
|
const gg_metrics_controller_1 = require("./gg-metrics.controller");
|
|
8
|
+
// V8 heap-space metrics are not collectible under Bun (JSC has no
|
|
9
|
+
// V8 heap spaces; the node:v8 shim throws NotImplementedError on access
|
|
10
|
+
// and breaks the entire /metrics endpoint). Remove them unconditionally —
|
|
11
|
+
// on Node the metrics are rarely used in dashboards/alerts; on Bun they
|
|
12
|
+
// are meaningless by construction.
|
|
13
|
+
const BUN_INCOMPATIBLE_METRICS = [
|
|
14
|
+
'nodejs_heap_space_size_total_bytes',
|
|
15
|
+
'nodejs_heap_space_size_used_bytes',
|
|
16
|
+
'nodejs_heap_space_size_available_bytes',
|
|
17
|
+
];
|
|
7
18
|
class GgMetricsModule {
|
|
8
19
|
static forRoot() {
|
|
9
20
|
return {
|
|
@@ -26,6 +37,11 @@ class GgMetricsModule {
|
|
|
26
37
|
exports: [nestjs_prometheus_1.PrometheusModule],
|
|
27
38
|
};
|
|
28
39
|
}
|
|
40
|
+
onModuleInit() {
|
|
41
|
+
for (const name of BUN_INCOMPATIBLE_METRICS) {
|
|
42
|
+
prom_client_1.register.removeSingleMetric(name);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
29
45
|
}
|
|
30
46
|
exports.GgMetricsModule = GgMetricsModule;
|
|
31
47
|
//# sourceMappingURL=gg-metrics.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gg-metrics.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-metrics/gg-metrics.module.ts"],"names":[],"mappings":";;;AAEA,mEAA+D;AAC/D,4CAAyC;AACzC,mEAA8D;AAE9D,MAAa,eAAe;IACnB,MAAM,CAAC,OAAO;QACnB,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,oCAAgB,CAAC,aAAa,CAAC;oBAC7B,MAAM,EAAE,CAAC,qBAAS,CAAC,GAAG,CAAC;oBACvB,UAAU,EAAE,2CAAmB;oBAC/B,UAAU,EAAE,CAAC,OAAqC,EAAE,EAAE;wBACpD,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC7C,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC;wBAC3D,OAAO;4BACL,kBAAkB,EAAE,MAAM;4BAC1B,aAAa,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE;yBACjF,CAAC;oBACJ,CAAC;iBACF,CAAC;aACH;YACD,OAAO,EAAE,CAAC,oCAAgB,CAAC;SAC5B,CAAC;IACJ,CAAC;CACF;
|
|
1
|
+
{"version":3,"file":"gg-metrics.module.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-metrics/gg-metrics.module.ts"],"names":[],"mappings":";;;AAEA,mEAA+D;AAC/D,6CAAuC;AACvC,4CAAyC;AACzC,mEAA8D;AAE9D,kEAAkE;AAClE,wEAAwE;AACxE,0EAA0E;AAC1E,wEAAwE;AACxE,mCAAmC;AACnC,MAAM,wBAAwB,GAAG;IAC/B,oCAAoC;IACpC,mCAAmC;IACnC,wCAAwC;CACzC,CAAC;AAEF,MAAa,eAAe;IACnB,MAAM,CAAC,OAAO;QACnB,OAAO;YACL,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,IAAI;YACZ,OAAO,EAAE;gBACP,oCAAgB,CAAC,aAAa,CAAC;oBAC7B,MAAM,EAAE,CAAC,qBAAS,CAAC,GAAG,CAAC;oBACvB,UAAU,EAAE,2CAAmB;oBAC/B,UAAU,EAAE,CAAC,OAAqC,EAAE,EAAE;wBACpD,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;wBAC7C,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,MAAM,EAAE,CAAC;wBAC3D,OAAO;4BACL,kBAAkB,EAAE,MAAM;4BAC1B,aAAa,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,IAAI,EAAE,cAAc,EAAE,OAAO,CAAC,UAAU,EAAE;yBACjF,CAAC;oBACJ,CAAC;iBACF,CAAC;aACH;YACD,OAAO,EAAE,CAAC,oCAAgB,CAAC;SAC5B,CAAC;IACJ,CAAC;IAEM,YAAY;QACjB,KAAK,MAAM,IAAI,IAAI,wBAAwB,EAAE,CAAC;YAC5C,sBAAQ,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;QACpC,CAAC;IACH,CAAC;CACF;AA5BD,0CA4BC"}
|
|
@@ -143,10 +143,34 @@ class GgServerRmq extends server_rmq_1.ServerRMQ {
|
|
|
143
143
|
return;
|
|
144
144
|
}
|
|
145
145
|
try {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
146
|
+
// Materialise the handler result before publishing. NestJS wraps every handler in
|
|
147
|
+
// a cold Observable via ExternalContextCreator; the parent ServerRMQ.send() does
|
|
148
|
+
// subscribe under Node, but under Bun the subscription does not deliver values
|
|
149
|
+
// before the worker advances, leaving the caller's firstValueFrom() with an empty
|
|
150
|
+
// stream ("no elements in sequence"). Explicit lastValueFrom() — same pattern as
|
|
151
|
+
// handleEvent — reliably awaits the value across both runtimes.
|
|
152
|
+
const resultOrStream = await handler(packet.data, rmqContext);
|
|
153
|
+
const result = (0, rxjs_1.isObservable)(resultOrStream)
|
|
154
|
+
? await (0, rxjs_1.lastValueFrom)(resultOrStream, { defaultValue: undefined })
|
|
155
|
+
: resultOrStream;
|
|
156
|
+
// Send TWO separate packets (mimicking parent's createObserver pattern in
|
|
157
|
+
// @nestjs/microservices/server/server.js). The client's ClientProxy.createObserver
|
|
158
|
+
// treats a combined `{response, isDisposed: true}` packet with `response === undefined`
|
|
159
|
+
// as a complete-without-emit (falls into the `else if (isDisposed)` branch, skipping
|
|
160
|
+
// observer.next), causing firstValueFrom() on the caller side to throw EmptyError.
|
|
161
|
+
// Splitting into a value packet followed by a dispose packet ensures `next` always
|
|
162
|
+
// fires before `complete`, matching NestJS's wire-format expectations.
|
|
163
|
+
//
|
|
164
|
+
// Inner try/catch isolates publish failures from the outer handler-error path. Without
|
|
165
|
+
// it, a channel close between the two writes would re-enter the outer catch and emit
|
|
166
|
+
// a spurious 500 error on the same correlationId — non-deterministic for the caller,
|
|
167
|
+
// which may have already consumed the value packet from the first sendMessage.
|
|
168
|
+
try {
|
|
169
|
+
this.sendMessage({ id: packet.id, response: result }, properties.replyTo, properties.correlationId);
|
|
170
|
+
this.sendMessage({ id: packet.id, isDisposed: true }, properties.replyTo, properties.correlationId);
|
|
171
|
+
}
|
|
172
|
+
catch (sendError) {
|
|
173
|
+
this.logger.error(`Failed to send RPC response [${rmqContext.getPattern()}]: ${sendError?.message}`);
|
|
150
174
|
}
|
|
151
175
|
this.safeAck(channel, message);
|
|
152
176
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gg-server-rmq.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-micro/gg-server-rmq.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"gg-server-rmq.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-micro/gg-server-rmq.ts"],"names":[],"mappings":"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"}
|
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -7,7 +7,6 @@ tslib_1.__exportStar(require("./gg-config"), exports);
|
|
|
7
7
|
tslib_1.__exportStar(require("./gg-core"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./gg-database"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./gg-errors"), exports);
|
|
10
|
-
tslib_1.__exportStar(require("./gg-gcp"), exports);
|
|
11
10
|
tslib_1.__exportStar(require("./gg-kernel"), exports);
|
|
12
11
|
tslib_1.__exportStar(require("./gg-metrics"), exports);
|
|
13
12
|
tslib_1.__exportStar(require("./gg-micro"), exports);
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/gg-core/src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,oDAA0B;AAC1B,wDAA8B;AAC9B,sDAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/gg-core/src/index.ts"],"names":[],"mappings":";;;AAAA,oDAA0B;AAC1B,qDAA2B;AAC3B,sDAA4B;AAC5B,oDAA0B;AAC1B,wDAA8B;AAC9B,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B;AAC7B,qDAA2B;AAC3B,qDAA2B;AAC3B,uDAA6B"}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
export interface GCPErrorEvent {
|
|
2
|
-
message?: string;
|
|
3
|
-
httpMethod?: string;
|
|
4
|
-
url?: string;
|
|
5
|
-
userAgent?: string;
|
|
6
|
-
referrer?: string;
|
|
7
|
-
responseStatusCode?: number;
|
|
8
|
-
remoteIp?: string;
|
|
9
|
-
user?: string;
|
|
10
|
-
request?: {
|
|
11
|
-
url: string;
|
|
12
|
-
method: string;
|
|
13
|
-
userAgent: string;
|
|
14
|
-
statusCode: number;
|
|
15
|
-
referrer: string;
|
|
16
|
-
remoteAddress: string;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-error-event.interface.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-errors/gcp-error-event.interface.ts"],"names":[],"mappings":""}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { ConfigType } from '@nestjs/config';
|
|
2
|
-
import { appConfig } from '../gg-config';
|
|
3
|
-
import { GCPErrorEvent } from './gcp-error-event.interface';
|
|
4
|
-
export declare class GCPErrorReportingService {
|
|
5
|
-
protected readonly appConf: ConfigType<typeof appConfig>;
|
|
6
|
-
private readonly logger;
|
|
7
|
-
private readonly errors;
|
|
8
|
-
constructor(appConf: ConfigType<typeof appConfig>);
|
|
9
|
-
reportEvent(event: GCPErrorEvent): void;
|
|
10
|
-
reportError(err: Error, event?: GCPErrorEvent): void;
|
|
11
|
-
}
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var GCPErrorReportingService_1;
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.GCPErrorReportingService = void 0;
|
|
5
|
-
const tslib_1 = require("tslib");
|
|
6
|
-
const error_reporting_1 = require("@google-cloud/error-reporting");
|
|
7
|
-
const common_1 = require("@nestjs/common");
|
|
8
|
-
const gg_config_1 = require("../gg-config");
|
|
9
|
-
let GCPErrorReportingService = GCPErrorReportingService_1 = class GCPErrorReportingService {
|
|
10
|
-
constructor(appConf) {
|
|
11
|
-
this.appConf = appConf;
|
|
12
|
-
this.logger = new common_1.Logger(GCPErrorReportingService_1.name);
|
|
13
|
-
if (this.appConf.gcpOpsEnabled) {
|
|
14
|
-
this.errors = new error_reporting_1.ErrorReporting({
|
|
15
|
-
reportMode: 'always',
|
|
16
|
-
reportUnhandledRejections: true,
|
|
17
|
-
serviceContext: {
|
|
18
|
-
service: this.appConf.name,
|
|
19
|
-
version: this.appConf.appVersion,
|
|
20
|
-
},
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
reportEvent(event) {
|
|
25
|
-
if (!this.errors || !event?.message)
|
|
26
|
-
return;
|
|
27
|
-
try {
|
|
28
|
-
const errorEvent = this.errors
|
|
29
|
-
.event()
|
|
30
|
-
.setMessage(event.message)
|
|
31
|
-
.setHttpMethod(event.httpMethod)
|
|
32
|
-
.setUrl(event.url)
|
|
33
|
-
.setUserAgent(event.userAgent)
|
|
34
|
-
.setReferrer(event.referrer)
|
|
35
|
-
.setResponseStatusCode(event.responseStatusCode)
|
|
36
|
-
.setRemoteIp(event.remoteIp)
|
|
37
|
-
.setUser(event.user);
|
|
38
|
-
// if (event.request) errorEvent = errorEvent.consumeRequestInformation(event.request);
|
|
39
|
-
this.errors.report(errorEvent);
|
|
40
|
-
}
|
|
41
|
-
catch (err) {
|
|
42
|
-
this.logger.error({ msg: 'GCPErrorReporting.event failed with exception', err });
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
reportError(err, event) {
|
|
46
|
-
if (!this.errors)
|
|
47
|
-
return;
|
|
48
|
-
try {
|
|
49
|
-
this.logger.debug({ msg: 'Reporting error to GCP', error: err?.message, event });
|
|
50
|
-
this.errors
|
|
51
|
-
.report(err)
|
|
52
|
-
.setUser(event?.user)
|
|
53
|
-
.setHttpMethod(event?.httpMethod)
|
|
54
|
-
.setUrl(event?.url)
|
|
55
|
-
.setUserAgent(event?.userAgent)
|
|
56
|
-
.setReferrer(event?.referrer)
|
|
57
|
-
.setResponseStatusCode(event?.responseStatusCode)
|
|
58
|
-
.setRemoteIp(event?.remoteIp);
|
|
59
|
-
}
|
|
60
|
-
catch (err) {
|
|
61
|
-
this.logger.error({ msg: 'GCPErrorReporting.error failed with exception', err });
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
};
|
|
65
|
-
exports.GCPErrorReportingService = GCPErrorReportingService;
|
|
66
|
-
exports.GCPErrorReportingService = GCPErrorReportingService = GCPErrorReportingService_1 = tslib_1.__decorate([
|
|
67
|
-
(0, common_1.Injectable)(),
|
|
68
|
-
tslib_1.__param(0, (0, common_1.Inject)(gg_config_1.appConfig.KEY)),
|
|
69
|
-
tslib_1.__metadata("design:paramtypes", [void 0])
|
|
70
|
-
], GCPErrorReportingService);
|
|
71
|
-
//# sourceMappingURL=gcp-error-reporting.service.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-error-reporting.service.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-errors/gcp-error-reporting.service.ts"],"names":[],"mappings":";;;;;AAAA,mEAA+D;AAC/D,2CAA4D;AAG5D,4CAAyC;AAIlC,IAAM,wBAAwB,gCAA9B,MAAM,wBAAwB;IAGnC,YAA0C,OAAwD;QAArC,YAAO,GAAP,OAAO,CAA8B;QAFjF,WAAM,GAAG,IAAI,eAAM,CAAC,0BAAwB,CAAC,IAAI,CAAC,CAAC;QAGlE,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;YAC/B,IAAI,CAAC,MAAM,GAAG,IAAI,gCAAc,CAAC;gBAC/B,UAAU,EAAE,QAAQ;gBACpB,yBAAyB,EAAE,IAAI;gBAC/B,cAAc,EAAE;oBACd,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;oBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,UAAU;iBACjC;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,KAAoB;QACrC,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,OAAO;YAAE,OAAO;QAC5C,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM;iBAC3B,KAAK,EAAE;iBACP,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC;iBACzB,aAAa,CAAC,KAAK,CAAC,UAAU,CAAC;iBAC/B,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;iBACjB,YAAY,CAAC,KAAK,CAAC,SAAS,CAAC;iBAC7B,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;iBAC3B,qBAAqB,CAAC,KAAK,CAAC,kBAAkB,CAAC;iBAC/C,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC;iBAC3B,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAEvB,uFAAuF;YAEvF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACjC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,+CAA+C,EAAE,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;IAEM,WAAW,CAAC,GAAU,EAAE,KAAqB;QAClD,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QACzB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,wBAAwB,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;YAEjF,IAAI,CAAC,MAAM;iBACR,MAAM,CAAC,GAAG,CAAC;iBACX,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;iBACpB,aAAa,CAAC,KAAK,EAAE,UAAU,CAAC;iBAChC,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC;iBAClB,YAAY,CAAC,KAAK,EAAE,SAAS,CAAC;iBAC9B,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC;iBAC5B,qBAAqB,CAAC,KAAK,EAAE,kBAAkB,CAAC;iBAChD,WAAW,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,+CAA+C,EAAE,GAAG,EAAE,CAAC,CAAC;QACnF,CAAC;IACH,CAAC;CACF,CAAA;AAxDY,4DAAwB;mCAAxB,wBAAwB;IADpC,IAAA,mBAAU,GAAE;IAIS,mBAAA,IAAA,eAAM,EAAC,qBAAS,CAAC,GAAG,CAAC,CAAA;;GAH9B,wBAAwB,CAwDpC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import 'dotenv/config';
|
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const common_1 = require("@nestjs/common");
|
|
4
|
-
require("dotenv/config");
|
|
5
|
-
const process = require("process");
|
|
6
|
-
const logger = new common_1.Logger('GCP-Trace-And-Profiler');
|
|
7
|
-
const DEFAULT_IGNORE_URLS = ['/health', '/metrics'];
|
|
8
|
-
const isEnableGCP = process.env.GCP_OPS_ENABLED === 'true';
|
|
9
|
-
if (!isEnableGCP) {
|
|
10
|
-
logger.log('GCP ops disabled in env');
|
|
11
|
-
}
|
|
12
|
-
if (isEnableGCP) {
|
|
13
|
-
(async () => {
|
|
14
|
-
try {
|
|
15
|
-
const { start: startGCPTrace } = await Promise.resolve().then(() => require('@google-cloud/trace-agent'));
|
|
16
|
-
const { start: startGCPProfiler } = await Promise.resolve().then(() => require('@google-cloud/profiler'));
|
|
17
|
-
const serviceSuffix = ['production', 'stage'].includes(process.env.NODE_ENV) ? '' : `-${process.env.NODE_ENV}`;
|
|
18
|
-
const serviceName = process.env.APP_NAME;
|
|
19
|
-
const serviceVersion = process.env.APP_VERSION;
|
|
20
|
-
const ignoreUrlsString = process.env.GCP_TRACE_IGNORE_URLS || '';
|
|
21
|
-
const ignoreUrls = ignoreUrlsString.length ? ignoreUrlsString.split(',') : DEFAULT_IGNORE_URLS;
|
|
22
|
-
const baseOpts = {
|
|
23
|
-
serviceContext: {
|
|
24
|
-
service: `${serviceName}${serviceSuffix}`,
|
|
25
|
-
version: serviceVersion,
|
|
26
|
-
},
|
|
27
|
-
};
|
|
28
|
-
logger.log(`GCP ops starting: ${baseOpts.serviceContext.service} ${baseOpts.serviceContext.version}`);
|
|
29
|
-
if (serviceSuffix) {
|
|
30
|
-
logger.debug(`GCP ops config: ${JSON.stringify({ ...baseOpts, ignoreUrls })}`);
|
|
31
|
-
}
|
|
32
|
-
startGCPTrace({ ...baseOpts, ignoreUrls });
|
|
33
|
-
await startProfiler({ ...baseOpts }, startGCPProfiler);
|
|
34
|
-
}
|
|
35
|
-
catch (e) {
|
|
36
|
-
logger.error(`Failed to start GCP ops: ${e}`);
|
|
37
|
-
}
|
|
38
|
-
})();
|
|
39
|
-
}
|
|
40
|
-
async function startProfiler(config, startGCPProfiler) {
|
|
41
|
-
for (let i = 0; i < 3; i++) {
|
|
42
|
-
try {
|
|
43
|
-
await startGCPProfiler(config);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
catch (e) {
|
|
47
|
-
logger.error(`Failed to start GCP profiler: ${e}`);
|
|
48
|
-
}
|
|
49
|
-
await new Promise((r) => setTimeout(r, 1500));
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
//# sourceMappingURL=gcp-trace-and-profiler.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"gcp-trace-and-profiler.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-gcp/gcp-trace-and-profiler.ts"],"names":[],"mappings":";;AAAA,2CAAwC;AACxC,yBAAuB;AACvB,mCAAmC;AAEnC,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,wBAAwB,CAAC,CAAC;AAEpD,MAAM,mBAAmB,GAAG,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;AAEpD,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,MAAM,CAAC;AAE3D,IAAI,CAAC,WAAW,EAAE,CAAC;IACjB,MAAM,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;AACxC,CAAC;AAED,IAAI,WAAW,EAAE,CAAC;IAChB,CAAC,KAAK,IAAI,EAAE;QACV,IAAI,CAAC;YACH,MAAM,EAAE,KAAK,EAAE,aAAa,EAAE,GAAG,2CAAa,2BAA2B,EAAC,CAAC;YAC3E,MAAM,EAAE,KAAK,EAAE,gBAAgB,EAAE,GAAG,2CAAa,wBAAwB,EAAC,CAAC;YAE3E,MAAM,aAAa,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC/G,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YACzC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;YAC/C,MAAM,gBAAgB,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,IAAI,EAAE,CAAC;YACjE,MAAM,UAAU,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC;YAE/F,MAAM,QAAQ,GAAG;gBACf,cAAc,EAAE;oBACd,OAAO,EAAE,GAAG,WAAW,GAAG,aAAa,EAAE;oBACzC,OAAO,EAAE,cAAc;iBACxB;aACF,CAAC;YAEF,MAAM,CAAC,GAAG,CAAC,qBAAqB,QAAQ,CAAC,cAAc,CAAC,OAAO,IAAI,QAAQ,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC,CAAC;YAEtG,IAAI,aAAa,EAAE,CAAC;gBAClB,MAAM,CAAC,KAAK,CAAC,mBAAmB,IAAI,CAAC,SAAS,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;YACjF,CAAC;YAED,aAAa,CAAC,EAAE,GAAG,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC;YAC3C,MAAM,aAAa,CAAC,EAAE,GAAG,QAAQ,EAAE,EAAE,gBAAgB,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAC,EAAE,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,EAAE,CAAC;AACP,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAkD,EAAE,gBAAqB;IACpG,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3B,IAAI,CAAC;YACH,MAAM,gBAAgB,CAAC,MAAM,CAAC,CAAC;YAE/B,OAAO;QACT,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,CAAC,iCAAiC,CAAC,EAAE,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;IAChD,CAAC;AACH,CAAC"}
|
package/src/gg-gcp/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './gcp-trace-and-profiler';
|
package/src/gg-gcp/index.js
DELETED
package/src/gg-gcp/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../libs/gg-core/src/gg-gcp/index.ts"],"names":[],"mappings":";;;AAAA,mEAAyC"}
|