UNPKG

statsd

Version:

Network daemon for the collection and aggregation of realtime application metrics

39 lines (32 loc) 1.13 kB
const net = require('net'); const fs = require('fs'); function rinfo(tcpstream, data) { this.address = tcpstream.remoteAddress; this.port = tcpstream.remotePort; this.family = tcpstream.address() ? tcpstream.address().family : 'IPv4'; this.size = data.length; } exports.start = function(config, callback) { const server = net.createServer(function(stream) { stream.setEncoding('ascii'); let buffer = ''; stream.on('data', function(data) { buffer += data; const offset = buffer.lastIndexOf("\n"); if (offset > -1) { const packet = buffer.slice(0, offset + 1); buffer = buffer.slice(offset + 1); callback(packet, new rinfo(stream, packet)); } }); }); server.on('listening', function() { config.socket && config.socket_mod && fs.chmod(config.socket, config.socket_mod); }); process.on('exit', function() { config.socket && fs.unlinkSync(config.socket); }); server.listen(config.socket || config.port || 8125, config.address || undefined); this.server = server; return true; };