|
MetroCollect
2.3.4
|
This project aims to collect and process various system metrics (such as CPU, memory and network usage) very efficitently, so that they can be retreived multiple times per second (for instance, every 50ms). It is designed to work with Snap Telemetry.
This repo is organized as the following:
CircularArray and MetroCollectMetroCollectValues (which collects and prints values), MetroCollectStats (which collects, compute stats and print them) and MetroCollectFile (which collects and write values into CSV format)MetroCollectSnap, which can collect values, compute stats and send either of them to the Snap daemon. It works with a fork of the C++ Snap plugin libraryRefer to USAGE.md for more information on how to use these programs.
All OSs currently supported by plugin:
A C++ 17 compiler such as GCC 7 is required.
The libraries and standalone interfaces do not have additional dependencies. The Snap plugin interface requires the C++ Snap plugin library and its dependencies, which should be installed on the system first. MetroCollect uses static liniking of those libraries for the executables to be portable.
Refer to the DEPENDENCIES.md file for more information.
If the Snap and its dependencies are built in the /usr/local/lib, execute ldconfig /usr/local/lib/ to allow the ld linker to look for installed libraries there.
Then you can compile with CMake:
Other build configured types are Debug, Release, and RelWithDebInfo (to profile with Linux Perf or GPerfTools).
The buildall.sh script can be used to build MetroCollect Snap Plugin library and its dependencies automatically. It can either download the dependencies from GitHub or use local ones in the third_party folder.
Refer to USAGE.md
The documentation can be built with Doxygen from the build directory. It is installed in doc/html.
This repository is one of many plugins in Snap, a powerful telemetry framework. The full project is at http://github.com/intelsdi-x/snap. To reach out on other use cases, visit Slack.
Snap, along with this plugin, is an Open Source software released under the Apache 2.0 [License](LICENSE).