
This code provides an implementation of the get_diagnostics API for the libvirt driver. This API is invoked by the 'nova diagnostic' command. There is no existing formal specification for what data items to expose from the 'get_diagnostics' API, so the XenAPI driver is used as an informal guide. The Xen implementation currently produces the following output: +----------------+-----------------+ | Property | Value | +----------------+-----------------+ | cpu0 | 4.3627 | | memory | 1171088064.0000 | | memory_target | 1171088064.0000 | | vbd_xvda_read | 0.0 | | vbd_xvda_write | 0.0 | | vif_0_rx | 3223.6870 | | vif_0_tx | 0.0 | | vif_1_rx | 104.4955 | | vif_1_tx | 0.0 | +----------------+-----------------+ The new libvirt implementation will return a similar set of stats for guest CPUs, memory, disks and network interfaces, resulting in the following output: +------------------+------------+ | Property | Value | +------------------+------------+ | cpu0_time | 2870000000 | | memory | 524288 | | vda_errors | -1 | | vda_read | 262144 | | vda_read_req | 112 | | vda_write | 5606400 | | vda_write_req | 376 | | vnet0_rx | 63343 | | vnet0_rx_drop | 0 | | vnet0_rx_errors | 0 | | vnet0_rx_packets | 431 | | vnet0_tx | 4905 | | vnet0_tx_drop | 0 | | vnet0_tx_errors | 0 | | vnet0_tx_packets | 45 | +------------------+------------+ The implementation has only been tested with the libvirt KVM driver. In a future a formal specification for the required data format should be written and all virt drivers made to comply. Finally, the fakelibvirt driver has been updated in order to support the methods required by the get_diagnostics method. For those interested, below is the formula to extract the CPU usage based on the CPU time. I've added it here for reference since it's not used at the moment and it took quite a while to locate it in the libvirt documentation. usage = 100 * (current_cpu_time - last_cpu_time) / (measurement_interval * (10 ** 9)) Fixes bug 986200. Change-Id: I92da392f43d0840ed31cfd88f54570ea5830bb4a
OpenStack Nova README
OpenStack Nova provides a cloud computing fabric controller, supporting a wide variety of virtualization technologies, including KVM, Xen, LXC, VMWare, and more. In addition to its native API, it includes compatibility with the commonly encountered Amazon EC2 and S3 APIs.
OpenStack Nova is distributed under the terms of the Apache License, Version 2.0. The full terms and conditions of this license are detailed in the LICENSE file.
Nova primarily consists of a set of Python daemons, though it requires and integrates with a number of native system components for databases, messaging and virtualization capabilities.
To keep updated with new developments in the OpenStack project follow @openstack on Twitter.
To learn how to deploy OpenStack Nova, consult the documentation available online at:
In the unfortunate event that bugs are discovered, they should be reported to the appropriate bug tracker. If you obtained the software from a 3rd party operating system vendor, it is often wise to use their own bug tracker for reporting problems. In all other cases use the master OpenStack bug tracker, available at:
Developers wishing to work on the OpenStack Nova project should always base their work on the latest Nova code, available from the master GIT repository at:
Developers should also join the dicussion on the mailing list, at:
Any new code must follow the development guidelines detailed in the HACKING.rst file, and pass all unit tests. Further developer focused documentation is available at:
Changes to OpenStack Nova should be submitted for review via the Gerrit tool, following the workflow documented at:
-- End of broadcast