npm install net-statnet-stat
========
``-|. |-|____
______ _______ _______ _______ _______ _______ _______
| _ \| _ | | _ | | _ | |
|. | |. 1___|.| | | 1___|.| | |. 1 |.| | |
|. | |. __)_-|. |-|. _ -|. |-'
|: | |: 1 | |: | |: 1 | |: | |: | | |: |
|::.| |::.. . | |::.| |::.. . | |::.| |::.|:. | |::.|
--- ----------' ---' -------' ---' --- ---' ---'`
Note: This repo can be found on npm here: net-stat
Note: This repo can be found on github here: node-net-stat
Caveat: Works by parsing /proc/net/dev, so will only work on nix OS.
Install
-------
``
npm install net-stat
Examples
--------
Require the module:
``
var netStat = require('net-stat');
By default totalRx() returns total received bytes for interface lo:``
var totalrx = netStat.totalRx();
console.log(totalrx);
Return total received GiB on interface eth0, see docs below for accepted values of units and iface:``
var totalrx = netStat.totalRx({ iface: 'eth0', units: 'GiB' });
console.log(totalrx);
Display the transmitted KiB per second of eth0 over the next 2000ms:``
setInterval(function() {
netStat.usageTx({
iface: 'eth0',
units: 'KiB',
sampleMs: 2000,
}, function(kbps) {
console.log('Transmitted ' + kbps + ' kb/s');
});
}, 2500);
Get all fields available from /proc/net/dev, useful for finding accepted values of iface:``
var allStats = netStat.raw();
console.log(allStats);
totalRx([opts])
---------------------
Returns a number representing the number of units received on iface.
Option | Type | Default | Explanation
------------- | -------------| ------------- | ------------
opts | Object | see below | Options object, specify what you need, the defaults will be filled inString
opts.iface | | 'lo' | The name of the interface to be used. See the raw() function for a list of interfaces.String
opts.units | | 'bytes' | The units of the returned value, can be one of bytes, KiB, MiB or GiB.
totalTx([opts])
---------------------
Returns a number representing the number of units transmitted on iface.
Option | Type | Default | Explanation
------------- | -------------| ------------- | ------------
opts | Object | see below | Options object, specify what you need, the defaults will be filled inString
opts.iface | | 'lo' | The name of the interface to be used. See the raw() function for a list of interfaces.String
opts.units | | 'bytes' | The units of the returned value, can be one of bytes, KiB, MiB or GiB.
usageRx([opts,] cb)
-------------------
Async function which returns data, the usage received per second in units on iface over sampleMs
Option | Type | Default | Explanation
------------- | -------------| ------------- | ------------
opts | Object | see below | Options object, specify what you need, the defaults will be filled inString
opts.iface | | 'lo' | The name of the interface to be used. See the raw() function for a list of interfaces.String
opts.units | | 'bytes' | The units of the returned value, can be one of bytes, KiB, MiB or GiB.Number
opts.sampleMs | | 1000 | The number of milliseconds to take a usage sample over.Function
cb | | none | A callback function with signature cb(data) where data is the usage received per second in units on iface over sampleMs.
usageTx([opts,] cb)
-------------------
Async function which returns data, the usage transmitted per second in units on iface over sampleMs
Option | Type | Default | Explanation
------------- | -------------| ------------- | ------------
opts | Object | see below | Options object, specify what you need, the defaults will be filled inString
opts.iface | | 'lo' | The name of the interface to be used. See the raw() function for a list of interfaces.String
opts.units | | 'bytes' | The units of the returned value, can be one of bytes, KiB, MiB or GiB.Number
opts.sampleMs | | 1000 | The number of milliseconds to take a usage sample over.Function
cb | | none | A callback function with signature cb(data) where data is the usage transmitted per second in units on iface over sampleMs.
raw()
-----
Returns an object representing the data in /proc/net/dev.
``
{
eth0: {
bytes: { receive: '2085477580', transmit: '187911353' },
packets: { receive: '1782197', transmit: '1353772' },
errs: { receive: '0', transmit: '0' },
drop: { receive: '42', transmit: '0' },
fifo: { receive: '0', transmit: '0' },
frame: { receive: '0' },
compressed: { receive: '0', transmit: '0' },
multicast: { receive: '7923' },
colls: { transmit: '0' },
carrier: { transmit: '0' }
},
lo: {
bytes: { receive: '52720310', transmit: '52720310' },
packets: { receive: '443962', transmit: '443962' },
errs: { receive: '0', transmit: '0' },
drop: { receive: '0', transmit: '0' },
fifo: { receive: '0', transmit: '0' },
frame: { receive: '0' },
compressed: { receive: '0', transmit: '0' },
multicast: { receive: '0' },
colls: { transmit: '0' },
carrier: { transmit: '0' }
},
}
Contributing
------------
Just send a PR, or create an issue if you are not sure.
Areas ripe for contribution:
- testing
- cross compatability for windows and darwin/osx
- performance
- bugs
Other Stat Modules
------------------
- cpu-stat npm git
- net-stat npm git
- disk-stat npm git
- mem-stat npm git
Note: net-stat, disk-stat, mem-stat` only work on nix platforms.
License
-------
MIT