process-monitor is a tool developed to track performance of a given process PID. Available properties to measure right now are:
- Memory and CPU %
- IO read/write operations
- PAPI counters
- RAPL Energy counters
The tool is coded in C++17 and uses CMake to be built. Dependencies can be installed in Debian-like distributions with the provided script InstallDependencies.sh
It is possible to run in two modes.
- By providing a PID for the process to track and a configuration json file (See file configs/example.json)
- By indicating a command to run in the configuration file. Measures will be taken then from this command.
From each measure, csv files will be created in the indicated output folder or, in the case this directory is not provided, in an output directory with the PID of the process being monitored.
process-monitor relies on other libraries in order to work. These third party libraries are:
- https://github.com/nlohmann/json to read JSON configuration file.
- PAPI to get info from software counters and RAPL.
- PFS to get processes info from Linux /proc folder.