Metadata-Version: 2.1
Name: obserware
Version: 0.2.9
Summary: An advanced system monitor utility written in Python and Qt
Home-page: https://gitlab.com/t0xic0der/obserware
License: GPL-3.0-or-later
Keywords: qt,monitoring,performance,linux,observation
Author: Akashdeep Dhar
Author-email: akashdeep.dhar@gmail.com
Maintainer: Akashdeep Dhar
Maintainer-email: akashdeep.dhar@gmail.com
Requires-Python: >=3.8,<4.0
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: X11 Applications
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: GNU General Public License v3 or later (GPLv3+)
Classifier: Natural Language :: English
Classifier: Operating System :: POSIX :: Linux
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Topic :: System :: Monitoring
Classifier: Topic :: System :: Operating System
Classifier: Topic :: Utilities
Requires-Dist: distro (>=1.6.0,<2.0.0)
Requires-Dist: psutil (>=5.8.0,<6.0.0)
Requires-Dist: py-cpuinfo (>=8.0.0,<9.0.0)
Requires-Dist: pyqt5 (>=5.15.6,<6.0.0)
Requires-Dist: pyqtchart (>=5.15.2,<6.0.0)
Project-URL: Documentation, https://gitlab.com/t0xic0der/obserware/-/blob/main/README.md
Project-URL: Repository, https://gitlab.com/t0xic0der/obserware
Description-Content-Type: text/markdown

# 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
- While adapting to the global system-wide theming options on Qt-based desktop environments like KDE Plasma or LXQt

## Find it on

1. [**PyPI**](https://pypi.org/project/obserware/)  
   [![PyPI version](https://img.shields.io/pypi/v/obserware?style=flat-square)](https://pypi.org/project/obserware/)  
2. [**Fedora COPR**](https://copr.fedorainfracloud.org/coprs/t0xic0der/obserware/)  
   [![Copr build status](https://copr.fedorainfracloud.org/coprs/t0xic0der/obserware/package/obserware/status_image/last_build.png)](https://copr.fedorainfracloud.org/coprs/t0xic0der/obserware/package/obserware/)  
3. [**Product Hunt**](https://www.producthunt.com/posts/obserware)  
   1. [Vote](https://www.producthunt.com/posts/obserware?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-obserware)  
      [![](https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=321452&theme=dark)](https://www.producthunt.com/posts/obserware?utm_source=badge-featured&utm_medium=badge&utm_souce=badge-obserware)  
   2. [Review](https://www.producthunt.com/posts/obserware?utm_source=badge-review&utm_medium=badge&utm_souce=badge-obserware#discussion-body)  
      [![](https://api.producthunt.com/widgets/embed-image/v1/review.svg?post_id=321452&theme=dark)](https://www.producthunt.com/posts/obserware?utm_source=badge-review&utm_medium=badge&utm_souce=badge-obserware#discussion-body)  

## 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**  
   1. _Resources tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainrsrc.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_mainrsrc.png)  
   2. _Activities tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainproc.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_mainproc.png)  
   3. _Performance tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainperf.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_mainperf.png)  
   4. _Connections tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainproc.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_mainntwk.png)  
   5. _Partitions tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_mainpart.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_mainpart.png)  
   6. _Information tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_maininfo.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_maininfo.png)  
   7. _Contribute tabscreen_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_maincntb.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_maincntb.png)  
2. **Dialogs**  
   1. _Process information dialog_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_procwind.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_procwind.png)  
3. **Logging**  
   1. _Sample log outputs_  
      Find [here](https://gitlab.com/t0xic0der/obserware/-/blob/main/screenshots/obsr_logetext.png)  
      ![](https://gitlab.com/t0xic0der/obserware/-/raw/main/screenshots/obsr_logetext.png)  

