Mike Driscoll has been posting some awesome posts about psutil
lately.
I'm interested in making my own system monitoring dashboard now using this library.
I don't expect it to compete with Netdata or Glances but it'll just be for fun to see how Python can solve this problem!
Repo coming soon
Example code:
Here's a short snippit to get used/available/total RAM and disk space (on partitions that you probably care about)
import psutil
import socket
print(f"System Memory used: {psutil.virtual_memory().used // (1024 ** 3)} GB")
print(f"System Memory available: {psutil.virtual_memory().available // (1024 ** 3)} GB")
print(f"System Memory total: {psutil.virtual_memory().total // (1024 ** 3)} GB")
print(f"Hostname: {socket.gethostname()}")
partitions = psutil.disk_partitions()
for part in partitions:
mnt = part.mountpoint
if "snap" in mnt or "boot" in mnt:
continue
disk = psutil.disk_usage(mnt)
print(f"Usage at {mnt} on {part.device}: {disk.used // (1024 ** 3)} GB")
print(f"Free at {mnt} on {part.device}: {disk.free // (1024 ** 3)}GB")
print(f"Total at {mnt} on {part.device}: {disk.total // (1024 ** 3)}GB")
Bonus Ipython tip! Save this to a script called my_script.py and in Ipython you can %run -m my_script to run it!
project ↪ main v3.8.11 ipython
❯ %run -m system-monitor-psutils
System Memory used: 25 GB
System Memory available: 5 GB
System Memory total: 31 GB
Hostname: ryzen-3600x
Usage at / on /dev/nvme1n1p2: 81 GB
Free at / on /dev/nvme1n1p2: 351 GB
Total at / on /dev/nvme1n1p2: 456 GB