I wrote an advanced system monitor for GNU/Linux distributions for fun - Do give it a try!

Why did I write this? Of course, you would expect me to tell you about the system monitors that exist now and why they fall short but no - I would not do that. To be honest, I was bored and I wanted to do something different. I had to make sure that the “different” stuff that I would plan to do did not end up in the pile of projects that I just gave up on due to the ambitiousness of the ideas. I also had to strike a good balance in my schedule to keep at being a good lead (highly subjective) to the Fedora Websites and Apps team, an insightful mentor (well, ask her if I am or not) to my awesome Outreachy intern - Subhangi Choudhary and a member of the Community Platform Engineering team.

So, my “different” stuff ended up being a “tame” effort to create a system monitor (in the wake of thousands of them already available) that helped make monitoring of advanced metrics accessible to the users with the use of interactive graphs and charts. It was my opportunity to learn more about designing complex interfaces using multithreading with Qt and managing a Python project at a medium-large scale. Monitoring and observability, both have been things that, if you whisper in a crowded place, would still draw my attention. I have been very interested in them and, I even wrote some projects around them - for instance, SuperVisor Frontend Service and Driver Service. Hence, I came up with Obserware!

If you did not notice it yet, the word is a portmanteau of the words - “Observation” and “Software” - pinned together in a way that it forms a pun (so yeah, pun intended lol) sounding like “Observer”. It does end up looking relatable to the purpose of the project and talking about purposes - one of the primary purposes was to ensure that the project was available to the users as organically as possible. Now, what exactly do I mean by that? Simply put, I would not want the users to clone and build the project locally to use it. That can be pretty inconvenient for an average technical person - not to mention how ugly it can become while performing upgrades/downgrades across multiple versions.

With countless messages communicated (admittedly, some in Bengali) on discussing this in the Fedora India Telegram channel, @akarshanbiswas, @ankursinha, @siddharthvipul1 have been of great assistance in making this project happen and ironing out issues related to the project’s look and feel as well as packaging. I picked Poetry up from the dealings I have had with another Python codebase - thanks to @nphilipp for letting me know of its existence and helping me with the fedpkg commands along with @thunderbirdtr! While still being something that is actively worked upon and has not yet reached its 1.0 mark, it is something that I would love for you folks to give a try on your Fedora 35 or Rawhide installations, and let me know how you feel about it.

Here are some screenshots. Please expand the hidden sections to view them.

From the main window
  1. Performance tabscreen
  2. Processes tabscreen
  3. Information tabscreen
  4. Contribute tabscreen
From the CPU section
  1. CPU cycles dialog
  2. CPU times dialog
From the storage section
  1. Storage counters dialog
  2. Physical partitions dialog
  3. Logical partitions dialog
From the network section
  1. Network statistics dialog
From the process section
  1. Process information dialog

Right - I almost forgot to tell you where you can obtain the project from and how you can install it on your devices. There’s support for only x86 (if you’re using this, that is) and x86_64 architectures as of now. I have planned to add support for ARMv7 and AARCH64 architectures in future, should the project garner enough activity, both in community popularity and technical contributions. Please note that Obserware is stable to use and, the version numbers used here are not representative of the software readiness. The only reason why it has not yet reached the 1.0 mark is that the user interface and the underlying metrics reading code are actively reworked, for the better.

If you use Fedora Linux (35 or Rawhide) - you can install Obserware by enabling my COPR repository which you can find here. Simply execute the following commands in succession to install the application.

$ sudo dnf install dnf-plugins-core -y
$ sudo dnf copr enable t0xic0der/obserware -y
$ sudo dnf install obserware -y

If you’re running some other GNU/Linux distribution, you can obtain Obserware from my PyPI project, which you can find here. Simply execute the following command inside of an activated virtual environment. While an activated virtual environment is not strictly necessary, it is strongly recommended to install Obserware in one to avoid its dependencies, breaking any other software that might happen to use those.

$ pip3 install obserware

Please feel free to report your bugs, criticisms, feature requests here and also, if you ended up liking the project - do give the repository stars to let me know you appreciate the project and want to see it grow. Thank you for reading through this large post and I wish you a very happy new year!

11 Likes