nyx_server
Version:
Node内容发布
56 lines (47 loc) • 1.46 kB
JavaScript
/* 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;