@zorionapp/gg-core 5.0.20 → 5.0.21

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zorionapp/gg-core",
3
- "version": "5.0.20",
3
+ "version": "5.0.21",
4
4
  "type": "commonjs",
5
5
  "dependencies": {
6
6
  "cache-manager": "5.2.4",
@@ -3,6 +3,7 @@ import { RmqOptions } from '@nestjs/microservices/interfaces/microservice-config
3
3
  import { ServerRMQ } from '@nestjs/microservices/server/server-rmq';
4
4
  export type GgServerRmqOptions = RmqOptions['options'];
5
5
  export declare class GgServerRmq extends ServerRMQ {
6
+ private readonly eventDuration;
6
7
  constructor(options: GgServerRmqOptions);
7
8
  /**
8
9
  * CUSTOMIZED: Forces `noAck: false` regardless of options — we always ack/nack manually.
@@ -35,10 +35,20 @@ exports.GgServerRmq = void 0;
35
35
  const shared_utils_1 = require("@nestjs/common/utils/shared.utils");
36
36
  const ctx_host_1 = require("@nestjs/microservices/ctx-host");
37
37
  const server_rmq_1 = require("@nestjs/microservices/server/server-rmq");
38
+ const prom_client_1 = require("prom-client");
38
39
  const rxjs_1 = require("rxjs");
40
+ const EVENT_DURATION_METRIC = 'gg_rmq_event_duration_seconds';
39
41
  class GgServerRmq extends server_rmq_1.ServerRMQ {
40
42
  constructor(options) {
41
43
  super(options);
44
+ this.eventDuration =
45
+ prom_client_1.register.getSingleMetric(EVENT_DURATION_METRIC) ??
46
+ new prom_client_1.Histogram({
47
+ name: EVENT_DURATION_METRIC,
48
+ help: 'Duration of RMQ event handler execution in seconds',
49
+ labelNames: ['pattern', 'status'],
50
+ buckets: [0.005, 0.01, 0.025, 0.05, 0.1, 0.25, 0.5, 1, 2.5, 5, 10],
51
+ });
42
52
  }
43
53
  /**
44
54
  * CUSTOMIZED: Forces `noAck: false` regardless of options — we always ack/nack manually.
@@ -89,14 +99,17 @@ class GgServerRmq extends server_rmq_1.ServerRMQ {
89
99
  this.safeNack(channel, message, false); // requeue: false → immediate dead-letter
90
100
  return;
91
101
  }
102
+ const stopTimer = this.eventDuration.startTimer({ pattern });
92
103
  try {
93
104
  const resultOrStream = await handler(packet.data, context);
94
105
  if ((0, rxjs_1.isObservable)(resultOrStream)) {
95
106
  await (0, rxjs_1.lastValueFrom)(resultOrStream, { defaultValue: undefined });
96
107
  }
108
+ stopTimer({ status: 'success' });
97
109
  this.safeAck(channel, message);
98
110
  }
99
111
  catch (error) {
112
+ stopTimer({ status: 'error' });
100
113
  const deliveryCount = message.properties?.headers?.['x-delivery-count'] ?? 0;
101
114
  this.logger.error(`Event handler error [${pattern}] (delivery #${deliveryCount}): ${error?.message}`, error?.stack);
102
115
  this.safeNack(channel, message, true); // requeue: true → RMQ handles retry/DLQ
@@ -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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"}