UNPKG

nyx_server

Version:

Node内容发布

50 lines (41 loc) 1.29 kB
//请求监控, 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(); } } }