Linux/*BSD system with libvirt installed
For MacOS
brew install libvirt
For Ubuntu > 14.04
apt-get install libvirt-bin libvirt-dev
For Fedora >= 21 / CentOS >= 7 / RedHat >= 7
yum install libvirt libvirt-devel
You can get the pre-built binaries for your OS and architecture from the plugin's GitHub Releases page. Download the plugin from the latest release and load it into snapteld
(/opt/snap/plugins
is the default location for Snap packages).
Fork https://github.com/intelsdi-x/snap-plugin-collector-libvirt
Clone repo into $GOPATH/src/github.com/intelsdi-x/
:
$ git clone https://github.com/<yourGithubID>/snap-plugin-collector-libvirt.git
Build the Snap libvirt plugin by running make within the cloned repo:
$ make
This builds the plugin in ./build/
By default the plugin is using qemu:///system uri. To monitor external systems, you can pass the uri parameter to the snapteld deamon configuration. An example configuration file can be found in example directory.
This plugin has the ability to gather the following metrics:
Namespace | Data Type | Description |
---|---|---|
/intel/libvirt/{domain_name}/disk/{device_name}/wrreq | int64 | Write Requests |
/intel/libvirt/{domain_name}/disk/{device_name}/rdreq | int64 | Read Requests |
/intel/libvirt/{domain_name}/disk/{device_name}/wrbytes | int64 | Write Bytes |
/intel/libvirt/{domain_name}/disk/{device_name}/rdbytes | int64 | Read Bytes |
/intel/libvirt/{domain_name}/memory/mem | int64 | Amount of memory specified on domain creation |
/intel/libvirt/{domain_name}/memory/swap_in | int64 | Amount of memory swapped in |
/intel/libvirt/{domain_name}/memory/swap_out | int64 | Amount of memory swapped out |
/intel/libvirt/{domain_name}/memory/major_fault | int64 | Number of major faults |
/intel/libvirt/{domain_name}/memory/minor_fault | int64 | Number of minor faults |
/intel/libvirt/{domain_name}/memory/free | int64 | Total amount of free memory |
/intel/libvirt/{domain_name}/memory/max | int64 | Total amount of memory |
/intel/libvirt/{domain_name}/cpu/cputime | int64 | Cputime ( all vcpus ) |
/intel/libvirt/{domain_name}/cpu/cputime/{vcpu_nr} | int64 | Cputime for one vcpu (not supported on qemu without kvm) |
/intel/libvirt/{domain_name}/network/{interface_name}/rxbytes | int64 | Bytes received |
/intel/libvirt/{domain_name}/network/{interface_name}/rxpackets | int64 | Packets received |
/intel/libvirt/{domain_name}/network/{interface_name}/rxerrs | int64 | Errors on receive |
/intel/libvirt/{domain_name}/network/{interface_name}/rxdrop | int64 | Drops on receive |
/intel/libvirt/{domain_name}/network/{interface_name}/txbytes | int64 | Bytes transmitted |
/intel/libvirt/{domain_name}/network/{interface_name}/txpackets | int64 | Packets transmitted |
/intel/libvirt/{domain_name}/network/{interface_name}/txerrs | int64 | Errors on transmit |
/intel/libvirt/{domain_name}/network/{interface_name}/txdrop | int64 | Drops on transmit |
IMPORTANT: not all hypervisors expose all these metrics. Please check your hypervisor or libvirt documentation.
As we launch this plugin, we do not have any outstanding requirements for the next release. If you have a feature request, please add it as an issue.
If you have a feature request, please add it as an issue and/or submit a pull request.
This repository is one of many plugins in Snap, a powerful telemetry framework. See the full project at http://github.com/intelsdi-x/snap.
To reach out to other users, head to the main framework.
We love contributions!
There's more than one way to give back, from examples to blogs to code updates. See our recommended process in CONTRIBUTING.md.
Snap, along with this plugin, is an Open Source software released under the Apache 2.0 License.
This is Open Source software released under the Apache 2.0 License. Please see the LICENSE file for full license details.
- Author: Marcin Spoczynski
This software has been contributed by MIKELANGELO, a Horizon 2020 project co-funded by the European Union. https://www.mikelangelo-project.eu/
And thank you! Your contribution, through code and participation, is incredibly important to us.