On Fri, Aug 10, 2007 at 11:10:50AM +0100, Richard W.M. Jones wrote:
Mindaugas Kiznis wrote:
>- I am trying to make an application, which would connect to a remote
>xen host and fetch some information about total (physical) CPU usage,
>total memory usage, network and disk I/O. I have managed to do a remote
>statistics grabber for CPU and memory usage using libvirt. I couldn't
>find any source of information about libvirt ability to return I/O
>numbers. Also haven't found any other solution yet. Any suggestions?
It's very interesting that you should ask this, because I am
investigating adding network I/O and block I/O stats to libvirt. We
would get the information from /sys/devices/xen-backend/... in the same
way that libxenstat does it at the moment, and pass that up through
libvirt APIs. As with all libvirt-related stuff we need to think about
how it will apply to the other hypervisors that we support and could
support in the future.
The API design itself doesn't sound trivial at all. First do you want
to collect a range of stats or just one device stat, simpler API vs.
number of RPCs needed. Second there is a API portability problem,
e.g. between different hypervisors, try to get a data structure which
would fit the various engine without loosing too much data. There is
also a potential naming problem for the devices.
Like for the other places in the API where defining a fixed record
structure have proved too challenging, we could fallback to an XML
chunk being passed back, but that would not be my preferred solution.
But if you look at the complexity of sar you realize that it's very
difficult to come back with one kind of statistics pleasing a majority
of users, so either the API is very low level or you need a lot of
flexibility I guess.
Daniel
--
Red Hat Virtualization group
http://redhat.com/virtualization/
Daniel Veillard | virtualization library
http://libvirt.org/
veillard(a)redhat.com | libxml GNOME XML XSLT toolkit
http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine
http://rpmfind.net/