Adds memory usage metrics implementation in the Hyper-V Inspector

Currently, the Hyper-V Inspector does not collect the memory metrics. This feature can be added, since Hyper-V can measure the amount of memory the instances are using. This is especially useful if the instances are configured to use dynamic memory.

Problem description

Instances’ memory usage metrics are very important in telemetry, but it is not currently implemented in the Hyper-V Inspector. This spec adds memory usage statistics to Hyper-V, so the user can get vital data on the instance’s performance.

Proposed change

Implements the method ‘inspect_memory_usage’ of HyperVInspector, fetches the memory stats data from Hyper-V VMs, located in the Msvm_AggregationMetricValue objects (further referred to as ‘metrics objects’) associated with the VMs. The metrics objects ‘MetricDefinitionId’ must be the equal to the ‘Id’ of Msvm_AggregationMetricDefinition object having the Caption ‘Aggregated Average Memory Utilization’.

Hyper-V metrics were introduced in Windows / Hyper-V Server 2012 (kernel version 6.2). They are not supported in the previous versions.



Data model impact


REST API impact


Security impact


Pipeline impact


Other end user impact


Performance/Scalability Impacts


Other deployer impact

None. By default, the memory metrics collection is enabled in Nova, we just need to collect the data from the Hyper-V API.

Developer impact




Primary assignee:


Work Items

  • Implements the method ‘inspect_memory_usage’ in HyperVInspector.

  • Adds related unit tests.

  • Updates ceilometer measurements document.

Future lifecycle

Once this feature is enabled, it needs tests and bug fixing in the next 2 releases to avoid regression.


  • Windows / Hyper-V Server 2012 (kernel version 6.2)

  • wmi 1.4.9+


Unit tests are sufficient, since the implementation will only require data fetching from Hyper-V.

Documentation Impact

The added metrics will need to be documented in the measurements section.