systeminformation 5.7.14 → 5.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -77,6 +77,7 @@ For major (breaking) changes - **version 4, 3 and 2** - see end of page.
77
77
 
78
78
  | Version | Date | Comment |
79
79
  | -------------- | -------------- | -------- |
80
+ | 5.8.0 | 2021-08-02 | `disksIO()` added waitTime, waitPercent (linux) |
80
81
  | 5.7.14 | 2021-08-01 | `cpu()` cache calculation fix (linux) |
81
82
  | 5.7.13 | 2021-07-28 | `osInfo()` fix uefi detection (win) |
82
83
  | 5.7.12 | 2021-07-27 | `osInfo()` fix uefi detection (win) |
package/README.md CHANGED
@@ -103,6 +103,7 @@ si.cpu()
103
103
 
104
104
  (last 7 major and minor version releases)
105
105
 
106
+ - Version 5.8.0: `disksIO()` added waitTime, waitPercent (linux)
106
107
  - Version 5.7.0: `diskLayout()` added S.M.A.R.T for Windows (if installed)
107
108
  - Version 5.6.0: `cpuTemperature()` added added socket and chipset temp (linux)
108
109
  - Version 5.5.0: `dockerVolumes()` added
@@ -446,6 +447,12 @@ Full function reference with examples can be found at [https://systeminformation
446
447
  | | rIO_sec | X | | X | | | read IO per sec (* see notes) |
447
448
  | | wIO_sec | X | | X | | | write IO per sec (* see notes) |
448
449
  | | tIO_sec | X | | X | | | total IO per sec (* see notes) |
450
+ | | rWaitTime | X | | | | | read IO request time (* see notes) |
451
+ | | wWaitTime | X | | | | | write IO request time (* see notes) |
452
+ | | tWaitTime | X | | | | | total IO request time (* see notes) |
453
+ | | rWaitPercent | X | | | | | read IO request time percent (* see notes) |
454
+ | | wWaitPercent | X | | | | | write IO request time percent (* see notes) |
455
+ | | tWaitPercent | X | | | | | total IO request time percent (* see notes) |
449
456
  | | ms | X | | X | | | interval length (for per second values) |
450
457
  | si.fsSize(cb) | [{...}] | X | X | X | X | | returns array of mounted file systems |
451
458
  | | [0].fs | X | X | X | X | | name of file system |
package/lib/filesystem.js CHANGED
@@ -590,7 +590,7 @@ function fsStats(callback) {
590
590
 
591
591
  exports.fsStats = fsStats;
592
592
 
593
- function calcDiskIO(rIO, wIO) {
593
+ function calcDiskIO(rIO, wIO, rWaitTime, wWaitTime, tWaitTime) {
594
594
  let result = {
595
595
  rIO: 0,
596
596
  wIO: 0,
@@ -598,6 +598,12 @@ function calcDiskIO(rIO, wIO) {
598
598
  rIO_sec: null,
599
599
  wIO_sec: null,
600
600
  tIO_sec: null,
601
+ rWaitTime: 0,
602
+ wWaitTime: 0,
603
+ tWaitTime: 0,
604
+ rWaitPercent: null,
605
+ wWaitPercent: null,
606
+ tWaitPercent: null,
601
607
  ms: 0
602
608
  };
603
609
  if (_disk_io && _disk_io.ms) {
@@ -608,22 +614,43 @@ function calcDiskIO(rIO, wIO) {
608
614
  result.rIO_sec = (result.rIO - _disk_io.rIO) / (result.ms / 1000);
609
615
  result.wIO_sec = (result.wIO - _disk_io.wIO) / (result.ms / 1000);
610
616
  result.tIO_sec = result.rIO_sec + result.wIO_sec;
617
+ result.rWaitTime = rWaitTime;
618
+ result.wWaitTime = wWaitTime;
619
+ result.tWaitTime = tWaitTime;
620
+ result.rWaitPercent = (result.rWaitTime - _disk_io.rWaitTime) * 100 / (result.ms);
621
+ result.wWaitPercent = (result.wWaitTime - _disk_io.wWaitTime) * 100 / (result.ms);
622
+ result.tWaitPercent = (result.tWaitTime - _disk_io.tWaitTime) * 100 / (result.ms);
611
623
  _disk_io.rIO = rIO;
612
624
  _disk_io.wIO = wIO;
613
625
  _disk_io.rIO_sec = result.rIO_sec;
614
626
  _disk_io.wIO_sec = result.wIO_sec;
615
627
  _disk_io.tIO_sec = result.tIO_sec;
628
+ _disk_io.rWaitTime = rWaitTime;
629
+ _disk_io.wWaitTime = wWaitTime;
630
+ _disk_io.tWaitTime = tWaitTime;
631
+ _disk_io.rWaitPercent = result.rWaitPercent;
632
+ _disk_io.wWaitPercent = result.wWaitPercent;
633
+ _disk_io.tWaitPercent = result.tWaitPercent;
616
634
  _disk_io.last_ms = result.ms;
617
635
  _disk_io.ms = Date.now();
618
636
  } else {
619
637
  result.rIO = rIO;
620
638
  result.wIO = wIO;
621
639
  result.tIO = rIO + wIO;
640
+ result.rWaitTime = rWaitTime;
641
+ result.wWaitTime = wWaitTime;
642
+ result.tWaitTime = tWaitTime;
622
643
  _disk_io.rIO = rIO;
623
644
  _disk_io.wIO = wIO;
624
645
  _disk_io.rIO_sec = null;
625
646
  _disk_io.wIO_sec = null;
626
647
  _disk_io.tIO_sec = null;
648
+ _disk_io.rWaitTime = rWaitTime;
649
+ _disk_io.wWaitTime = wWaitTime;
650
+ _disk_io.tWaitTime = tWaitTime;
651
+ _disk_io.rWaitPercent = null;
652
+ _disk_io.wWaitPercent = null;
653
+ _disk_io.tWaitPercent = null;
627
654
  _disk_io.last_ms = 0;
628
655
  _disk_io.ms = Date.now();
629
656
  }
@@ -648,10 +675,19 @@ function disksIO(callback) {
648
675
  rIO_sec: null,
649
676
  wIO_sec: null,
650
677
  tIO_sec: null,
678
+ rWaitTime: 0,
679
+ wWaitTime: 0,
680
+ tWaitTime: 0,
681
+ rWaitPercent: null,
682
+ wWaitPercent: null,
683
+ tWaitPercent: null,
651
684
  ms: 0
652
685
  };
653
686
  let rIO = 0;
654
687
  let wIO = 0;
688
+ let rWaitTime = 0;
689
+ let wWaitTime = 0;
690
+ let tWaitTime = 0;
655
691
 
656
692
  if ((_disk_io && !_disk_io.ms) || (_disk_io && _disk_io.ms && Date.now() - _disk_io.ms >= 500)) {
657
693
  if (_linux || _freebsd || _openbsd || _netbsd) {
@@ -671,8 +707,11 @@ function disksIO(callback) {
671
707
  let stats = line.split(';');
672
708
  rIO += parseInt(stats[0]);
673
709
  wIO += parseInt(stats[4]);
710
+ rWaitTime += parseInt(stats[3]);
711
+ wWaitTime += parseInt(stats[7]);
712
+ tWaitTime += parseInt(stats[10]);
674
713
  });
675
- result = calcDiskIO(rIO, wIO);
714
+ result = calcDiskIO(rIO, wIO, rWaitTime, wWaitTime, tWaitTime);
676
715
 
677
716
  if (callback) {
678
717
  callback(result);
@@ -699,7 +738,7 @@ function disksIO(callback) {
699
738
  wIO += parseInt(line[0]);
700
739
  }
701
740
  });
702
- result = calcDiskIO(rIO, wIO);
741
+ result = calcDiskIO(rIO, wIO, rWaitTime, wWaitTime, tWaitTime);
703
742
  }
704
743
  if (callback) {
705
744
  callback(result);
@@ -715,6 +754,12 @@ function disksIO(callback) {
715
754
  result.rIO_sec = _disk_io.rIO_sec;
716
755
  result.wIO_sec = _disk_io.wIO_sec;
717
756
  result.tIO_sec = _disk_io.tIO_sec;
757
+ result.rWaitTime = _disk_io.rWaitTime;
758
+ result.wWaitTime = _disk_io.wWaitTime;
759
+ result.tWaitTime = _disk_io.tWaitTime;
760
+ result.rWaitPercent = _disk_io.rWaitPercent;
761
+ result.wWaitPercent = _disk_io.wWaitPercent;
762
+ result.tWaitPercent = _disk_io.tWaitPercent;
718
763
  if (callback) {
719
764
  callback(result);
720
765
  }
package/lib/processes.js CHANGED
@@ -33,18 +33,24 @@ const _sunos = (_platform === 'sunos');
33
33
 
34
34
  const _processes_cpu = {
35
35
  all: 0,
36
+ all_utime: 0,
37
+ all_stime: 0,
36
38
  list: {},
37
39
  ms: 0,
38
40
  result: {}
39
41
  };
40
42
  const _services_cpu = {
41
43
  all: 0,
44
+ all_utime: 0,
45
+ all_stime: 0,
42
46
  list: {},
43
47
  ms: 0,
44
48
  result: {}
45
49
  };
46
50
  const _process_cpu = {
47
51
  all: 0,
52
+ all_utime: 0,
53
+ all_stime: 0,
48
54
  list: {},
49
55
  ms: 0,
50
56
  result: {}
@@ -471,10 +477,10 @@ function calcProcStatWin(procStat, all, _cpu_old) {
471
477
  }
472
478
  return {
473
479
  pid: procStat.pid,
474
- utime: procStat.utime,
475
- stime: procStat.stime,
476
- cpuu: cpuu,
477
- cpus: cpus
480
+ utime: cpuu > 0 ? procStat.utime : 0,
481
+ stime: cpus > 0 ? procStat.stime : 0,
482
+ cpuu: cpuu > 0 ? cpuu : 0,
483
+ cpus: cpus > 0 ? cpus : 0
478
484
  };
479
485
  }
480
486
 
@@ -788,8 +794,8 @@ function processes(callback) {
788
794
  let procs = [];
789
795
  let procStats = [];
790
796
  let list_new = {};
791
- let allcpuu = 0;
792
- let allcpus = 0;
797
+ let allcpuu = _processes_cpu.all_utime;
798
+ let allcpus = _processes_cpu.all_stime;
793
799
  for (let i = 0; i < processSections.length; i++) {
794
800
  if (processSections[i].trim() !== '') {
795
801
  let lines = processSections[i].trim().split('\r\n');
@@ -862,6 +868,8 @@ function processes(callback) {
862
868
  }
863
869
  // store old values
864
870
  _processes_cpu.all = allcpuu + allcpus;
871
+ _processes_cpu.all_utime = allcpuu;
872
+ _processes_cpu.all_stime = allcpus;
865
873
  // _processes_cpu.list = list_new;
866
874
  _processes_cpu.list = Object.assign({}, list_new);
867
875
  _processes_cpu.ms = Date.now() - _processes_cpu.ms;
@@ -953,8 +961,8 @@ function processLoad(proc, callback) {
953
961
  let processSections = stdout.split(/\n\s*\n/);
954
962
  let procStats = [];
955
963
  let list_new = {};
956
- let allcpuu = 0;
957
- let allcpus = 0;
964
+ let allcpuu = _process_cpu.all_utime;
965
+ let allcpus = _process_cpu.all_stime;
958
966
 
959
967
  // go through all processes
960
968
  for (let i = 0; i < processSections.length; i++) {
@@ -1051,6 +1059,8 @@ function processLoad(proc, callback) {
1051
1059
  }
1052
1060
  // store old values
1053
1061
  _process_cpu.all = allcpuu + allcpus;
1062
+ _process_cpu.all_utime = allcpuu;
1063
+ _process_cpu.all_stime = allcpus;
1054
1064
  // _process_cpu.list = list_new;
1055
1065
  _process_cpu.list = Object.assign({}, list_new);
1056
1066
  _process_cpu.ms = Date.now() - _process_cpu.ms;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "systeminformation",
3
- "version": "5.7.14",
3
+ "version": "5.8.0",
4
4
  "description": "Simple system and OS information library",
5
5
  "license": "MIT",
6
6
  "author": "Sebastian Hildebrandt <hildebrandt@plus-innovations.com> (https://plus-innovations.com)",