@mondart/nestjs-common-module-health-check 3.3.10 → 3.3.12

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/README.md CHANGED
@@ -61,6 +61,22 @@ HealthCheckModule.register({
61
61
  });
62
62
  ```
63
63
 
64
+ Use `timeouts` to set a deadline in milliseconds per indicator. Omitted or
65
+ invalid values use the defaults (database 1000, http 2000, redis 2000,
66
+ bull 2000, kafka 2000). The deprecated `redisTimeoutMs` still applies to
67
+ `redis`/`bull` when `timeouts` doesn't set them:
68
+
69
+ ```ts
70
+ HealthCheckModule.register({
71
+ redis: { host: 'localhost', port: 6379 },
72
+ kafka: { clientId: 'my-service', brokers: ['localhost:9092'] },
73
+ timeouts: { database: 3000, redis: 1000, kafka: 5000 },
74
+ });
75
+ ```
76
+
77
+ Keep the slowest timeout below the orchestrator's probe timeout, or the probe
78
+ fails before the check reports which dependency is slow.
79
+
64
80
  Use `/live` for container restart decisions and `/ready` for load-balancer
65
81
  traffic decisions.
66
82
 
@@ -76,6 +92,12 @@ traffic decisions.
76
92
  | `GET /health-check/bull` | The configured `bull` connection only. |
77
93
  | `GET /health-check/kafka` | The configured `kafka` brokers only. |
78
94
 
95
+ A single-dependency route whose option isn't set (or `database: false` for
96
+ `/database`) reports that indicator as `down` with "health check is not
97
+ configured". Redis, Bull and Kafka each keep one connection open between
98
+ probes and replace it after a failure; errors are reported without the
99
+ underlying driver message.
100
+
79
101
  If a `messagePattern` option is passed to `register`/`registerAsync`, the
80
102
  same aggregate check is also exposed as a `@MessagePattern` handler, so it
81
103
  can be invoked over a microservice transport in addition to the HTTP route.
@@ -9,9 +9,17 @@ export interface HealthCheckReadinessOptions {
9
9
  bull?: boolean;
10
10
  kafka?: boolean;
11
11
  }
12
+ export interface HealthCheckTimeoutOptions {
13
+ database?: number;
14
+ http?: number;
15
+ redis?: number;
16
+ bull?: number;
17
+ kafka?: number;
18
+ }
12
19
  export interface HealthCheckModuleOptions {
13
20
  messagePattern?: string;
14
21
  redisTimeoutMs?: number;
22
+ timeouts?: HealthCheckTimeoutOptions;
15
23
  http?: {
16
24
  docsUrl: string;
17
25
  };
@@ -1 +1 @@
1
- {"version":3,"file":"health-check-options.interface.d.ts","sourceRoot":"","sources":["../src/health-check-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AAEzE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC;KAC7B,CAAC;IAEF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,MACnB,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;CAChE;AAED,MAAM,WAAW,6BAA8B,SAAQ,IAAI,CACzD,cAAc,EACd,SAAS,CACV;IACC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,CACX,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;CACnE"}
1
+ {"version":3,"file":"health-check-options.interface.d.ts","sourceRoot":"","sources":["../src/health-check-options.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,GAAG,MAAM,KAAK,CAAC;AAEtB,eAAO,MAAM,2BAA2B,gCAAgC,CAAC;AAEzE,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAOD,MAAM,WAAW,yBAAyB;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,cAAc,CAAC,EAAE,MAAM,CAAC;IAKxB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,EAAE,yBAAyB,CAAC;IACrC,IAAI,CAAC,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,IAAI,CAAC,EAAE;QACL,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,GAAG,CAAC,EAAE,OAAO,CAAC;KACf,CAAC;IACF,KAAK,CAAC,EAAE;QACN,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC,EAAE,WAAW,CAAC;QACnB,GAAG,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC;KAC7B,CAAC;IAEF,QAAQ,CAAC,EAAE,OAAO,CAAC;IAKnB,SAAS,CAAC,EAAE,2BAA2B,CAAC;CACzC;AAED,MAAM,WAAW,wBAAwB;IACvC,mBAAmB,EAAE,MACnB,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;CAChE;AAED,MAAM,WAAW,6BAA8B,SAAQ,IAAI,CACzD,cAAc,EACd,SAAS,CACV;IACC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,QAAQ,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC1C,WAAW,CAAC,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;IAC7C,UAAU,CAAC,EAAE,CACX,GAAG,IAAI,EAAE,GAAG,EAAE,KACX,OAAO,CAAC,wBAAwB,CAAC,GAAG,wBAAwB,CAAC;CACnE"}
@@ -1,15 +1,15 @@
1
1
  import { Type, OnModuleDestroy } from '@nestjs/common';
2
- import { HealthCheckService, HttpHealthIndicator, MicroserviceHealthIndicator, TypeOrmHealthIndicator } from '@nestjs/terminus';
2
+ import { HealthCheckService, HttpHealthIndicator, TypeOrmHealthIndicator } from '@nestjs/terminus';
3
3
  import { HealthCheckModuleOptions } from './health-check-options.interface';
4
4
  export declare class HealthCheckController implements OnModuleDestroy {
5
5
  private health;
6
6
  private http;
7
7
  private db;
8
- private microservice;
9
8
  private options;
10
9
  private readonly redisClients;
11
- private readonly redisProbes;
12
- constructor(health: HealthCheckService, http: HttpHealthIndicator, db: TypeOrmHealthIndicator, microservice: MicroserviceHealthIndicator, options: HealthCheckModuleOptions);
10
+ private kafkaAdmin?;
11
+ private readonly probes;
12
+ constructor(health: HealthCheckService, http: HttpHealthIndicator, db: TypeOrmHealthIndicator, options: HealthCheckModuleOptions);
13
13
  checkAll(): Promise<import("@nestjs/terminus").HealthCheckResult<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>>, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>>>, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>>>>>;
14
14
  checkLive(): {
15
15
  status: string;
@@ -43,11 +43,30 @@ export declare class HealthCheckController implements OnModuleDestroy {
43
43
  status: "up";
44
44
  };
45
45
  }>>>;
46
- checkKafka(): Promise<import("@nestjs/terminus").HealthCheckResult<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<string>, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<string>>, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & import("@nestjs/terminus").HealthIndicatorResult<string>>>>;
46
+ checkKafka(): Promise<import("@nestjs/terminus").HealthCheckResult<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & {
47
+ [key: string]: {
48
+ status: "up";
49
+ };
50
+ }, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & {
51
+ [key: string]: {
52
+ status: "up";
53
+ };
54
+ }>, Partial<import("@nestjs/terminus").HealthIndicatorResult<string, import("@nestjs/terminus").HealthIndicatorStatus, Record<string, any>> & {
55
+ [key: string]: {
56
+ status: "up";
57
+ };
58
+ }>>>;
47
59
  onModuleDestroy(): void;
60
+ private shareProbe;
61
+ private withTimeout;
62
+ private notConfigured;
48
63
  private pingRedis;
49
64
  private runRedisProbe;
65
+ private pingDatabase;
66
+ private pingHttp;
50
67
  private pingKafka;
68
+ private runKafkaProbe;
69
+ private timeoutFor;
51
70
  private isReadinessIndicatorEnabled;
52
71
  }
53
72
  export declare function createHealthCheckController(messagePattern?: string): Type<HealthCheckController>;
@@ -1 +1 @@
1
- {"version":3,"file":"health-check.controller.d.ts","sourceRoot":"","sources":["../src/health-check.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,IAAI,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGhF,OAAO,EAGL,kBAAkB,EAClB,mBAAmB,EACnB,2BAA2B,EAC3B,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,wBAAwB,EACzB,MAAM,kCAAkC,CAAC;AAY1C,qBAIa,qBAAsB,YAAW,eAAe;IAOzD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;IAEpB,OAAO,CAAC,OAAO;IAXjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;gBAEM,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,mBAAmB,EACzB,EAAE,EAAE,sBAAsB,EAC1B,YAAY,EAAE,2BAA2B,EAEzC,OAAO,EAAE,wBAAwB;IAU3C,QAAQ;IAqCR,SAAS;;;IAST,UAAU;IAWV,SAAS;IAQT,YAAY;IAOZ,UAAU;;oBA1F2B,IAAI;;;;oBAAJ,IAAI;;;;oBAAJ,IAAI;;;IAmGzC,SAAS;;oBAnG4B,IAAI;;;;oBAAJ,IAAI;;;;oBAAJ,IAAI;;;IA0GzC,UAAU;IAIV,eAAe,IAAI,IAAI;IAKvB,OAAO,CAAC,SAAS;YAUH,aAAa;IAiE3B,OAAO,CAAC,SAAS;IAejB,OAAO,CAAC,2BAA2B;CAKpC;AAQD,wBAAgB,2BAA2B,CACzC,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAAC,qBAAqB,CAAC,CAqB7B"}
1
+ {"version":3,"file":"health-check.controller.d.ts","sourceRoot":"","sources":["../src/health-check.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAA2B,IAAI,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAIhF,OAAO,EAGL,kBAAkB,EAClB,mBAAmB,EACnB,sBAAsB,EAEvB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,wBAAwB,EAEzB,MAAM,kCAAkC,CAAC;AAY1C,qBAIa,qBAAsB,YAAW,eAAe;IAQzD,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,EAAE;IAEV,OAAO,CAAC,OAAO;IAXjB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA4B;IACzD,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAGnB;gBAEM,MAAM,EAAE,kBAAkB,EAC1B,IAAI,EAAE,mBAAmB,EACzB,EAAE,EAAE,sBAAsB,EAE1B,OAAO,EAAE,wBAAwB;IAU3C,QAAQ;IAmCR,SAAS;;;IAST,UAAU;IAOV,SAAS;IAMT,YAAY;IAOZ,UAAU;;oBAjF2B,IAAI;;;;oBAAJ,IAAI;;;;oBAAJ,IAAI;;;IA0FzC,SAAS;;oBA1F4B,IAAI;;;;oBAAJ,IAAI;;;;oBAAJ,IAAI;;;IAiGzC,UAAU;;oBAjG2B,IAAI;;;;oBAAJ,IAAI;;;;oBAAJ,IAAI;;;IAqGzC,eAAe,IAAI,IAAI;IAQvB,OAAO,CAAC,UAAU;YAWJ,WAAW;IAiBzB,OAAO,CAAC,aAAa;IASrB,OAAO,CAAC,SAAS;YAIH,aAAa;IAiD3B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,QAAQ;IAOhB,OAAO,CAAC,SAAS;YAKH,aAAa;IAuC3B,OAAO,CAAC,UAAU;IAIlB,OAAO,CAAC,2BAA2B;CAKpC;AAQD,wBAAgB,2BAA2B,CACzC,cAAc,CAAC,EAAE,MAAM,GACtB,IAAI,CAAC,qBAAqB,CAAC,CAqB7B"}
@@ -19,6 +19,7 @@ exports.HealthCheckController = void 0;
19
19
  exports.createHealthCheckController = createHealthCheckController;
20
20
  const common_1 = require("@nestjs/common");
21
21
  const ioredis_1 = __importDefault(require("ioredis"));
22
+ const kafkajs_1 = require("kafkajs");
22
23
  const microservices_1 = require("@nestjs/microservices");
23
24
  const terminus_1 = require("@nestjs/terminus");
24
25
  const health_check_options_interface_1 = require("./health-check-options.interface");
@@ -26,23 +27,22 @@ const nestjs_common_module_bottleneck_1 = require("@mondart/nestjs-common-module
26
27
  const nestjs_common_module_caching_1 = require("@mondart/nestjs-common-module-caching");
27
28
  const nestjs_common_module_iam_1 = require("@mondart/nestjs-common-module-iam");
28
29
  let HealthCheckController = class HealthCheckController {
29
- constructor(health, http, db, microservice, options) {
30
+ constructor(health, http, db, options) {
30
31
  this.health = health;
31
32
  this.http = http;
32
33
  this.db = db;
33
- this.microservice = microservice;
34
34
  this.options = options;
35
35
  this.redisClients = new Map();
36
- this.redisProbes = new Map();
36
+ this.probes = new Map();
37
37
  }
38
38
  checkAll() {
39
39
  const indicators = [];
40
40
  if (this.options.database !== false &&
41
41
  this.isReadinessIndicatorEnabled('database')) {
42
- indicators.push(() => this.db.pingCheck('typeorm'));
42
+ indicators.push(() => this.pingDatabase());
43
43
  }
44
44
  if (this.options.http && this.isReadinessIndicatorEnabled('http')) {
45
- indicators.push(() => this.http.pingCheck('app-docs', this.options.http.docsUrl));
45
+ indicators.push(() => this.pingHttp());
46
46
  }
47
47
  if (this.options.redis && this.isReadinessIndicatorEnabled('redis')) {
48
48
  indicators.push(() => this.pingRedis('redis', this.options.redis));
@@ -64,12 +64,10 @@ let HealthCheckController = class HealthCheckController {
64
64
  return this.checkAll();
65
65
  }
66
66
  checkHttp() {
67
- return this.health.check([
68
- () => this.http.pingCheck('app-docs', this.options?.http?.docsUrl),
69
- ]);
67
+ return this.health.check([() => this.pingHttp()]);
70
68
  }
71
69
  checkTypeOrm() {
72
- return this.health.check([async () => this.db.pingCheck('typeorm')]);
70
+ return this.health.check([() => this.pingDatabase()]);
73
71
  }
74
72
  checkRedis() {
75
73
  return this.health.check([
@@ -86,30 +84,47 @@ let HealthCheckController = class HealthCheckController {
86
84
  for (const client of this.redisClients.values())
87
85
  client.disconnect();
88
86
  this.redisClients.clear();
87
+ void this.kafkaAdmin?.disconnect().catch(() => undefined);
88
+ this.kafkaAdmin = undefined;
89
89
  }
90
- pingRedis(name, options) {
91
- const existing = this.redisProbes.get(name);
90
+ shareProbe(name, run) {
91
+ const existing = this.probes.get(name);
92
92
  if (existing)
93
93
  return existing;
94
- const probe = this.runRedisProbe(name, options).finally(() => {
95
- this.redisProbes.delete(name);
96
- });
97
- this.redisProbes.set(name, probe);
94
+ const probe = run().finally(() => this.probes.delete(name));
95
+ this.probes.set(name, probe);
98
96
  return probe;
99
97
  }
100
- async runRedisProbe(name, options) {
101
- if (!options) {
102
- throw new terminus_1.HealthCheckError('Redis health check failed', {
103
- [name]: {
104
- status: 'down',
105
- message: 'Redis health check is not configured',
106
- },
107
- });
98
+ async withTimeout(work, timeoutMs) {
99
+ let timer;
100
+ try {
101
+ await Promise.race([
102
+ work,
103
+ new Promise((_, reject) => {
104
+ timer = setTimeout(() => reject(new Error('Probe timeout')), timeoutMs);
105
+ }),
106
+ ]);
107
+ }
108
+ finally {
109
+ if (timer)
110
+ clearTimeout(timer);
108
111
  }
109
- const configuredTimeout = this.options.redisTimeoutMs;
110
- const timeoutMs = Number.isFinite(configuredTimeout) && configuredTimeout > 0
111
- ? configuredTimeout
112
- : 2000;
112
+ }
113
+ notConfigured(name, label) {
114
+ throw new terminus_1.HealthCheckError(`${label} health check failed`, {
115
+ [name]: {
116
+ status: 'down',
117
+ message: `${label} health check is not configured`,
118
+ },
119
+ });
120
+ }
121
+ pingRedis(name, options) {
122
+ return this.shareProbe(name, () => this.runRedisProbe(name, options));
123
+ }
124
+ async runRedisProbe(name, options) {
125
+ if (!options)
126
+ this.notConfigured(name, 'Redis');
127
+ const timeoutMs = this.timeoutFor(this.options.timeouts?.[name], this.timeoutFor(this.options.redisTimeoutMs, 2000));
113
128
  let client = this.redisClients.get(name);
114
129
  if (!client) {
115
130
  client = new ioredis_1.default({
@@ -128,19 +143,13 @@ let HealthCheckController = class HealthCheckController {
128
143
  client.on('error', () => undefined);
129
144
  this.redisClients.set(name, client);
130
145
  }
131
- let timer;
132
146
  try {
133
- await Promise.race([
134
- (async () => {
135
- if (client.status === 'wait')
136
- await client.connect();
137
- if ((await client.ping()) !== 'PONG')
138
- throw new Error('Unexpected reply');
139
- })(),
140
- new Promise((_, reject) => {
141
- timer = setTimeout(() => reject(new Error('Probe timeout')), timeoutMs);
142
- }),
143
- ]);
147
+ await this.withTimeout((async () => {
148
+ if (client.status === 'wait')
149
+ await client.connect();
150
+ if ((await client.ping()) !== 'PONG')
151
+ throw new Error('Unexpected reply');
152
+ })(), timeoutMs);
144
153
  return { [name]: { status: 'up' } };
145
154
  }
146
155
  catch {
@@ -151,25 +160,62 @@ let HealthCheckController = class HealthCheckController {
151
160
  [name]: { status: 'down', message: 'Redis PING failed or timed out' },
152
161
  });
153
162
  }
154
- finally {
155
- if (timer)
156
- clearTimeout(timer);
157
- }
158
163
  }
159
- pingKafka() {
160
- return this.microservice.pingCheck('kafka', {
161
- transport: microservices_1.Transport.KAFKA,
162
- timeout: 2000,
163
- options: {
164
- client: {
165
- clientId: this.options.kafka?.clientId,
166
- brokers: this.options.kafka?.brokers,
167
- sasl: this.options.kafka?.sasl,
168
- ssl: this.options.kafka?.ssl,
169
- },
170
- },
164
+ pingDatabase() {
165
+ if (this.options.database === false)
166
+ this.notConfigured('typeorm', 'Database');
167
+ return this.db.pingCheck('typeorm', {
168
+ timeout: this.timeoutFor(this.options.timeouts?.database, 1000),
169
+ });
170
+ }
171
+ pingHttp() {
172
+ if (!this.options.http?.docsUrl)
173
+ this.notConfigured('app-docs', 'HTTP');
174
+ return this.http.pingCheck('app-docs', this.options.http.docsUrl, {
175
+ timeout: this.timeoutFor(this.options.timeouts?.http, 2000),
171
176
  });
172
177
  }
178
+ pingKafka() {
179
+ return this.shareProbe('kafka', () => this.runKafkaProbe());
180
+ }
181
+ async runKafkaProbe() {
182
+ const options = this.options.kafka;
183
+ if (!options)
184
+ this.notConfigured('kafka', 'Kafka');
185
+ const timeoutMs = this.timeoutFor(this.options.timeouts?.kafka, 2000);
186
+ let admin = this.kafkaAdmin;
187
+ try {
188
+ await this.withTimeout((async () => {
189
+ if (!admin) {
190
+ admin = new kafkajs_1.Kafka({
191
+ clientId: options.clientId,
192
+ brokers: options.brokers,
193
+ sasl: options.sasl,
194
+ ssl: options.ssl,
195
+ connectionTimeout: timeoutMs,
196
+ requestTimeout: timeoutMs,
197
+ retry: { retries: 0 },
198
+ logLevel: kafkajs_1.logLevel.NOTHING,
199
+ }).admin();
200
+ this.kafkaAdmin = admin;
201
+ await admin.connect();
202
+ }
203
+ await admin.describeCluster();
204
+ })(), timeoutMs);
205
+ return { kafka: { status: 'up' } };
206
+ }
207
+ catch {
208
+ void admin?.disconnect().catch(() => undefined);
209
+ if (this.kafkaAdmin === admin)
210
+ this.kafkaAdmin = undefined;
211
+ throw new terminus_1.HealthCheckError('Kafka health check failed', {
212
+ kafka: { status: 'down', message: 'Kafka ping failed or timed out' },
213
+ });
214
+ }
215
+ }
216
+ timeoutFor(value, fallback) {
217
+ return Number.isFinite(value) && value > 0 ? value : fallback;
218
+ }
173
219
  isReadinessIndicatorEnabled(indicator) {
174
220
  return this.options.readiness?.[indicator] !== false;
175
221
  }
@@ -228,11 +274,10 @@ exports.HealthCheckController = HealthCheckController = __decorate([
228
274
  (0, nestjs_common_module_caching_1.SkipCachingInterceptorDecorator)(),
229
275
  (0, nestjs_common_module_bottleneck_1.SkipBottleneckDecorator)(),
230
276
  (0, common_1.Controller)('health-check'),
231
- __param(4, (0, common_1.Inject)(health_check_options_interface_1.HEALTH_CHECK_MODULE_OPTIONS)),
277
+ __param(3, (0, common_1.Inject)(health_check_options_interface_1.HEALTH_CHECK_MODULE_OPTIONS)),
232
278
  __metadata("design:paramtypes", [terminus_1.HealthCheckService,
233
279
  terminus_1.HttpHealthIndicator,
234
- terminus_1.TypeOrmHealthIndicator,
235
- terminus_1.MicroserviceHealthIndicator, Object])
280
+ terminus_1.TypeOrmHealthIndicator, Object])
236
281
  ], HealthCheckController);
237
282
  function createHealthCheckController(messagePattern) {
238
283
  class ConfiguredHealthCheckController extends HealthCheckController {
@@ -1 +1 @@
1
- {"version":3,"file":"health-check.controller.js","sourceRoot":"","sources":["../src/health-check.controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"health-check.controller.js","sourceRoot":"","sources":["../src/health-check.controller.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mondart/nestjs-common-module-health-check",
3
- "version": "3.3.10",
3
+ "version": "3.3.12",
4
4
  "description": "Health check module for NestJS.",
5
5
  "author": {
6
6
  "name": "Mondart"
@@ -20,7 +20,7 @@
20
20
  "@mondart/nestjs-common-module-bottleneck": "3.2.14",
21
21
  "@mondart/nestjs-common-module-caching": "3.2.6",
22
22
  "@mondart/nestjs-common-module-core": "3.2.12",
23
- "@mondart/nestjs-common-module-iam": "3.2.14",
23
+ "@mondart/nestjs-common-module-iam": "3.2.15",
24
24
  "@nestjs/axios": "^4.0.0",
25
25
  "@nestjs/microservices": "^11.1.10",
26
26
  "@nestjs/terminus": "^11.0.0",