为 libvirt inspector 添加内存利用率计量

https://blueprints.launchpad.net/ceilometer/+spec/libvirt-memory-utilization-inspector

libvirt inspector 中尚未实现内存使用统计。我们可以从 libvirt API ‘virDomainMemoryStats’ 获取实例的内存统计信息,以便向 libvirt inspector 添加内存使用计量。

问题描述

实例的内存使用情况是遥测数据中非常重要的信息,但目前尚未在 libvirt inspector 中实现。此规范将内存使用统计信息添加到 libvirt,以便用户可以获取实例性能数据。

提议的变更

实现了 LibvirtInspector 的 ‘inspect_memory_usage’ 方法,从 libvirt API ‘virDomainMemoryStats’ 获取内存统计数据,使用的内存通过可用内存和未使用内存计算得出。如果 libvirt 不支持该方法,libvirt API ‘virDomainMemoryStats’ 可能会引发异常,请参阅‘依赖项’部分,捕获该异常并将其转换为空的内存统计数据。

替代方案

数据模型影响

REST API 影响

安全影响

Pipeline 影响

其他最终用户影响

用户需要在镜像中准备合适的 balloon 驱动程序,特别是对于 Windows 客户机,大多数现代 Linux 系统都内置了它。启动实例即使没有镜像 balloon 驱动程序也会成功,只是无法获取客户机内存使用计量。

性能/可扩展性影响

其他部署影响

无。默认情况下,Nova 中已启用内存统计功能,请参阅 [1],我们只需从 libvirt API 获取和收集数据。

开发者影响

实现

负责人

主要负责人

<kiwik-chenrui>

工作项

  • 实现了 LibvirtInspector 的 ‘inspect_memory_usage’ 方法。

  • 添加了相关的单元测试。

  • 更新 ceilometer 测量文档。

未来生命周期

启用此功能后,需要在接下来的 2 个版本中进行测试和 bug 修复,以避免回归。

依赖项

  • libvirt 1.1.1+

  • qemu 1.5+

  • 支持内存 balloon 统计信息的客户机驱动程序

测试

由于只需要测试数据获取,因此单元测试就足够了。

文档影响

添加的指标需要在 测量部分中记录。

参考资料