サーバーの統計情報をメモリに記憶するようにするなど
This commit is contained in:
		
							parent
							
								
									726d5a177e
								
							
						
					
					
						commit
						6eff8fde74
					
				
					 5 changed files with 41 additions and 7 deletions
				
			
		| 
						 | 
					@ -218,6 +218,6 @@
 | 
				
			||||||
		"webpack-cli": "2.1.4",
 | 
							"webpack-cli": "2.1.4",
 | 
				
			||||||
		"websocket": "1.0.26",
 | 
							"websocket": "1.0.26",
 | 
				
			||||||
		"ws": "5.2.0",
 | 
							"ws": "5.2.0",
 | 
				
			||||||
		"xev": "2.0.0"
 | 
							"xev": "2.0.1"
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -76,9 +76,15 @@ export default Vue.extend({
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
		this.connection.on('stats', this.onStats);
 | 
							this.connection.on('stats', this.onStats);
 | 
				
			||||||
 | 
							this.connection.on('statsLog', this.onStatsLog);
 | 
				
			||||||
 | 
							this.connection.send({
 | 
				
			||||||
 | 
								type: 'requestLog',
 | 
				
			||||||
 | 
								id: Math.random().toString()
 | 
				
			||||||
 | 
							});
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	beforeDestroy() {
 | 
						beforeDestroy() {
 | 
				
			||||||
		this.connection.off('stats', this.onStats);
 | 
							this.connection.off('stats', this.onStats);
 | 
				
			||||||
 | 
							this.connection.off('statsLog', this.onStatsLog);
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		onStats(stats) {
 | 
							onStats(stats) {
 | 
				
			||||||
| 
						 | 
					@ -94,6 +100,9 @@ export default Vue.extend({
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			this.cpuP = (stats.cpu_usage * 100).toFixed(0);
 | 
								this.cpuP = (stats.cpu_usage * 100).toFixed(0);
 | 
				
			||||||
			this.memP = (stats.mem.used / stats.mem.total * 100).toFixed(0);
 | 
								this.memP = (stats.mem.used / stats.mem.total * 100).toFixed(0);
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							onStatsLog(statsLog) {
 | 
				
			||||||
 | 
								statsLog.forEach(stats => this.onStats(stats));
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,7 @@ import ProgressBar from './utils/cli/progressbar';
 | 
				
			||||||
import EnvironmentInfo from './utils/environmentInfo';
 | 
					import EnvironmentInfo from './utils/environmentInfo';
 | 
				
			||||||
import MachineInfo from './utils/machineInfo';
 | 
					import MachineInfo from './utils/machineInfo';
 | 
				
			||||||
import DependencyInfo from './utils/dependencyInfo';
 | 
					import DependencyInfo from './utils/dependencyInfo';
 | 
				
			||||||
import stats from './utils/stats';
 | 
					import serverStats from './server-stats';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import loadConfig from './config/load';
 | 
					import loadConfig from './config/load';
 | 
				
			||||||
import { Config } from './config/types';
 | 
					import { Config } from './config/types';
 | 
				
			||||||
| 
						 | 
					@ -49,7 +49,7 @@ function main() {
 | 
				
			||||||
		masterMain(opt);
 | 
							masterMain(opt);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		ev.mount();
 | 
							ev.mount();
 | 
				
			||||||
		stats();
 | 
							serverStats();
 | 
				
			||||||
	} else {
 | 
						} else {
 | 
				
			||||||
		workerMain(opt);
 | 
							workerMain(opt);
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -9,10 +9,16 @@ const ev = new Xev();
 | 
				
			||||||
 * Report stats regularly
 | 
					 * Report stats regularly
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
export default function() {
 | 
					export default function() {
 | 
				
			||||||
 | 
						const log = [];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ev.on('requestServerStatsLog', id => {
 | 
				
			||||||
 | 
							ev.emit('serverStatsLog:' + id, log);
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	setInterval(() => {
 | 
						setInterval(() => {
 | 
				
			||||||
		osUtils.cpuUsage(cpuUsage => {
 | 
							osUtils.cpuUsage(cpuUsage => {
 | 
				
			||||||
			const disk = diskusage.checkSync(os.platform() == 'win32' ? 'c:' : '/');
 | 
								const disk = diskusage.checkSync(os.platform() == 'win32' ? 'c:' : '/');
 | 
				
			||||||
			ev.emit('stats', {
 | 
								const stats = {
 | 
				
			||||||
				cpu_usage: cpuUsage,
 | 
									cpu_usage: cpuUsage,
 | 
				
			||||||
				mem: {
 | 
									mem: {
 | 
				
			||||||
					total: os.totalmem(),
 | 
										total: os.totalmem(),
 | 
				
			||||||
| 
						 | 
					@ -21,7 +27,10 @@ export default function() {
 | 
				
			||||||
				disk,
 | 
									disk,
 | 
				
			||||||
				os_uptime: os.uptime(),
 | 
									os_uptime: os.uptime(),
 | 
				
			||||||
				process_uptime: process.uptime()
 | 
									process_uptime: process.uptime()
 | 
				
			||||||
			});
 | 
								};
 | 
				
			||||||
 | 
								ev.emit('serverStats', stats);
 | 
				
			||||||
 | 
								log.push(stats);
 | 
				
			||||||
 | 
								if (log.length > 50) log.shift();
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
	}, 1000);
 | 
						}, 1000);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -11,9 +11,25 @@ export default function(request: websocket.request, connection: websocket.connec
 | 
				
			||||||
		}));
 | 
							}));
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	ev.addListener('stats', onStats);
 | 
						connection.on('message', async data => {
 | 
				
			||||||
 | 
							const msg = JSON.parse(data.utf8Data);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							switch (msg.type) {
 | 
				
			||||||
 | 
								case 'requestLog':
 | 
				
			||||||
 | 
									ev.once('serverStatsLog:' + msg.id, statsLog => {
 | 
				
			||||||
 | 
										connection.send(JSON.stringify({
 | 
				
			||||||
 | 
											type: 'statsLog',
 | 
				
			||||||
 | 
											body: statsLog
 | 
				
			||||||
 | 
										}));
 | 
				
			||||||
 | 
									});
 | 
				
			||||||
 | 
									ev.emit('requestServerStatsLog', msg.id);
 | 
				
			||||||
 | 
									break;
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						ev.addListener('serverStats', onStats);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	connection.on('close', () => {
 | 
						connection.on('close', () => {
 | 
				
			||||||
		ev.removeListener('stats', onStats);
 | 
							ev.removeListener('serverStats', onStats);
 | 
				
			||||||
	});
 | 
						});
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue