README.md

Obserware

An advanced system monitor utility written in Python and Qt

About

Obserware makes monitoring of advanced metrics accessible with the use of interactive graphs and charts. It is built on free and open-source technologies such as Python, Psutil, PyCPUinfo, Distro and Qt5. With the use of the utility, you can monitor

  • Advanced overview of the system health by monitoring CPU usage, memory utilization and swapping rate
  • Granular counts of context switches, system calls and interrupts of both natures, software and hardware
  • Per-core/per-thread CPU utilization, measured in both stress percentage and active clock speeds
  • Per-core/per-thread CPU state times, measured in both occupancy percentage and duration in seconds
  • Usage/availability information, measured in both occupancy percentage and active size in megabytes
  • Storage counters, measured in unit counts, size in bytes, duration in seconds, merge counts and busy time in seconds
  • Global network statistics gathered from all network interface cards, measured in packet count rate and size rate
  • Statistics of uploads and downloads made since boot, measured in packet counts and size in bytes
  • Per-NIC activity, transfer rate in packet counts and bytes, total transmission, dropped transfers and more
  • Per-unit metrics in both, occupancy percentage and active size of physical and logical partitions
  • Static information about mount location, file system, unit name and much more of physical and logical partitions
  • Dynamic listing of processes in process IDs, names, terminal, usernames, states, CPU and memory usage and thread counts
  • Per-process information with process IDs, CPU and memory usage, CPU/thread counts, context switches and more
  • Per-process control with options to kill, resume, terminate or suspend those on demand
  • Static software information on operating system and kernel as well as dependency versions for the application
  • Static hardware information on CPU name, vendor, frequency, available feature flags and more

Featured on

  1. I made an advanced system monitor for GNU/Linux distributions in Python 3.10 and Qt 5.15.0 for fun - Hope you like it! (r/python on Reddit)
  2. I made an advanced system monitor for GNU/Linux distributions in Python 3.10 and Qt 5.15.0 for fun - Hope you like it! (r/opensource on Reddit)
  3. Obserware (PyPI)
  4. Obserware (Product Hunt) - Vote and Review

Installation

For development

Using Poetry

  1. sudo dnf install python3-poetry
  2. git clone https://gitlab.com/t0xic0der/obserware.git
  3. cd obserware
  4. virtualenv venv
  5. source venv/bin/activate
  6. poetry install
  7. deactivate

For consumption

From Fedora COPR

  1. sudo dnf install dnf-plugins-core -y
  2. sudo dnf copr enable t0xic0der/obserware -y
  3. sudo dnf install obserware -y

From PyPI

  1. virtualenv venv
  2. source venv/bin/activate
  3. pip3 install obserware
  4. deactivate

Usage

For development

If installed via Poetry

  1. source venv/bin/activate
  2. obserware
  3. deactivate

For consumption

If installed from Fedora COPR

  1. Either, run obserware in a terminal
  2. Or, invoke the created desktop entry

If installed from PyPI

  1. source venv/bin/activate
  2. obserware
  3. deactivate

Screenshots

  1. Windows
  2. Performance tabscreen
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainperf.png
  3. Processes tabscreen
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainproc.png
  4. Information tabscreen
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_maininfo.png
  5. Contribute tabscreen
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_maincntb.png
  6. Dialogs
  7. CPU cycles dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_cyclwind.png
  8. CPU times dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_cputwind.png
  9. Storage counters dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_sostwind.png
  10. Network statistics dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_ntwkwind.png
  11. Physical partitions dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_phptwind.png
  12. Logical partitions dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_lgptwind.png
  13. Process information dialog
    Find here https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_procwind.png