Jump to: navigation, search

Difference between revisions of "Nova VM Diagnostics"

(VMware)
(xen)
Line 166: Line 166:
  
 
=== xen ===
 
=== xen ===
tbd
+
{| class="wikitable"
 +
|-
 +
! Property !! Value
 +
|-
 +
| cpu0 || 0.0002
 +
|-
 +
| last_update || 1387273492
 +
|-
 +
| memory || 536870912.0000
 +
|-
 +
| memory_target || 536870912.0000
 +
|-
 +
| vbd_xvda_read || 0.0
 +
|-
 +
| vbd_xvda_write || 0.0
 +
|-
 +
| vbd_xvdd_read || 0.0
 +
|-
 +
| vbd_xvdd_write || 0.0
 +
|-
 +
| vif_0_rx || 0
 +
|-
 +
| vif_0_tx || 0
 +
|}
  
 
== Proposal ==
 
== Proposal ==

Revision as of 09:52, 17 December 2013

Overview

The 'nova diagnostics' command provides diagnostics information for the specific VM. The purpose of the command is to provide the administrator with the information that will enable them to troubleshoot issues with a VM. Each driver has its own diagnostics capabilities and information that can be exposed. Currently get_diagnostics returns a dictionary of data specific to the driver.

At the moment the data returned has the following formats:

libvirt

Property Value
cpu0_time 283520000000
hdd_errors -1
hdd_read 106782
hdd_read_req 37
hdd_write 0
hdd_write_req 0
memory 2097152
memory-actual 2097152
memory-rss 1050096
memory-swap_in 0
vda_errors -1
vda_read 65447936
vda_read_req 8146
vda_write 7746560
vda_write_req 896
vnet0_rx 41195
vnet0_rx_drop 0
vnet0_rx_errors 0
vnet0_rx_packets 282
vnet0_tx 39239
vnet0_tx_drop 0
vnet0_tx_errors 0
vnet0_tx_packets 280

VMware

Property Value
vmware:annotation None
vmware:balloonedMemory 0
vmware:bootTime 2013-12-16T03:20:28.040652
vmware:compressedMemory 0
vmware:connectionState connected
vmware:consolidationNeeded False
vmware:consumedOverheadMemory 20
vmware:cpuReservation 0
vmware:device [{u'key': 4000, u'runtimeState': {u'vmDirectPathGen2InactiveReasonOther': [u'vmNptIncompatibleNetwork'], u'vmDirectPathGen2Active': False}}]
vmware:distributedCpuEntitlement 0
vmware:distributedMemoryEntitlement 828
vmware:faultToleranceState notConfigured
vmware:featureRequirement [{u'featureName': u'cpuid.AES', u'value': u'Bool:Min:1', u'key': u'cpuid.AES'}]
vmware:ftLatencyStatus gray
vmware:ftLogBandwidth -1
vmware:ftSecondaryLatency -1
vmware:guestFullName Other (32-bit)
vmware:guestHeartbeatStatus gray
vmware:guestId otherGuest
vmware:guestMemoryUsage 384
vmware:host {u'_type': u'HostSystem', u'value': u'host-207'}
vmware:hostMemoryUsage 110
vmware:installBootRequired False
vmware:instanceUuid cde2fd89-5d39-4e3b-a6fc-589042a74e78
vmware:maxCpuUsage 2400
vmware:maxMemoryUsage 512
vmware:memoryOverhead 21417984
vmware:memoryReservation 0
vmware:memorySizeMB 512
vmware:name cde2fd89-5d39-4e3b-a6fc-589042a74e78
vmware:numCpu 1
vmware:numEthernetCards 1
vmware:numMksConnections 0
vmware:numVirtualDisks 1
vmware:onlineStandby False
vmware:overallCpuDemand 0
vmware:overallCpuUsage 0
vmware:powerState poweredOn
vmware:privateMemory 90
vmware:recordReplayState inactive
vmware:sharedMemory 0
vmware:ssdSwappedMemory 0
vmware:staticCpuEntitlement 2400
vmware:staticMemoryEntitlement 539
vmware:suspendInterval 0
vmware:swappedMemory 0
vmware:template False
vmware:toolsInstallerMounted False
vmware:uptimeSeconds 124
vmware:uuid 4238fd65-cd75-51e7-0c53-e71cd01a753f
vmware:vmPathName [local-10.127.1.31] cde2fd89-5d39-4e3b-a6fc-589042a74e78/cde2fd89-5d39-4e3b-a6fc-589042a74e78.vmx

xen

Property Value
cpu0 0.0002
last_update 1387273492
memory 536870912.0000
memory_target 536870912.0000
vbd_xvda_read 0.0
vbd_xvda_write 0.0
vbd_xvdd_read 0.0
vbd_xvdd_write 0.0
vif_0_rx 0
vif_0_tx 0

Proposal

  • V2 REST API - no changes. This will ensure that the code is backward compatible and users that have applications written against the V2 API will continue to work
  • V3 REST API- namespace the statistics returned by the driver. That is, the dictionary returned by the driver will have the following format:

{'driver_type': {'key1': 'data1', 'key2': 'data2', ...}}

In addition to the 'driver_type' details we will provide a list of common diagnostics shared between all drivers.

For example:

The libvirt driver will return: {"libvirt" : {"cpu0_time": 17300000000, "memory": 524288, "vda_errors": -1, "vda_read": 262144, ...}}

The VMware driver will return: {"vmware" : {"annotation": None, "balloonedMemory": 0, "bootTime": 2013-12-16T03:20:28.040652, ...}}

Implementation Details

An additional parameter will be added to the method get_diagnostics. This will be "use_namespace". By default this will be False (this will be used by the V2 api). When the V3 API invokes the call it will be set as True, instructing the driver to namespace the dictionary data.

The blueprint can be seen at: https://blueprints.launchpad.net/nova/+spec/diagnostics-namespace