I'm testing Openstack and i'd like to know how can i find out about resource utilization inside instances (Virtual Machines).

Openstack uses kvm, qemu and libvirt in my testing environment. Is there any way to get those stats without logging in machines (CPU, Memory, Swap, Network traffic)? I'd like collect those data from hypervisors or through libvirt.

Any suggestions?


There's a ganglia plugin for sFlow which is supposed to be able to capture this kind of information, but I've never tried it.


CollectD has a libvirt plugin that can query performance information of VM guests from the host. We are using this quite successfully to monitor OpenStack VMs.

http://libvirt.org/apps.html#monitoring has a few more tips, but I've only had experience with the CollectD plugin. The Nagios-virt package looks interesting and might be nice to try, but I just use a regular Nagios setup (i.e active, passive or NRPE service checks) for alerting with respect to VMs.