Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
likwid-agent: System monitoring agent for LIKWID
likwid-agent is a daemon application that uses likwid-perfctr to measure hardware performance counters and write them to various output back-ends. The basic configuration is in a global configuration file that must be given on command line. The configuration of the hardware event sets is done with extra files suitable for each architecture. Besides the hardware event configuration, the raw data can be transformed using formulas to interested metrics. In order to output not too much data, the data can be further filtered or aggregated. likwid-agent provides multiple store back-ends like logfiles, RRD (Round Robin Database) or gmetric (Ganglia Monitoring System).
Currently there exists no common init script for likwid-agent. You have to write your own suitable for your OS.
The configuration file has the following options:
GROUPPATH <path>: Path to the group files containing event set and output definitions. See section Group files for information.
EVENTSET <group1> <group2> ...: Space separated list of groups (without .txt) that should be monitored.
DURATION <time>: Measurement duration in seconds for each group.
LOGPATH <path>: Sets the output logfile path for the measured data. Each monitoring group logs to its own file
LOGSTYLE <update/log>: Specifies whether new data should be appended to the files (
log) or the file should be emptied first (
update). Update is a common option if you read in the data afterwards by some monitoring tool like cacti, nagios, ... Default is
GMETRIC <True/False>: Activates the output to gmetric.
GMETRICPATH <path>: Set path to the gmetric executable.
GMETRICCONFIG <path>: Set path to custom gmetric config file.
RRD <True/False>: Activates the output to RRD files (Round Robin Database).
RRDPATH <path>: Output path for the RRD files. The files are named according to the group and each output metric is saved as DS with function GAUGE. The RRD is configured with RRA entries to store average, minimum and maximum of 10 minutes for one hour, of 60 minutes for one day and daily data for one month.
SYSLOG <True/False>: Activates the output to system log using logger.
SYSLOGPRIO <prio>: Set the priority for the system log. The default priority is 'local0.notice'.
The group files are adapted performance group files as used by likwid-perfctr. This makes it easy to use the predefined and often used performance groups as basis for the monitoring. The folder structure of for the groups is /<SHORT_ARCH_NAME>/ with <SHORT_ARCH_NAME> similar to the ones for the performance groups, like 'sandybridge' or 'haswellEP'.
SHORT <string> EVENTSET <counter1> <event1> <counter2>:<option1>:<option2> <event2> METRICS <metricname> <formula> <filter> <metricname> <formula> LONG <multi-line string>
SHORT keyword prefixes a short descriptive information about the group.
The definition of the
EVENTSET is similar to the performance groups. Each line contains a counter name and the desired event name. If you want to set further options, you can append them separated by colons to the counter name. See likwid-perfctr for details.
METRICS keyword starts the definitions of the output metrics. The syntax follows the
METRICS definition of the performance groups as used by likwid-perfctr . If no function is set at the beginning of the line,
<formula> is evaluated for every CPU and send to the output back-ends. The
<metricname> gets the prefix
T<cpuid>. To avoid writing to much data to the back-ends, the data can be reduced by
<filter>. The possible filter options are
ONCE filter sends only the data from the first CPU to the output back-ends - commonly used for the measurement duration.
The last part, started with the
LONG keyword, allows to set further information about the monitoring group. There is currently no output function for this in likwid-agent.