@morojs/moro 1.5.5 → 1.5.7
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/dist/core/config/config-manager.d.ts +44 -0
- package/dist/core/config/config-manager.js +114 -0
- package/dist/core/config/config-manager.js.map +1 -0
- package/dist/core/config/config-sources.d.ts +21 -0
- package/dist/core/config/config-sources.js +314 -0
- package/dist/core/config/config-sources.js.map +1 -0
- package/dist/core/config/config-validator.d.ts +21 -0
- package/dist/core/config/config-validator.js +744 -0
- package/dist/core/config/config-validator.js.map +1 -0
- package/dist/core/config/file-loader.d.ts +0 -5
- package/dist/core/config/file-loader.js +0 -171
- package/dist/core/config/file-loader.js.map +1 -1
- package/dist/core/config/index.d.ts +39 -10
- package/dist/core/config/index.js +66 -29
- package/dist/core/config/index.js.map +1 -1
- package/dist/core/config/schema.js +29 -31
- package/dist/core/config/schema.js.map +1 -1
- package/dist/core/config/utils.d.ts +9 -2
- package/dist/core/config/utils.js +19 -32
- package/dist/core/config/utils.js.map +1 -1
- package/dist/core/framework.d.ts +4 -7
- package/dist/core/framework.js +38 -12
- package/dist/core/framework.js.map +1 -1
- package/dist/core/http/http-server.d.ts +12 -0
- package/dist/core/http/http-server.js +56 -0
- package/dist/core/http/http-server.js.map +1 -1
- package/dist/core/http/router.d.ts +12 -0
- package/dist/core/http/router.js +114 -36
- package/dist/core/http/router.js.map +1 -1
- package/dist/core/logger/index.d.ts +1 -1
- package/dist/core/logger/index.js +2 -1
- package/dist/core/logger/index.js.map +1 -1
- package/dist/core/logger/logger.d.ts +9 -1
- package/dist/core/logger/logger.js +36 -3
- package/dist/core/logger/logger.js.map +1 -1
- package/dist/core/routing/index.d.ts +20 -0
- package/dist/core/routing/index.js +109 -11
- package/dist/core/routing/index.js.map +1 -1
- package/dist/moro.d.ts +7 -20
- package/dist/moro.js +115 -200
- package/dist/moro.js.map +1 -1
- package/dist/types/config.d.ts +46 -2
- package/dist/types/core.d.ts +22 -39
- package/dist/types/logger.d.ts +4 -0
- package/package.json +1 -1
- package/src/core/config/config-manager.ts +133 -0
- package/src/core/config/config-sources.ts +384 -0
- package/src/core/config/config-validator.ts +1042 -0
- package/src/core/config/file-loader.ts +0 -233
- package/src/core/config/index.ts +77 -32
- package/src/core/config/schema.ts +29 -31
- package/src/core/config/utils.ts +22 -29
- package/src/core/framework.ts +51 -18
- package/src/core/http/http-server.ts +66 -0
- package/src/core/http/router.ts +127 -38
- package/src/core/logger/index.ts +1 -0
- package/src/core/logger/logger.ts +43 -4
- package/src/core/routing/index.ts +116 -12
- package/src/moro.ts +127 -233
- package/src/types/config.ts +47 -2
- package/src/types/core.ts +32 -43
- package/src/types/logger.ts +6 -0
- package/dist/core/config/loader.d.ts +0 -7
- package/dist/core/config/loader.js +0 -269
- package/dist/core/config/loader.js.map +0 -1
- package/dist/core/config/validation.d.ts +0 -17
- package/dist/core/config/validation.js +0 -131
- package/dist/core/config/validation.js.map +0 -1
- package/src/core/config/loader.ts +0 -633
- package/src/core/config/validation.ts +0 -140
package/dist/moro.js
CHANGED
|
@@ -64,7 +64,7 @@ class Moro extends events_1.EventEmitter {
|
|
|
64
64
|
// Enterprise event system integration
|
|
65
65
|
eventBus;
|
|
66
66
|
// Application logger
|
|
67
|
-
logger
|
|
67
|
+
logger;
|
|
68
68
|
// Intelligent routing system
|
|
69
69
|
intelligentRouting = new app_integration_1.IntelligentRoutingManager();
|
|
70
70
|
// Documentation system
|
|
@@ -78,73 +78,37 @@ class Moro extends events_1.EventEmitter {
|
|
|
78
78
|
middlewareManager;
|
|
79
79
|
constructor(options = {}) {
|
|
80
80
|
super(); // Call EventEmitter constructor
|
|
81
|
-
//
|
|
82
|
-
//
|
|
81
|
+
// Apply logging configuration BEFORE config loading to avoid DEBUG spam
|
|
82
|
+
// 1. Environment variables (base level)
|
|
83
83
|
const envLogLevel = process.env.LOG_LEVEL || process.env.MORO_LOG_LEVEL;
|
|
84
84
|
if (envLogLevel) {
|
|
85
85
|
(0, logger_1.applyLoggingConfiguration)({ level: envLogLevel }, undefined);
|
|
86
86
|
}
|
|
87
|
-
//
|
|
88
|
-
this.config = JSON.parse(JSON.stringify((0, config_1.initializeConfig)()));
|
|
89
|
-
// Apply logging configuration from the loaded config (this happens after config file processing)
|
|
90
|
-
if (this.config.logging) {
|
|
91
|
-
(0, logger_1.applyLoggingConfiguration)(this.config.logging, undefined);
|
|
92
|
-
}
|
|
93
|
-
// Apply additional logging configuration from createApp options (takes precedence)
|
|
87
|
+
// 2. createApp logger options (highest precedence)
|
|
94
88
|
if (options.logger !== undefined) {
|
|
95
89
|
(0, logger_1.applyLoggingConfiguration)(undefined, options.logger);
|
|
96
90
|
}
|
|
97
|
-
//
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
this.config.performance.compression = {
|
|
107
|
-
...this.config.performance.compression,
|
|
108
|
-
...options.performance.compression,
|
|
109
|
-
};
|
|
110
|
-
}
|
|
111
|
-
if (options.performance.circuitBreaker) {
|
|
112
|
-
this.config.performance.circuitBreaker = {
|
|
113
|
-
...this.config.performance.circuitBreaker,
|
|
114
|
-
...options.performance.circuitBreaker,
|
|
115
|
-
};
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
// Apply modules configuration from createApp options (takes precedence)
|
|
119
|
-
if (options.modules) {
|
|
120
|
-
if (options.modules.cache) {
|
|
121
|
-
this.config.modules.cache = {
|
|
122
|
-
...this.config.modules.cache,
|
|
123
|
-
...options.modules.cache,
|
|
124
|
-
};
|
|
125
|
-
}
|
|
126
|
-
if (options.modules.rateLimit) {
|
|
127
|
-
this.config.modules.rateLimit = {
|
|
128
|
-
...this.config.modules.rateLimit,
|
|
129
|
-
...options.modules.rateLimit,
|
|
130
|
-
};
|
|
131
|
-
}
|
|
132
|
-
if (options.modules.validation) {
|
|
133
|
-
this.config.modules.validation = {
|
|
134
|
-
...this.config.modules.validation,
|
|
135
|
-
...options.modules.validation,
|
|
136
|
-
};
|
|
137
|
-
}
|
|
91
|
+
// Create logger AFTER initial configuration
|
|
92
|
+
this.logger = (0, logger_1.createFrameworkLogger)('App');
|
|
93
|
+
// Use simplified global configuration system
|
|
94
|
+
this.config = (0, config_1.initializeConfig)(options);
|
|
95
|
+
// Apply config file logging if it exists (may override createApp options if needed)
|
|
96
|
+
if (this.config.logging && !options.logger) {
|
|
97
|
+
(0, logger_1.applyLoggingConfiguration)(this.config.logging, undefined);
|
|
98
|
+
// Recreate logger with updated config
|
|
99
|
+
this.logger = (0, logger_1.createFrameworkLogger)('App');
|
|
138
100
|
}
|
|
139
|
-
this.logger.info(`Configuration system initialized: ${
|
|
101
|
+
this.logger.info(`Configuration system initialized: ${process.env.NODE_ENV || 'development'}:${this.config.server.port}`);
|
|
140
102
|
// Initialize runtime system
|
|
141
103
|
this.runtimeType = options.runtime?.type || 'node';
|
|
142
104
|
this.runtimeAdapter = options.runtime?.adapter || (0, runtime_1.createRuntimeAdapter)(this.runtimeType);
|
|
143
105
|
this.logger.info(`Runtime system initialized: ${this.runtimeType}`, 'Runtime');
|
|
144
|
-
// Pass
|
|
106
|
+
// Pass configuration from config to framework
|
|
145
107
|
const frameworkOptions = {
|
|
146
108
|
...options,
|
|
147
109
|
logger: this.config.logging,
|
|
110
|
+
websocket: this.config.websocket.enabled ? options.websocket || {} : false,
|
|
111
|
+
config: this.config,
|
|
148
112
|
};
|
|
149
113
|
this.coreFramework = new framework_1.Moro(frameworkOptions);
|
|
150
114
|
// Initialize middleware system
|
|
@@ -459,8 +423,9 @@ class Moro extends events_1.EventEmitter {
|
|
|
459
423
|
this.logger.info('Moro Server Started', 'Server');
|
|
460
424
|
this.logger.info(`Runtime: ${this.runtimeType}`, 'Server');
|
|
461
425
|
this.logger.info(`HTTP API: http://${displayHost}:${port}`, 'Server');
|
|
462
|
-
this.
|
|
463
|
-
|
|
426
|
+
if (this.config.websocket.enabled) {
|
|
427
|
+
this.logger.info(`WebSocket: ws://${displayHost}:${port}`, 'Server');
|
|
428
|
+
}
|
|
464
429
|
this.logger.info('Learn more at https://morojs.com', 'Server');
|
|
465
430
|
// Log intelligent routes info
|
|
466
431
|
const intelligentRoutes = this.intelligentRouting.getIntelligentRoutes();
|
|
@@ -767,18 +732,27 @@ class Moro extends events_1.EventEmitter {
|
|
|
767
732
|
return true;
|
|
768
733
|
}
|
|
769
734
|
setupDefaultMiddleware(options) {
|
|
770
|
-
// CORS
|
|
771
|
-
if (options.cors
|
|
772
|
-
const corsOptions = typeof options.cors === 'object'
|
|
735
|
+
// CORS - check config enabled property OR options.security.cors.enabled === true
|
|
736
|
+
if (this.config.security.cors.enabled || options.security?.cors?.enabled === true) {
|
|
737
|
+
const corsOptions = typeof options.cors === 'object'
|
|
738
|
+
? options.cors
|
|
739
|
+
: this.config.security.cors
|
|
740
|
+
? this.config.security.cors
|
|
741
|
+
: {};
|
|
773
742
|
this.use(http_1.middleware.cors(corsOptions));
|
|
774
743
|
}
|
|
775
|
-
// Helmet
|
|
776
|
-
if (options.helmet
|
|
744
|
+
// Helmet - check config enabled property OR options.security.helmet.enabled === true
|
|
745
|
+
if (this.config.security.helmet.enabled || options.security?.helmet?.enabled === true) {
|
|
777
746
|
this.use(http_1.middleware.helmet());
|
|
778
747
|
}
|
|
779
|
-
// Compression
|
|
780
|
-
if (
|
|
781
|
-
|
|
748
|
+
// Compression - check config enabled property OR options.performance.compression.enabled === true
|
|
749
|
+
if (this.config.performance.compression.enabled ||
|
|
750
|
+
options.performance?.compression?.enabled === true) {
|
|
751
|
+
const compressionOptions = typeof options.compression === 'object'
|
|
752
|
+
? options.compression
|
|
753
|
+
: this.config.performance.compression
|
|
754
|
+
? this.config.performance.compression
|
|
755
|
+
: {};
|
|
782
756
|
this.use(http_1.middleware.compression(compressionOptions));
|
|
783
757
|
}
|
|
784
758
|
// Body size limiting
|
|
@@ -813,14 +787,8 @@ class Moro extends events_1.EventEmitter {
|
|
|
813
787
|
return module.default || module;
|
|
814
788
|
}
|
|
815
789
|
/**
|
|
816
|
-
* Node.js Clustering Implementation
|
|
817
|
-
*
|
|
818
|
-
* This clustering algorithm is based on empirical testing and Node.js best practices.
|
|
819
|
-
* Key findings from research and testing:
|
|
820
|
-
*
|
|
821
|
-
* Performance Benefits:
|
|
822
|
-
* - Clustering can improve performance by up to 66% (Source: Medium - Danish Siddiq)
|
|
823
|
-
* - Enables utilization of multiple CPU cores in Node.js applications
|
|
790
|
+
* Node.js Clustering Implementation
|
|
791
|
+
* This clustering algorithm is based on published research and Node.js best practices.
|
|
824
792
|
*
|
|
825
793
|
* IPC (Inter-Process Communication) Considerations:
|
|
826
794
|
* - Excessive workers create IPC bottlenecks (Source: BetterStack Node.js Guide)
|
|
@@ -831,66 +799,49 @@ class Moro extends events_1.EventEmitter {
|
|
|
831
799
|
* - ~2GB per worker prevents memory pressure and GC overhead
|
|
832
800
|
* - Conservative heap limits reduce memory fragmentation
|
|
833
801
|
*
|
|
834
|
-
* Empirical Findings (MoroJS Testing):
|
|
835
|
-
* - 4-worker cap provides optimal performance regardless of core count
|
|
836
|
-
* - IPC becomes the primary bottleneck on high-core machines (16+ cores)
|
|
837
|
-
* - Memory allocation per worker more important than CPU utilization
|
|
838
|
-
*
|
|
839
802
|
* References:
|
|
840
803
|
* - Node.js Cluster Documentation: https://nodejs.org/api/cluster.html
|
|
841
804
|
* - BetterStack Node.js Clustering: https://betterstack.com/community/guides/scaling-nodejs/node-clustering/
|
|
842
805
|
*/
|
|
843
806
|
clusterWorkers = new Map();
|
|
844
|
-
workerStats = new Map();
|
|
845
|
-
adaptiveScalingEnabled = true;
|
|
846
|
-
lastScalingCheck = 0;
|
|
847
|
-
SCALING_INTERVAL = 30000; // 30 seconds
|
|
848
807
|
startWithClustering(port, host, callback) {
|
|
849
808
|
const cluster = require('cluster');
|
|
850
809
|
const os = require('os');
|
|
851
|
-
//
|
|
852
|
-
// Based on empirical testing and Node.js clustering best practices
|
|
810
|
+
// Worker count calculation - respect user choice
|
|
853
811
|
let workerCount = this.config.performance?.clustering?.workers || os.cpus().length;
|
|
854
|
-
//
|
|
855
|
-
|
|
856
|
-
// cause IPC overhead that degrades performance (Source: Medium - Clustering in Node.js)
|
|
857
|
-
if (workerCount === 'auto' || workerCount > 8) {
|
|
812
|
+
// Only auto-optimize if user hasn't specified a number or set it to 'auto'
|
|
813
|
+
if (workerCount === 'auto') {
|
|
858
814
|
const cpuCount = os.cpus().length;
|
|
859
815
|
const totalMemoryGB = os.totalmem() / (1024 * 1024 * 1024);
|
|
860
|
-
//
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
|
|
866
|
-
// Research shows diminishing returns after 4 workers due to message passing
|
|
867
|
-
workerCount = Math.min(maxWorkersFromMemory, 4);
|
|
868
|
-
}
|
|
869
|
-
else if (cpuCount >= 8) {
|
|
870
|
-
// Mid-range machines: optimal ratio found to be CPU/3 for IPC efficiency
|
|
871
|
-
// Avoids context switching overhead while maintaining throughput
|
|
872
|
-
workerCount = Math.min(Math.ceil(cpuCount / 3), maxWorkersFromMemory, 6);
|
|
873
|
-
}
|
|
874
|
-
else if (cpuCount >= 4) {
|
|
875
|
-
// Standard machines: use 3/4 of cores to leave room for OS processes
|
|
876
|
-
workerCount = Math.min(Math.ceil(cpuCount * 0.75), maxWorkersFromMemory, 4);
|
|
877
|
-
}
|
|
878
|
-
else {
|
|
879
|
-
// Low-core machines: use all cores but cap for memory safety
|
|
880
|
-
workerCount = Math.min(cpuCount, maxWorkersFromMemory, 2);
|
|
816
|
+
// Get memory per worker from config - if not set by user, calculate dynamically
|
|
817
|
+
let memoryPerWorkerGB = this.config.performance?.clustering?.memoryPerWorkerGB;
|
|
818
|
+
if (!memoryPerWorkerGB) {
|
|
819
|
+
// Dynamic calculation: (Total RAM - 4GB headroom) / CPU cores
|
|
820
|
+
const headroomGB = 4;
|
|
821
|
+
memoryPerWorkerGB = Math.max(0.5, Math.floor((totalMemoryGB - headroomGB) / cpuCount));
|
|
881
822
|
}
|
|
882
|
-
|
|
883
|
-
|
|
823
|
+
// Conservative formula based on general guidelines:
|
|
824
|
+
// - Don't exceed CPU cores
|
|
825
|
+
// - Respect user's memory allocation preference
|
|
826
|
+
// - Let the system resources determine the limit
|
|
827
|
+
workerCount = Math.min(cpuCount, // Don't exceed CPU cores
|
|
828
|
+
Math.floor(totalMemoryGB / memoryPerWorkerGB) // User-configurable memory per worker
|
|
829
|
+
);
|
|
830
|
+
this.logger.info(`Auto-calculated worker count: ${workerCount} (CPU: ${cpuCount}, RAM: ${totalMemoryGB.toFixed(1)}GB, ${memoryPerWorkerGB}GB per worker)`, 'Cluster');
|
|
831
|
+
}
|
|
832
|
+
else if (typeof workerCount === 'number') {
|
|
833
|
+
// User specified a number - respect their choice
|
|
834
|
+
this.logger.info(`Using user-specified worker count: ${workerCount}`, 'Cluster');
|
|
884
835
|
}
|
|
885
836
|
if (cluster.isPrimary) {
|
|
886
|
-
this.logger.info(
|
|
837
|
+
this.logger.info(`Starting ${workerCount} workers`, 'Cluster');
|
|
887
838
|
// Optimize cluster scheduling for high concurrency
|
|
888
839
|
// Round-robin is the default on all platforms except Windows (Node.js docs)
|
|
889
840
|
// Provides better load distribution than shared socket approach
|
|
890
841
|
cluster.schedulingPolicy = cluster.SCHED_RR;
|
|
891
842
|
// Set cluster settings for better performance
|
|
892
843
|
cluster.setupMaster({
|
|
893
|
-
exec: process.argv[1],
|
|
844
|
+
exec: process.argv[1] || process.execPath,
|
|
894
845
|
args: process.argv.slice(2),
|
|
895
846
|
silent: false,
|
|
896
847
|
});
|
|
@@ -914,36 +865,26 @@ class Moro extends events_1.EventEmitter {
|
|
|
914
865
|
// Handle process signals for graceful shutdown
|
|
915
866
|
process.on('SIGINT', gracefulShutdown);
|
|
916
867
|
process.on('SIGTERM', gracefulShutdown);
|
|
917
|
-
// Fork workers with
|
|
868
|
+
// Fork workers with basic tracking
|
|
918
869
|
for (let i = 0; i < workerCount; i++) {
|
|
919
|
-
const worker = cluster.fork(
|
|
920
|
-
WORKER_ID: i,
|
|
921
|
-
WORKER_CPU_AFFINITY: i % os.cpus().length, // Distribute workers across CPUs
|
|
922
|
-
});
|
|
870
|
+
const worker = cluster.fork();
|
|
923
871
|
this.clusterWorkers.set(worker.process.pid, worker);
|
|
924
|
-
this.logger.info(`Worker ${worker.process.pid} started
|
|
925
|
-
// Handle individual worker messages
|
|
872
|
+
this.logger.info(`Worker ${worker.process.pid} started`, 'Cluster');
|
|
873
|
+
// Handle individual worker messages
|
|
926
874
|
worker.on('message', this.handleWorkerMessage.bind(this));
|
|
927
875
|
}
|
|
928
|
-
//
|
|
876
|
+
// Simple worker exit handling
|
|
929
877
|
cluster.on('exit', (worker, code, signal) => {
|
|
930
878
|
const pid = worker.process.pid;
|
|
931
|
-
// Clean up worker tracking and stats
|
|
932
879
|
this.clusterWorkers.delete(pid);
|
|
933
|
-
this.workerStats.delete(pid);
|
|
934
880
|
if (code !== 0 && !worker.exitedAfterDisconnect) {
|
|
935
|
-
this.logger.warn(`Worker ${pid} died unexpectedly (${signal || code}).
|
|
936
|
-
//
|
|
937
|
-
|
|
881
|
+
this.logger.warn(`Worker ${pid} died unexpectedly (${signal || code}). Restarting...`, 'Cluster');
|
|
882
|
+
// Simple restart
|
|
883
|
+
const newWorker = cluster.fork();
|
|
884
|
+
this.clusterWorkers.set(newWorker.process.pid, newWorker);
|
|
885
|
+
this.logger.info(`Worker ${newWorker.process.pid} restarted`, 'Cluster');
|
|
938
886
|
}
|
|
939
|
-
// Restart worker with enhanced tracking
|
|
940
|
-
const newWorker = this.forkWorkerWithMonitoring();
|
|
941
|
-
this.logger.info(`Worker ${newWorker.process.pid} started with monitoring`, 'Cluster');
|
|
942
887
|
});
|
|
943
|
-
// Start adaptive scaling system
|
|
944
|
-
if (this.adaptiveScalingEnabled) {
|
|
945
|
-
this.startAdaptiveScaling();
|
|
946
|
-
}
|
|
947
888
|
// Master process callback
|
|
948
889
|
if (callback)
|
|
949
890
|
callback();
|
|
@@ -957,19 +898,18 @@ class Moro extends events_1.EventEmitter {
|
|
|
957
898
|
// Multiple workers writing to same log files creates I/O contention
|
|
958
899
|
if (this.config.logging) {
|
|
959
900
|
// Workers log less frequently to reduce I/O contention
|
|
960
|
-
|
|
901
|
+
(0, logger_1.applyLoggingConfiguration)(undefined, { level: 'warn' }); // Only warnings and errors
|
|
961
902
|
}
|
|
962
|
-
//
|
|
963
|
-
// Dynamic heap sizing based on available system memory and worker count
|
|
903
|
+
// Research-based memory optimization for workers
|
|
964
904
|
const os = require('os');
|
|
965
905
|
const totalMemoryGB = os.totalmem() / (1024 * 1024 * 1024);
|
|
966
906
|
const workerCount = Object.keys(require('cluster').workers || {}).length || 1;
|
|
967
|
-
//
|
|
968
|
-
const heapSizePerWorkerMB = Math.min(Math.floor((totalMemoryGB * 1024) /
|
|
969
|
-
1536 // Cap at 1.5GB
|
|
907
|
+
// Conservative memory allocation
|
|
908
|
+
const heapSizePerWorkerMB = Math.min(Math.floor(((totalMemoryGB * 1024) / workerCount) * 0.8), // 80% of available memory
|
|
909
|
+
1536 // Cap at 1.5GB (GC efficiency threshold from research)
|
|
970
910
|
);
|
|
971
911
|
process.env.NODE_OPTIONS = `--max-old-space-size=${heapSizePerWorkerMB}`;
|
|
972
|
-
this.logger.debug(`Worker memory
|
|
912
|
+
this.logger.debug(`Worker memory allocated: ${heapSizePerWorkerMB}MB heap (${workerCount} workers, ${totalMemoryGB.toFixed(1)}GB total)`, 'Worker');
|
|
973
913
|
// Optimize V8 flags for better performance (Rust-level optimizations)
|
|
974
914
|
if (process.env.NODE_ENV === 'production') {
|
|
975
915
|
// Ultra-aggressive V8 optimizations for maximum performance
|
|
@@ -1053,19 +993,8 @@ class Moro extends events_1.EventEmitter {
|
|
|
1053
993
|
}
|
|
1054
994
|
}
|
|
1055
995
|
}
|
|
1056
|
-
//
|
|
996
|
+
// Simple worker message handler
|
|
1057
997
|
handleWorkerMessage(message) {
|
|
1058
|
-
// Handle performance monitoring messages
|
|
1059
|
-
if (message.type === 'performance') {
|
|
1060
|
-
const pid = message.pid;
|
|
1061
|
-
this.workerStats.set(pid, {
|
|
1062
|
-
cpu: message.cpu || 0,
|
|
1063
|
-
memory: message.memory || 0,
|
|
1064
|
-
requests: message.requests || 0,
|
|
1065
|
-
lastCheck: Date.now(),
|
|
1066
|
-
});
|
|
1067
|
-
return;
|
|
1068
|
-
}
|
|
1069
998
|
// Handle inter-worker communication if needed
|
|
1070
999
|
if (message.type === 'health-check') {
|
|
1071
1000
|
// Worker health check response
|
|
@@ -1074,60 +1003,46 @@ class Moro extends events_1.EventEmitter {
|
|
|
1074
1003
|
// Log other worker messages
|
|
1075
1004
|
this.logger.debug(`Worker message: ${JSON.stringify(message)}`, 'Cluster');
|
|
1076
1005
|
}
|
|
1077
|
-
|
|
1078
|
-
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
|
|
1086
|
-
|
|
1087
|
-
}
|
|
1088
|
-
evaluateWorkerPerformance() {
|
|
1089
|
-
const now = Date.now();
|
|
1090
|
-
const currentWorkerCount = this.clusterWorkers.size;
|
|
1091
|
-
// Calculate average CPU and memory usage across workers
|
|
1092
|
-
let totalCpu = 0;
|
|
1093
|
-
let totalMemory = 0;
|
|
1094
|
-
let activeWorkers = 0;
|
|
1095
|
-
for (const [pid, stats] of this.workerStats) {
|
|
1096
|
-
if (now - stats.lastCheck < 60000) {
|
|
1097
|
-
// Data less than 1 minute old
|
|
1098
|
-
totalCpu += stats.cpu;
|
|
1099
|
-
totalMemory += stats.memory;
|
|
1100
|
-
activeWorkers++;
|
|
1101
|
-
}
|
|
1006
|
+
/**
|
|
1007
|
+
* Gracefully close the application and clean up resources
|
|
1008
|
+
* This should be called in tests and during shutdown
|
|
1009
|
+
*/
|
|
1010
|
+
async close() {
|
|
1011
|
+
this.logger.debug('Closing Moro application...');
|
|
1012
|
+
// Flush logger buffer before shutdown
|
|
1013
|
+
try {
|
|
1014
|
+
// Use flushBuffer for immediate synchronous flush
|
|
1015
|
+
this.logger.flushBuffer();
|
|
1102
1016
|
}
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
const avgCpu = totalCpu / activeWorkers;
|
|
1106
|
-
const avgMemory = totalMemory / activeWorkers;
|
|
1107
|
-
this.logger.debug(`Performance analysis: ${activeWorkers} workers, avg CPU: ${avgCpu.toFixed(1)}%, avg memory: ${avgMemory.toFixed(1)}MB`, 'Cluster');
|
|
1108
|
-
// Research-based adaptive scaling decisions
|
|
1109
|
-
// High CPU threshold indicates IPC saturation point approaching
|
|
1110
|
-
if (avgCpu > 80 && currentWorkerCount < 6) {
|
|
1111
|
-
this.logger.info('High CPU load detected, system may benefit from additional worker', 'Cluster');
|
|
1017
|
+
catch (error) {
|
|
1018
|
+
// Ignore flush errors during shutdown
|
|
1112
1019
|
}
|
|
1113
|
-
|
|
1114
|
-
|
|
1020
|
+
// Close the core framework with timeout
|
|
1021
|
+
if (this.coreFramework && this.coreFramework.httpServer) {
|
|
1022
|
+
try {
|
|
1023
|
+
await Promise.race([
|
|
1024
|
+
new Promise(resolve => {
|
|
1025
|
+
this.coreFramework.httpServer.close(() => {
|
|
1026
|
+
resolve();
|
|
1027
|
+
});
|
|
1028
|
+
}),
|
|
1029
|
+
new Promise(resolve => setTimeout(resolve, 2000)), // 2 second timeout
|
|
1030
|
+
]);
|
|
1031
|
+
}
|
|
1032
|
+
catch (error) {
|
|
1033
|
+
// Force close if graceful close fails
|
|
1034
|
+
this.logger.warn('Force closing HTTP server due to timeout');
|
|
1035
|
+
}
|
|
1115
1036
|
}
|
|
1116
|
-
//
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
this.
|
|
1037
|
+
// Clean up event listeners
|
|
1038
|
+
try {
|
|
1039
|
+
this.eventBus.removeAllListeners();
|
|
1040
|
+
this.removeAllListeners();
|
|
1120
1041
|
}
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
if (now - this.lastScalingCheck > this.SCALING_INTERVAL) {
|
|
1126
|
-
this.evaluateWorkerPerformance();
|
|
1127
|
-
this.lastScalingCheck = now;
|
|
1128
|
-
}
|
|
1129
|
-
}, this.SCALING_INTERVAL);
|
|
1130
|
-
this.logger.info('Adaptive performance monitoring system started', 'Cluster');
|
|
1042
|
+
catch (error) {
|
|
1043
|
+
// Ignore cleanup errors
|
|
1044
|
+
}
|
|
1045
|
+
this.logger.debug('Moro application closed successfully');
|
|
1131
1046
|
}
|
|
1132
1047
|
}
|
|
1133
1048
|
exports.Moro = Moro;
|
package/dist/moro.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"moro.js","sourceRoot":"","sources":["../src/moro.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"moro.js","sourceRoot":"","sources":["../src/moro.ts"],"names":[],"mappings":"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"}
|