Uses libvirt 'virDomainMemoryStats' to retrive the memory that is used by domain, implements 'inspect_memory_usage' function in libvirt inspector. blueprint libvirt-memory-utilization-inspector Change-Id: I61480425d8690aa17fa11450b4ad1d73e3c8d804
3.0 KiB
Adds memory utilization meter to libvirt inspector
https://blueprints.launchpad.net/ceilometer/+spec/libvirt-memory-utilization-inspector
Memory usage statistics is not implemented in libvirt inspector. We can get memory stats of the instance from libvirt API 'virDomainMemoryStats' in order to add memory usage meter to libvirt inspector.
Problem description
Memory usage of instance is very important data in telemetry, but now it is not implemented in libvirt inspector. This spec adds memory usage statistics to libvirt, so the user can get the data on the performance of the instance.
Proposed change
Implements the method 'inspect_memory_usage' of LibvirtInspector, fetches the memory stats data from libvirt API 'virDomainMemoryStats', used memory is calculated by the available and unused memory. The libvirt API 'virDomainMemoryStats' may raise an exception if the method is not supported by libvirt, refer to 'Dependencies' section, catches the exception and translates that into an empty data of memory stats.
Alternatives
None
Data model impact
None
REST API impact
None
Security impact
None
Pipeline impact
None
Other end user impact
User need to prepare suitable balloon driver in image, particularly for Windows guests, most modern Linuxes have it built in. Booting instance will be successful without image balloon driver, just can't get guest memory usage meter.
Performance/Scalability Impacts
None
Other deployer impact
None. By default, the memory statistical feature is enabled in Nova, refer to [1], we just fetch and collect the data from libvirt API.
Developer impact
None
Implementation
Assignee(s)
- Primary assignee:
-
<kiwik-chenrui>
Work Items
- Implements the method 'inspect_memory_usage' of LibvirtInspector.
- Adds relate unit tests.
- Updates ceilometer measurements document.
Future lifecycle
Once this feature enabled, need test and bug fixing in next 2 releases to avoid regression.
Dependencies
- libvirt 1.1.1+
- qemu 1.5+
- guest driver that supports memory balloon stats
Testing
Unit tests are sufficient since only data fetching need test.
Documentation Impact
The added metrics will need to be documented in the measurements section.