nyx_server
Version:
Node内容发布
50 lines (41 loc) • 1.29 kB
JavaScript
//请求监控,
var influx = require('influx')
var OS = require('os');
var _ = require('lodash');
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 : "");
module.exports = requestMonitor;
function requestMonitor() {
return function (req, res, next) {
try {
var startTime = Date.now();
var write1 = res.write;
var end1 = res.end;
res.end = function (string, encoding) {
res.end = end1;
res.write = write1;
end1.call(res, string, encoding);
var endTime = Date.now();
var processTime = endTime - startTime; //执行时间
//资源类处理时间
client.writePoint("resource_process_time", { processTime: processTime}, {path:req.path , processName:processName}, function () { })
};
next();
} catch (err) {
console.log(err);
next();
}
}
}