in libvirts' defence - it's a management and monitoring system, if you run something outside it, how can it keep track?
Anyhow, without knowing what exactly you want to monitor it's hard to provide advice. In general, I would run a monitoring agent inside the guests to report the guests' own take on resource use, and also check resources allocated to the VM CPU threads using
top, systemtap and the likes
There's also the kvm_stat package, and quite a few additional tools, so everything really depends on what you need to know. Every monitoring tools adds a bit of overhead, so monitoring absolutely everything is usually an overkill