@abyss-project/monitor 1.0.56 → 1.0.57

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.
@@ -3,18 +3,33 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.setupGracefulShutdown = void 0;
4
4
  const request_tracker_utils_1 = require("../utils/request-tracker.utils");
5
5
  const graceful_shutdown_types_1 = require("../types/graceful-shutdown.types");
6
+ const types_1 = require("../types");
6
7
  const DEFAULT_SHUTDOWN_TIMEOUT = 30000;
7
8
  const DEFAULT_REQUESTS_TIMEOUT = 25000;
8
9
  const DEFAULT_CHECK_INTERVAL = 100;
10
+ const createGracefulShutdownLogger = (baseLogger) => {
11
+ const defaultPayload = {
12
+ context: 'GracefulShutdown',
13
+ scenario: types_1.LogScenario.SYSTEM_STARTUP,
14
+ };
15
+ const wrappedLogger = Object.create(baseLogger);
16
+ wrappedLogger.log = (message, payload, options) => baseLogger.log(message, { ...defaultPayload, ...payload }, options);
17
+ wrappedLogger.info = (message, payload, options) => baseLogger.info(message, { ...defaultPayload, ...payload }, options);
18
+ wrappedLogger.debug = (message, payload, options) => baseLogger.debug(message, { ...defaultPayload, ...payload }, options);
19
+ wrappedLogger.warn = (message, payload, options) => baseLogger.warn(message, { ...defaultPayload, ...payload }, options);
20
+ wrappedLogger.error = (message, payload, options) => baseLogger.error(message, { ...defaultPayload, ...payload }, options);
21
+ return wrappedLogger;
22
+ };
9
23
  const setupGracefulShutdown = (config) => {
10
- const { logger, httpServer, databases = [], messageQueues = [], caches = [], otherResources = [], shutdownTimeout = DEFAULT_SHUTDOWN_TIMEOUT, requestsTimeout = DEFAULT_REQUESTS_TIMEOUT, checkInterval = DEFAULT_CHECK_INTERVAL, } = config;
24
+ const { logger: baseLogger, httpServer, databases = [], messageQueues = [], caches = [], otherResources = [], shutdownTimeout = DEFAULT_SHUTDOWN_TIMEOUT, requestsTimeout = DEFAULT_REQUESTS_TIMEOUT, checkInterval = DEFAULT_CHECK_INTERVAL, } = config;
25
+ const logger = createGracefulShutdownLogger(baseLogger);
11
26
  const gracefulShutdown = async (signal) => {
12
27
  if ((0, request_tracker_utils_1.getIsShuttingDown)()) {
13
28
  logger.warn(`Already shutting down, ignoring ${signal}`);
14
29
  return;
15
30
  }
16
31
  (0, request_tracker_utils_1.setIsShuttingDown)(true);
17
- logger.info(`Received ${signal}, starting graceful shutdown...`, {
32
+ logger.log(`Received ${signal}, starting graceful shutdown...`, {
18
33
  data: {
19
34
  activeRequests: (0, request_tracker_utils_1.getActiveRequestsCount)(),
20
35
  },
@@ -31,7 +46,7 @@ const setupGracefulShutdown = (config) => {
31
46
  try {
32
47
  const activeRequests = (0, request_tracker_utils_1.getActiveRequestsCount)();
33
48
  if (activeRequests > 0) {
34
- logger.info(`Waiting for ${activeRequests} active requests to complete...`, {
49
+ logger.log(`Waiting for ${activeRequests} active requests to complete...`, {
35
50
  data: {
36
51
  activeRequests,
37
52
  timeoutMs: requestsTimeout,
@@ -60,7 +75,7 @@ const setupGracefulShutdown = (config) => {
60
75
  reject(err);
61
76
  }
62
77
  else {
63
- logger.info('HTTP server closed, no longer accepting new connections');
78
+ logger.log('HTTP server closed, no longer accepting new connections');
64
79
  resolve();
65
80
  }
66
81
  });
@@ -70,7 +85,7 @@ const setupGracefulShutdown = (config) => {
70
85
  await Promise.allSettled(messageQueues.map(async (mq) => {
71
86
  try {
72
87
  await mq.close();
73
- logger.info(`Message queue connection closed${mq.name ? `: ${mq.name}` : ''}`);
88
+ logger.log(`Message queue connection closed${mq.name ? `: ${mq.name}` : ''}`);
74
89
  }
75
90
  catch (error) {
76
91
  logger.error(`Error closing message queue connection${mq.name ? `: ${mq.name}` : ''}`, {
@@ -86,7 +101,7 @@ const setupGracefulShutdown = (config) => {
86
101
  await Promise.allSettled(caches.map(async (cache) => {
87
102
  try {
88
103
  await cache.close();
89
- logger.info(`Cache connection closed${cache.name ? `: ${cache.name}` : ''}`);
104
+ logger.log(`Cache connection closed${cache.name ? `: ${cache.name}` : ''}`);
90
105
  }
91
106
  catch (error) {
92
107
  logger.error(`Error closing cache connection${cache.name ? `: ${cache.name}` : ''}`, {
@@ -102,7 +117,7 @@ const setupGracefulShutdown = (config) => {
102
117
  await Promise.allSettled(databases.map(async (db) => {
103
118
  try {
104
119
  await db.close();
105
- logger.info(`Database connection closed${db.name ? `: ${db.name}` : ''}`);
120
+ logger.log(`Database connection closed${db.name ? `: ${db.name}` : ''}`);
106
121
  }
107
122
  catch (error) {
108
123
  logger.error(`Error closing database connection${db.name ? `: ${db.name}` : ''}`, {
@@ -118,7 +133,7 @@ const setupGracefulShutdown = (config) => {
118
133
  await Promise.allSettled(otherResources.map(async (resource) => {
119
134
  try {
120
135
  await resource.close();
121
- logger.info(`Resource closed${resource.name ? `: ${resource.name}` : ''}`);
136
+ logger.log(`Resource closed${resource.name ? `: ${resource.name}` : ''}`);
122
137
  }
123
138
  catch (error) {
124
139
  logger.error(`Error closing resource${resource.name ? `: ${resource.name}` : ''}`, {
@@ -130,7 +145,7 @@ const setupGracefulShutdown = (config) => {
130
145
  }
131
146
  }));
132
147
  }
133
- logger.info('Graceful shutdown completed successfully');
148
+ logger.log('Graceful shutdown completed successfully');
134
149
  clearTimeout(forceShutdownTimer);
135
150
  process.exit(0);
136
151
  }
@@ -164,6 +179,6 @@ const setupGracefulShutdown = (config) => {
164
179
  });
165
180
  gracefulShutdown('unhandledRejection');
166
181
  });
167
- logger.info('Graceful shutdown handlers registered');
182
+ logger.log('Graceful shutdown handlers registered');
168
183
  };
169
184
  exports.setupGracefulShutdown = setupGracefulShutdown;
@@ -25,7 +25,7 @@ const waitForActiveRequests = async (timeout = 30000, checkInterval = 100, logge
25
25
  return new Promise((resolve, reject) => {
26
26
  const check = () => {
27
27
  if (activeRequests === 0) {
28
- logger === null || logger === void 0 ? void 0 : logger.info('All active requests completed');
28
+ logger === null || logger === void 0 ? void 0 : logger.log('All active requests completed');
29
29
  resolve();
30
30
  return;
31
31
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abyss-project/monitor",
3
- "version": "1.0.56",
3
+ "version": "1.0.57",
4
4
  "description": "Core package to interact with Abyss-Monitor",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",