UNPKG

nyx_server

Version:

Node内容发布

56 lines (47 loc) 1.46 kB
/* global process */ /* global global */ var OS = require("os"); var _ = require("lodash"); var Promise = require("bluebird"); var influx = require("influx"); var client = influx({ host : '10.50.8.128', port : 8086, // optional, default 8086 protocol : 'http', // optional, default 'http' database : 'Nyx' }); var ips = (function(){ var ifaces = OS.networkInterfaces(); return _.flatten(_.map(Object.keys(ifaces), function(ifname){ var interfaces = _.filter(ifaces[ifname], {family: 'IPv4', internal: false}); return _.map(interfaces, 'address'); })); })(); var processName = ips[0]+(process.env.name ? "_"+process.env.name : "")+ (process.env.pm_id ? "_"+process.env.pm_id : ""); /** * */ function start(){ setTimeout(function(){ connectInfoCollector(); processInfoCollect(); start(); } , 3000); } /** * 数据库连接信息收集 */ function connectInfoCollector(){ var poolsInfo = global.pools.getState(); Object.keys(poolsInfo).forEach(function(key){ client.writePoint("connect_info", poolsInfo[key] ,{processName:processName, connectKey:key}, function(){}); //等待处理请求数 }); } /** * 进程信息收集 */ function processInfoCollect(){ var hostname = OS.hostname(); client.writePoint("process_info", _.extend({freemem:OS.freemem(),totalmem:OS.totalmem()},process.memoryUsage()) ,{processName:processName}, function(){}); //等待处理请求数 } module.exports.start = start;