MaXXmonitor is a Centralized Hardware and Application monitoring with metric aggregation and a client/server model in mind. MaXXmonitor is responsible of gathering hardware, system and application metrics (static and real-time) and make them available via a secured and efficient delivery mechanism such as MaXXlinks SharedMemoryPayload. The main goal is to have only one process that does the metrics acquisition and many processed that consumes and displays the information in different ways.
For those whom are already familiar with MaXXdesktop, both gr_osview and gmemusage applications could leverage from using MaXXmonitor already available data and by not introducing unnecessary and redundant workloads into the system. Do more with less...
The data acquisition aspect of MaXXmonitor is also interesting in the way divers data points are collected. A plugin model where a standardized interface to query the data is defined but the low-level implementation is left to the developer. This was inspired form Xosview project. Ideally the most efficient strategy should be provided on day-one, but not required. The low-level portion of the plugin could be native code, /proc file scrapping, shell scripts or other, leaving room for iterative improvement. This also means, MaXXmonitor is not bound/locked-in to a unique Operating System.
Here are the requirements for MaXX Monitor:
- be Operating System independent. Support Linux and FreeBSD at a minimum
- provide a plugin based data acquisition design
- plugin failure should be isolated and not impacting normal operation
- written in modern C++17 (or above)
- support GPU metrics
- integrated with MaXXlinks
- secured access to metrics based on system authentication (to be explored)
MaXX Monitor is build in modern C++ and leverage different CPU architecture and operating system neutral.
Refer to MaXXmonitor Framework documentation for more detail.
Work in progress... Feel free to share with us an idea or feedback. Come back soon :)