Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ps_disk_io_counters() for Windows and Linux #147

Merged
merged 15 commits into from
Sep 1, 2024

Conversation

michaelwalshe
Copy link

@michaelwalshe michaelwalshe commented Apr 21, 2023

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 michaelwalshe changed the title Feature: ps_disk_io_counters() Add ps_disk_io_counters() for Windows and Linux Jun 26, 2023
@michaelwalshe
Copy link
Author

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.

- no need to 'perdisk' parameter, people can summarize a DF.
- add stub for macos implementation
- fix @examplesIf condition in manual
- polish code style
- move repeated tests to common tests
@gaborcsardi
Copy link
Member

gaborcsardi commented Sep 1, 2024

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 gaborcsardi merged commit 6c0af5e into r-lib:main Sep 1, 2024
14 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Feature Request: System Disk IO Counters
2 participants