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:
    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}: { // (1024 ** 3)}GB")
    print(f"Total at {mnt} on {part.device}: { // (1024 ** 3)}GB")

Bonus Ipython tip! Save this to a script called 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