System Module

"Only a life lived for others is a life worthwhile." – Albert Einstein

MODULE NAME


sysmon

-modules/system.py

DESCRIPTION


The system module is responsible for collecting statistics information through various means. The system module is configured to provide only basic system statistics including information about the CPU. Memory, Network, Disk, etc. For this, it has the option to use python module or the old-school shell commands.

The system module can also be overridden to receive stats about other components inter and external to the system and augment it to the basic system stats report. This provides for a strong centralized stats reporting mechanism.

All in all the system module is meant to take on any responsibility related to the system core, processes, OS level communication, etc.

CONFIGURATION


modules/conf/system.json

{
    "enabled": true,
    "klass": "SystemMonitor",
    "conf" : {		
        "stats_via_shell": true,			
        "snapshot_interval_seconds": 10,
        "nic_stats_per_nic": true
    }
}

CONFIGURATION PROPERTIES


PropertyDescriptionValue TypeDefault Value
enabledenable/disable the moduleBooleanTrue
klassThe python class name for this moduleStringSystemMonitor
conf.stats_via_shellWhether to use the shell for stats (true) or use module code (false)BooleanTrue
conf.snapshot_interval_secondsStatistics capture intervals in seconds. Lower values can increase the resource usage of the program.Number10
conf.nic_stats_per_nicWhether to provide aggregated network stats (false) or per nic stats (false)BooleanTrue

System Functions


Stats Gathering


Statistics gathering and accumulation is yet another function of the System module. There are two distinct ways in which it gathers statistics – using python or using the shell.

On the python side, Rayjas makes use of freely available/open source modules when dealing with system functions to read various system details such as information about CPU, Memory, Disk, Network & Operating system. Similarly, in the shell approach, we make use of a simple shell script to read the above-mentioned information & feed it into the system module. The shell script can be found at [RAYJAS_HOME]/scripts.