UNPKG

linux-monitor

Version:

linux ubuntu 性能监控

62 lines (55 loc) 1.87 kB
let http = require('http'); let os = require('os'); let Util = require('./lib/Util'); let {PORT, DEBUG} = Util.getRunParams(); //console.log('run:params', {PORT, DEBUG, START}); if ('linux' !== os.platform()) throw '当前只能适用于linux系统'; let Monitor = require('./lib/Monitor'); let monitor = new Monitor({debug: DEBUG}); let INTERVAL_TIME = 30000; let __monitorData = {}; getMonitor(1); setInterval(() => { getMonitor(); }, INTERVAL_TIME); http.createServer(function (request, response) { if(request.url === '/monitor') { response.writeHead(200,{ "Content-Type":'application/json', 'charset':'utf-8', 'Access-Control-Allow-Origin':'*', 'Access-Control-Allow-Methods':'PUT,POST,GET,DELETE,OPTIONS' }); response.write(JSON.stringify(__monitorData)); response.end(); } }).listen(PORT); function getMonitor(netTime) { monitor.GetMonitorData(netTime) .then(data => { __monitorData = data; }) .catch(error => { __monitorData = {}; console.error('Interval:error:', error) }) } function getIPAddress(select) { var interfaces = os.networkInterfaces(); var map = {}; for (var attr in interfaces) { var iface = interfaces[attr]; for (var i = 0; i < iface.length; i++) { var alias = iface[i]; if (alias.family !== 'IPv4') continue; let a = alias.address.split('.')[0]; if (a !== '127' && a !== '192' && a !== '10' && a !== '172') a = 0; map[a] = alias.address; } } if (!!select) return map[select] || ''; if(! map[0]) map[0] = map[192]; if(! map[0]) map[0] = 'hostname'; return map[0] || ''; } console.log('monitor running at port: http://' + getIPAddress() + ':' + PORT + '/monitor');