systeminformation
Advanced tools
Comparing version 2.0.5 to 3.0.0
{ | ||
"name": "systeminformation", | ||
"version": "2.0.5", | ||
"version": "3.0.0", | ||
"description": "Simple system and OS information library", | ||
@@ -37,4 +37,4 @@ "license": "MIT", | ||
"engines": { | ||
"node": ">=0.10" | ||
"node": ">=4.0.0" | ||
} | ||
} |
161
README.md
@@ -7,2 +7,4 @@ # systeminformation | ||
[![NPM Downloads][downloads-image]][downloads-url] | ||
[![Git Issues][issues-img]][issues-url] | ||
[![deps status][daviddm-img]][daviddm-url] | ||
[![MIT license][license-img]][license-url] | ||
@@ -25,2 +27,3 @@ | ||
// callback style | ||
si.cpu(function(data) { | ||
@@ -30,11 +33,43 @@ console.log('CPU-Information:'); | ||
}) | ||
// promises style | ||
si.cpu() | ||
.then(data => console.log(data)) | ||
.catch(error => console.error(error)); | ||
``` | ||
### Major Changes - Version 2 | ||
### Major (breaking) Changes - Version 3 | ||
There are a lot of changes in version 2 of systeminformation! Here is a quick overview: | ||
- works only with [node.js][nodejs-url] **v4.0.0** and above (using now internal ES6 promise function, arrow functions, ...) | ||
- **Promises**. As you can see above, you can now also use it in a promise oriented way. But callbacks are still supported. | ||
- `cpuCurrentspeed`: now returns an object with current minimal, maximal and average CPU frequencies of all cores. | ||
- `networkInterfaces`: now providing one more detail: internal - true if this is an internal interface like "lo" | ||
- `mem`: now supports also `free` (Version 3.3.10 and above); extended information `avaliable` (potentially available memory) | ||
- `fsStats`: added information sum bytes read + write (tx) and sum transfer rate/sec (tx_sec) | ||
- `networkConnections`: instead of only counting sockets, you now get an array of objects with connection details for each socket (protocol, local and peer address, state) | ||
- `users`: now provides an array of objects with users online including detailed session information (login date/time, ip address, terminal, command) | ||
- `inetLatency`: now you can provide a host against which you want to test latency (default is 8.8.8.8) | ||
- `getDynamicData`: changed order of parameters (callback - if provided - is now the last one): `getDynamicData(srv, network, callback)` | ||
- `getAllData`: changed order of parameters (callback - if provided - is now the last one): `getAllData(srv, network, callback)` | ||
New Functions | ||
New Functions | ||
- `version`: returns systeminformation version (semver) | ||
- `disksIO`: returns overall diskIO and IOPS values for all mounted volumes | ||
Bug Fixes | ||
- several bug fixes (like assess errors) | ||
- testet on even more platforms and linux distributions | ||
**Be aware**, that the new version 3.x is **NOT fully backward compatible** to version 2.x ... | ||
### Major (breaking) Changes - Version 2 | ||
There had been a lot of changes in version 2 of systeminformation! Here is a quick overview (for those who come from version 1): | ||
New Functions | ||
- `version`: returns systeminformation version (semver) of this library | ||
- `system`: hardware info (manufacturer, product/model name, version, serial, uuid) | ||
@@ -67,8 +102,8 @@ - `networkConnections`: number of active connections | ||
- `cpu_currentspeed`/`cpuCurrentspeed`: now in GHz | ||
- `cpu`: splitted `manufacturer` (e.g. Intel) and `brand` (e.g. Core 2 Duo) | ||
- `cpu`: splitted `manufacturer` (e.g. Intel) and `brand` (e.g. Core 2 Duo) | ||
- `network_speed`/`networkStats`: now better support for OS X (also support for `operstate`) | ||
- `network_speed`/`networkStats`: overall received and transferred bytes (rx, tx) | ||
- `network_speed`/`networkStats`: overall received and transferred bytes (rx, tx) | ||
- `mem`: now better support for OS X (also support for `swaptotal`, `swapused`, `swapfree`) | ||
- `fs_size`/`fsSize`: use-values now in % (0 - 100% instead of 0 - 1) | ||
- `fs_speed`/`fsStats`: now also full support for OS X | ||
- `fs_size`/`fsSize`: use-values now in % (0 - 100% instead of 0 - 1) | ||
- `fs_speed`/`fsStats`: now also full support for OS X | ||
- `checksite`/`inetChecksite`: new result structure - see command reference | ||
@@ -82,11 +117,10 @@ - `checksite`/`inetChecksite`: ms (former `response_ms`): -1 if not ok | ||
**Be aware**, that the new version 2.x is **NOT backward compatible** to version 1.x .... | ||
## Core concept | ||
[Node.js][nodejs-url] comes with some basic OS information, but I always wanted a little more. So I came up to write this | ||
little library. This library is still work in progress. In version 2 I cleaned up a lot of inconsistencies and bugs, but | ||
there is for sure room for improvement. I was only able to test it on several Debian, Raspbian, Ubuntu distributions as well | ||
as OS X (Mavericks, Yosemite, El Captain). Version 2 now also supports nearly all functionality on OS X/Darwin platforms. | ||
But be careful, this library will definitely NOT work on Windows platforms! | ||
[Node.js][nodejs-url] comes with some basic OS information, but I always wanted a little more. So I came up to write this | ||
little library. This library is still work in progress. Version 3 comes with further improvements. First it | ||
requires now node.js version 4.0 and above. Another big change is, that all functions now return promises. You can use them | ||
like before with callbacks OR with promises (see example in this documentation). I am sure, there is for sure room for improvement. | ||
I was only able to test it on several Debian, Raspbian, Ubuntu distributions as well as OS X (Mavericks, Yosemite, El Captain). | ||
Since version 2 nearly all functionality is available on OS X/Darwin platforms. But be careful, this library will definitely NOT work on Windows platforms! | ||
@@ -141,3 +175,6 @@ If you have comments, suggestions & reports, please feel free to contact me! | ||
| - cores | X | X | # cores | | ||
| si.cpuCurrentspeed(cb) | X | X | current speed (in GHz)| | ||
| si.cpuCurrentspeed(cb) | X | X | current CPU speed (in GHz)| | ||
| - avg | X | | avg CPU speed (all cores) | | ||
| - min | X | | min CPU speed (all cores) | | ||
| - max | X | | max CPU speed (all cores) | | ||
| si.cpuTemperature(cb) | X | | CPU temperature (if sensors is installed) | | ||
@@ -148,7 +185,8 @@ | - main | X | | main temperature | | ||
| si.mem(cb) | X | X | Memory information| | ||
| - total | X | X | | | ||
| - free | X | X | | | ||
| - used | X | X | | | ||
| - active | X | X | | | ||
| - buffcache | X | X | | | ||
| - total | X | X | total memory | | ||
| - free | X | X | not used | | ||
| - used | X | X | used (incl. buffers/cache) | | ||
| - active | X | X | used actively (excl. buffers/cache) | | ||
| - buffcache | X | X | used by buffers+cache | | ||
| - available | X | X | potentially available (total - active) | | ||
| - swaptotal | X | X | | | ||
@@ -166,4 +204,15 @@ | - swapused | X | X | | | ||
| - wx | X | X | bytes written since startup | | ||
| - tx | X | X | total bytes read + written since startup | | ||
| - rx_sec | X | X | bytes read / second (* see notes) | | ||
| - wx_sec | X | X | bytes written / second (* see notes) | | ||
| - tx_sec | X | X | total bytes reads + written / second | | ||
| - ms | X | X | interval length (for per second values) | | ||
| si.disksIO(cb) | X | X | current transfer stats | | ||
| - rIO | X | X | read IOs on all mounted drives | | ||
| - wIO | X | X | write IOs on all mounted drives | | ||
| - tIO | X | X | write IOs on all mounted drives | | ||
| - rIO_sec | X | X | read IO per sec (* see notes) | | ||
| - wIO_sec | X | X | write IO per sec (* see notes) | | ||
| - tIO_sec | X | X | total IO per sec (* see notes) | | ||
| - ms | X | | interval length (for per second values) | | ||
| si.networkInterfaces(cb) | X | X | array of network interfaces | | ||
@@ -173,3 +222,4 @@ | - [0].iface | X | X | interface name | | ||
| - [0].ip6 | X | X | ip6 address | | ||
| si.networkStats('eth1',cb) | X | X | current network stats of given interface | | ||
| - [0].internal | X | X | true if internal interface | | ||
| si.networkStats(iface,cb) | X | X | current network stats of given interface<br>iface parameter is optional<br>defaults to first external network interface| | ||
| - iface | X | X | interface | | ||
@@ -181,2 +231,10 @@ | - operstate | X | X | up / down | | ||
| - tx_sec | X | X | transferred bytes per second (* see notes) | | ||
| - ms | X | X | interval length (for per second values) | | ||
| si.networkConnections(cb) | X | X | current network network connections<br>returns an array of all connections| | ||
| - [0].protocol | X | X | tcp or udp | | ||
| - [0].localaddress | X | X | local address | | ||
| - [0].localport | X | X | local port | | ||
| - [0].peeraddress | X | X | peer address | | ||
| - [0].peerport | X | X | peer port | | ||
| - [0].state | X | X | like ESTABLISHED, TIME_WAIT, ... | | ||
| si.currentLoad(cb) | X | X | CPU-Load in % | | ||
@@ -196,2 +254,8 @@ | si.fullLoad(cb) | X | X | CPU-full load since bootup in % | | ||
| si.users(cb) | X | X | array of users online | | ||
| - [0].user | X | X | user name | | ||
| - [0].tty | X | X | terminal | | ||
| - [0].date | X | X | login date | | ||
| - [0].time | X | X | login time | | ||
| - [0].ip | X | X | ip address (remote login) | | ||
| - [0].command | X | X | last command or shell | | ||
| si.inetChecksite(url, cb) | X | X | response-time (ms) to fetch given URL | | ||
@@ -202,12 +266,13 @@ | - url | X | X | given url | | ||
| - ms | X | X | response time in ms | | ||
| si.inetLatency(cb) | X | X | response-time (ms) to external ressource | | ||
| si.inetLatency(host, cb) | X | X | response-time (ms) to external resource<br>host parameter is optional (default 8.8.8.8)| | ||
| si.getStaticData(cb) | X | X | all static data at once | | ||
| si.getDynamicData(cb,srv,iface) | X | X | all dynamic data at once | | ||
| si.getAllData(cb,srv,iface) | X | X | all data at once | | ||
| si.getDynamicData(srv,iface,cb) | X | X | all dynamic data at once | | ||
| si.getAllData(srv,iface,cb) | X | X | all data at once | | ||
### cb: Asynchronous Function Calls (callback) | ||
Remember: all functions (except `version` and `time`) are implemented as asynchronous (callback) functions! | ||
So another example, how to use a specific function might be: | ||
Remember: all functions (except `version` and `time`) are implemented as asynchronous functions! There are now two ways to consume them: | ||
**Callback Style** | ||
``` | ||
@@ -226,6 +291,24 @@ var si = require('systeminformation'); | ||
**Promises Style** (new in version 3.0) | ||
When omitting callback parameter (cb), then you can use all function in a promise oriented way: | ||
``` | ||
si.networkStats('eth1') | ||
.then(data => { | ||
console.log('Network Interface Stats (eth1):'); | ||
console.log('- is up: ' + data.operstate); | ||
console.log('- RX bytes overall: ' + data.rx); | ||
console.log('- TX bytes overall: ' + data.tx); | ||
console.log('- RX bytes/sec: ' + data.rx_sec); | ||
console.log('- TX bytes/sec: ' + data.tx_sec); | ||
}) | ||
.catch(error => console.error(error)); | ||
``` | ||
### *: Additional Notes | ||
In `fsStats` and `networkStats` the results per second values (rx_sec, ...) are calculated beginning | ||
with the second call of the function. It is determined by calculating the difference of transferred bytes | ||
In `fsStats`, `disksIO` and `networkStats` the results per second values (rx_sec, IOPS, ...) are calculated beginning | ||
with the second call of the function. It is determined by calculating the difference of transferred bytes / IOs | ||
divided by the time between two calls of the function. | ||
@@ -237,3 +320,3 @@ | ||
For OS X, I did not find a reliable way to get the CPU temperature. All suggestions I found did not work on current version of OS X on different machines (intel platform). So if anyone has an idea, this would be helpful. | ||
For OS X, I did not find a reliable way to get the CPU temperature. All suggestions I found did not work on current version of OS X on different machines (intel platform). So if anyone has an idea, this would be helpful. | ||
@@ -246,2 +329,3 @@ I am happy to discuss any comments and suggestions. Please feel free to contact me if you see any possibility of improvement! | ||
| -------------- | -------------- | -------- | | ||
| 3.0.0 | 2016-08-03 | new major version 3.0 | | ||
| 2.0.5 | 2016-03-02 | changed .gitignore | | ||
@@ -284,9 +368,10 @@ | 2.0.4 | 2016-02-22 | tiny correction - removed double quotes CPU brand, ... | | ||
- Riccardo Novaglia [richy24](https://github.com/richy24) | ||
- Quentin Busuttil [Buzut](https://github.com/Buzut) | ||
## Copyright Information | ||
Linux is a registered trademark of Linus Torvalds, OS X is a registered trademark of Apple Inc., | ||
Windows is a registered trademark of Microsoft Corporation. Node.js is a trademark of Joyent Inc., | ||
Intel is a trademark of Intel Corporation, Raspberry Pi is a trademark of the Raspberry Pi Foundation, | ||
Debian is a trademark of the Debian Project, Ubuntu is a trademark of Canonical Ltd. | ||
Linux is a registered trademark of Linus Torvalds, OS X is a registered trademark of Apple Inc., | ||
Windows is a registered trademark of Microsoft Corporation. Node.js is a trademark of Joyent Inc., | ||
Intel is a trademark of Intel Corporation, Raspberry Pi is a trademark of the Raspberry Pi Foundation, | ||
Debian is a trademark of the Debian Project, Ubuntu is a trademark of Canonical Ltd. | ||
All other trademarks are the property of their respective owners. | ||
@@ -317,3 +402,3 @@ | ||
>THE SOFTWARE. | ||
> | ||
> | ||
>Further details see [LICENSE](LICENSE) file. | ||
@@ -332,1 +417,7 @@ | ||
[nodejs-url]: https://nodejs.org/en/ | ||
[daviddm-img]: https://img.shields.io/david/sebhildebrandt/systeminformation.svg?style=flat-square | ||
[daviddm-url]: https://david-dm.org/sebhildebrandt/systeminformation | ||
[issues-img]: https://img.shields.io/github/issues/sebhildebrandt/systeminformation.svg?style=flat-square | ||
[issues-url]: https://github.com/sebhildebrandt/systeminformation/issues |
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
90115
6
1867
406