UNPKG

uriel

Version:

A NodeJS statsd agent to push memory, cpu, network, swap, diskio, and disk usage over UDP

45 lines (38 loc) 1.06 kB
// app/monitors/network.js const snakeCase = require('lodash.snakecase'); const si = require('systeminformation'); const Monitor = require('../lib/monitor'); class NetworkMonitor extends Monitor { constructor(statsFactory) { super('network', statsFactory); this.connectionsStatesCountStatsd = {}; } collect() { const connectionStates = { foreign: 0, established: 0, listen: 0, syn_sent: 0, time_wait: 0, close_wait: 0, last_ack: 0 }; si .networkConnections() .then((connections) => { for (const data of connections) { const snakeStr = snakeCase(data.state); if (Object.prototype.hasOwnProperty.call(connectionStates, snakeStr)) { connectionStates[snakeStr] += 1; } else { connectionStates[snakeStr] = 1; } } this.setStats(this.bundleStats(connectionStates)); }) .catch((err) => { this.log.error(err.stack || err); }); } } module.exports = NetworkMonitor;