metrics-os v1.0.1
OS Metrics
Utility to get system metrics.
Installation
For use in Node.js,
$ npm install metrics-osUsage
The module exports a single method, which returns an object containing uptime, load, mem, and cpu metrics. To use the utility,
var getMetrics = require( 'metrics-os' ),
metrics = getMetrics();The following is an example metrics output...
{
"uptime": 218091000,
"load": {
"1m": 1.443359375,
"5m": 1.58203125,
"15m": 1.93359375
},
"mem": {
"memTotal": 8589934.592,
"memFree": 230801.408,
"ramUtilization": 0.9731311798095703
},
"cpu": [
{
"user": 16288640,
"nice": 0,
"system": 7832180,
"idle": 98866460,
"irq": 0
},
{
"user": 7631040,
"nice": 0,
"system": 2386640,
"idle": 112967740,
"irq": 0
},
{
"user": 14059800,
"nice": 0,
"system": 5183440,
"idle": 103742200,
"irq": 0
},
{
"user": 7632010,
"nice": 0,
"system": 2324990,
"idle": 113028390,
"irq": 0
},
{
"userAverage": 11402872.5,
"niceAverage": 0,
"systemAverage": 4431812.5,
"idleAverage": 107151197.5,
"irqAverage": 0
}
]
}Metrics
The following metrics are reported...
uptime
The number of milliseconds since the last system reboot. In contrast to os.uptime(), the uptime reported by this utility is in milliseconds so as to match the units for CPU metrics (idle, user, system, nice, iqr).
load.1m
The average number of jobs in the run queue (state R) or waiting for disk I/O (state D) over the past minute.
load.5m
The average number of jobs in the run queue (state R) or waiting for disk I/O (state D) over the past 5 minutes.
load.15m
The average number of jobs in the run queue (state R) or waiting for disk I/O (state D) over the past 15 minutes.
mem.memTotal
The total amount of usable RAM. This metric is reported in kilobytes.
mem.memFree
The total mount of free RAM. This metric is reported in kilobytes.
mem.ramUtilization
The decimal percentage of RAM being used.
cpu.user
Number of milliseconds a CPU has spent in user mode.
cpu.system
Number of milliseconds a CPU has spent in kernel mode.
cpu.idle
Number of milliseconds a CPU has spent idle.
cpu.nice
Number of milliseconds a CPU has spent in user mode and had a positive nice value (executed tasks with low priority).
cpu.iqr
Number of milliseconds spent addressing hardware interrupts.
cpu.<metric>Average
All metrics with the suffix Average are the mean values calculated across all CPUs.
Examples
var getMetrics = require( 'metrics-os' );
for ( var i = 0; i < 10; i++ ) {
setTimeout( onTimeout, 1000*i );
}
function onTimeout() {
JSON.stringify( getMetrics() );
}To run an example from the top-level application directory,
$ node ./examples/index.jsNotes
As stated in the Node.js [documentation](http://nodejs.org/api/os.html#os_os_loadavg), `loadavg` is __not__ supported on Windows platforms.Note that the length of the CPU metric `array` is __one more than__ the number of CPUs.The metric naming scheme follows the conventions set forth in [doc-metrix](https://github.com/doc-metrix).
Tests
Unit
Unit tests use the Mocha test framework with Chai assertions. To run the tests, execute the following command in the top-level application directory:
$ make testAll new feature development should have corresponding unit tests to validate correct functionality.
Test Coverage
This repository uses Istanbul as its code coverage tool. To generate a test coverage report, execute the following command in the top-level application directory:
$ make test-covIstanbul creates a ./reports/coverage directory. To access an HTML version of the report,
$ make view-covLicense
Copyright
Copyright © 2014. Athan Reines.