Local OS monitoring client with Python
This script monitores:
- CPU usage (percent)
- RAM usage (percent)
- Swap usage (percent)
- Root disk usage (percent)
It's all saved on a CSV file named 'consume-metrics-YEAR-MONTH-DAY.csv' the csv structure is:
year-month-day,hout:minute:second,cpu usage,ram usage,swap usage,root disk usage,process1 pid-process1 name-process1 cpu usage-process1 mem usage|process2...
Here is the script
import psutil import datetime import time while True: momment = datetime.datetime.now() year = momment.year month = momment.month day = momment.day hour = momment.hour minute = momment.minute second = momment.second cpu = psutil.cpu_percent() ram = psutil.virtual_memory().percent swap = psutil.swap_memory().percent root_disk = psutil.disk_usage('/').percent processes = [] for process in psutil.process_iter(['pid', 'name']): try: cpu_usage = process.cpu_percent(interval=0) memory_info = process.memory_info().rss except Exception as e: print(f'ERROR : {e}') else: processes.append(f"{process.info['pid']}-{process.info['name']}-{cpu_usage}-{memory_info}") processes = '|'.join(processes) print(f'{year}-{month}-{day},{hour}:{minute}:{second},{cpu},{ram},{swap},{root_disk},{processes}') with open(f'consume-metrics-{year}-{month}-{day}.csv', 'a+') as logfile: logfile.write(f'{year}-{month}-{day},{hour}:{minute}:{second},{cpu},{ram},{swap},{root_disk},{processes}\n') time.sleep(1)