This is a text-only version of the following page on https://raymii.org: --- Title : Leaf Node Monitoring v2023.01 released, major performance improvements, new layout and new checks! Author : Remy van Elst Date : 05-01-2023 URL : https://raymii.org/s/blog/Leaf_Node_Monitoring_v2023.01_released.html Format : Markdown/HTML --- I'm pleased to announce the next version of Leaf Node Monitoring, the simple and easy to use open source site and server monitoring tool. Major new features include a responsive and adjustable layout, massive performance improvements and a new check type, allowing you to execute external processes, for example, the nagios/monitoring plugins. This post goes over everything that is new in this release. This post is cross-posted on [the official Leaf Node Monitoring][0] website. [You can download the new version here.][1] Let's start off with a screen recording of the new version, demonstrating the new responsive layout. Note that any stuttering is due to the recording software. ![edit layout][2] ### Performance improvements The biggest but least visible new feature in this release is the massive speedup. All checks now run in their own thread, with intelligent thread management making sure the UI is not blocked. Valgrind and QML Profiling also showed a few pain points which have been resolved to make LeafNode Monitoring feel way more snappy. Using the Loader in QML to only load parts when required and not passing huge amounts of text via Qt signals/slots are a few of the other speed improvements. This is also the reason why this version took so long to release, I've rewritten the threading related code multiple times and only now am I a bit satisfied with it. I'll now go over the other new features in more detail. ### Responsive Layout One request I got from multiple people was to make the app more usable on larger screens, like a wall mounted monitor. Here is a picture showing a 2 column layout: ![Responsive Layout][3] Using the new controls, visible after clicking the arrow at the bottom of the app, you can resize the host cards and check tiles. Make them huge for a wall mounted monitor, make them small on your high-dpi Android phone. ![Layout controls][4] Here is a side by side comparison of the previous version (2022.01) together with this version, showing the same hosts. Can you imagine how much more useful this is on a big screen?
v2022.01 (old) v2023.01 (new)
My intention always was to have Leaf Node Monitoring running in a small window on the side. Since failed checks automatically are placed at the top, a quick glance should show you enough. But, I'm more than happy to incorporate user feedback, and I find setting the layout to be a bigger improved readability. Earlier I've written an article showcasing the new layout feature, you can [read it here][5]. Another visual improvement is the rounding of most corners. Since the most-used operating system in their 11th version also rounded corners, I thought, why not, lets be fancy. ### External Process Checks The other major new feature is a new check type, namely External Process checks. This allows you to configure any process and when it exit with an exit code other than 0, it will trigger an error. On the Linux side you can use [the monitoring plugins][6], on Windows you might use Powershell, for example a `Get-Process` command. The README file and the build in help list examples for both PowerShell and Linux. Here's how it looks when you add a check: ![Add external process check][7] Here is how a successful check and a failed check look, both on Windows as on Linux: ![Failed proc check linux][8] ![ok proc check][9] The above check is a Synology SNMP disk temperature check. The below check is a Windows Powershell `Get-Process` check, both failed and OK: ![win proc check fail][10] ![win proc ok][11] I'm still thinking about how to design a better check add / host edit screen. At the moment it still is a bit of a big list of buttons and fields. Keep an eye out for new versions since that is high on my todo list. But, adding this external process integration extends the functionality of LeafNode Monitoring by a huge amount, since you can now add any check or script you want and don't have to wait until I add it myself. ### Notifications for individual checks In the previous version, you were only notified when of a host status change and you had to go look yourself to see which check failed. Now you also receive notifications for each individual check. No history (yet), your window manager / operating system alert history is a useful alternative for now. ### Tray icon menu On the desktop, the tray icon can now be right-clicked to open a menu allowing you to quickly check all hosts or start/stop the timer or disable/enable notifications: ![tray icon menu][13] This is a small quality of life improvement which I find myself using often, more than I expected. ### Other fixes / additions* - The output of a check can now be selected (and copied). - Unit tests are added to the code and a CI build system has been setup. - Reworked the visual timer indicator. Now the timer only starts counting down if there are no more checks running. Most controls are now disabled when there are checks running. - Qt6 compatibility. Source code builds with Qt 6 and unit tests are ran with both Qt 5 and Qt 6. Binaries are still distributed as 32-bit Qt5 for Windows 7 and older Linux compatibility. - Added button to add a ping check to a target. The ping check could be removed, but not added (without removing the entire target). - You can now configure the amount of hosts that are checked concurrently and the amount of checks that each host runs concurrently. If you have a slower or older Android phone, it might help to set this to 1 or 2, on a fast desktop you could set it way higher. ![settings][12] - When a check fails, it is retried up to 4 times. For example if you have one missed ping packet, you won't get a notification, only if 4 consecutive ping's have an error. - When a HTTPS check fails, the output now gives more information including the certificate: ![https errors][14] [0]: https://www.leafnode.nl/news/leaf-node-monitoring-2023-01-released/ [1]: https://www.leafnode.nl/download/ [2]: /s/inc/img/v2023.01-edit-layout-1.gif [3]: /s/inc/img/v2023.01-overview-checks-running.png [4]: /s/inc/img/v2023.01-edit-layout-controls-1.png [5]: https://www.leafnode.nl/news/also-coming-in-v2022-02-responsive-layouts-in-qt-qml/ [6]: https://www.monitoring-plugins.org/ [7]: /s/inc/img/v2023.01-add-external-process-check.png [8]: /s/inc/img/v2023-01-external-process-check-FAIL.png [9]: /s/inc/img/v2023-01-external-process-check-OK.png [10]: /s/inc/img/v2023-win-failed-proc-check.png [11]: /s/inc/img/v2023-win-ok-proc-check.png [12]: /s/inc/img/v2023.01-settings.png [13]: /s/inc/img/v2023.01-tray-icon-menu.png [14]: /s/inc/img/v2023.01-https-error-output.png --- License: All the text on this website is free as in freedom unless stated otherwise. This means you can use it in any way you want, you can copy it, change it the way you like and republish it, as long as you release the (modified) content under the same license to give others the same freedoms you've got and place my name and a link to this site with the article as source. This site uses Google Analytics for statistics and Google Adwords for advertisements. You are tracked and Google knows everything about you. Use an adblocker like ublock-origin if you don't want it. All the code on this website is licensed under the GNU GPL v3 license unless already licensed under a license which does not allows this form of licensing or if another license is stated on that page / in that software: This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . Just to be clear, the information on this website is for meant for educational purposes and you use it at your own risk. I do not take responsibility if you screw something up. Use common sense, do not 'rm -rf /' as root for example. If you have any questions then do not hesitate to contact me. See https://raymii.org/s/static/About.html for details.