ps icon indicating copy to clipboard operation
ps copied to clipboard

Add `ps_disk_io_counters()` for Windows and Linux

Open michaelwalshe opened this issue 2 years ago • 1 comments

Implement ps_disk_io_counters for Linux and Windows based on psutil.

Adds new functions

  • ps_disk_io_counters: Exported user-facing function, to return data.frame of disk IO counters. Takes 1 argument, perdisk, whether to return a total or 1 row per disk
  • ps__disk_io_counters_linux: Internal function for linux implementation
  • ps__disk_io_counters_windows: Internal function for windows implementation
  • ps__is_storage_device: Whether a device is a root or logical partition (linux)
  • ps__read_procfs: Read disk stats from /proc/diskstats (linux)
  • ps__read_sysfs: Fallback for if /proc/diskstats doesn't exist, reads from /sys/block (linux)

Plus the following C function for windows:

  • ps__disk_io_counters: Internal function to return disk IO counters per disk

Implementation of all functions heavily based on implementation from https://github.com/giampaolo/psutil/blob/master/psutil/_pslinux.py

User facing ps_disk_io_counters is tested, although not extensively as that requires mocking e.g. readLines which testthat currently cannot do.

Closes #145.

michaelwalshe avatar Apr 21 '23 07:04 michaelwalshe

Hi @gaborcsardi, have just updated the NEWS.md so this should be ready for review/merge now, please let me know if there's anything I need to change or update.

michaelwalshe avatar Jun 26 '23 09:06 michaelwalshe

Thank you and sorry for the long wait! I adjusted it a bit, most importantly I removed the perdisk parameter, and added a macOS implementation. Thanks again!

gaborcsardi avatar Sep 01 '24 12:09 gaborcsardi