与 ceilometer 的集成

包含您的 Launchpad 蓝图的 URL

https://blueprints.launchpad.net/manila/+spec/ceilometer-integration

在撰写本文时,无法从 manila 向 ceilometer 发送使用情况通知。如果具备此功能,用户将能够监控共享服务的状态以及共享本身的状态。

问题描述

目前,无法接收有关共享服务资源生命周期事件的通知,具体来说,无法获取以下信息:

  • 共享大小

  • 共享容量使用情况

  • 共享创建(开始/结束)

  • 共享删除(开始/结束)

  • 共享更新(开始/结束)

  • 共享扩展(开始/结束)

  • 共享类型创建(开始/结束)

  • 共享类型删除(开始/结束)

  • 快照大小

  • 快照创建(开始/结束)

  • 快照删除(开始/结束)

  • 还原到快照(开始/结束)

大小指标是离散值(gauge meters),而创建/删除/更新操作是随时间变化的值(delta meters)。

此外,也无法了解可用共享的性能信息,即诸如:

  • ops/s(发送到文件系统的每秒操作数)

  • rops/s(发送到文件系统的每秒读取操作数)

  • wops/s(发送到文件系统的每秒写入操作数)

过去用户曾要求提供后一种信息 [1]

目前,社区对实现检索 manila 中资源指标所需的逻辑表现出兴趣 [2]。因此,本规范将重点关注这一点。

根据未来的项目计划,我们将决定是否在 manila 的范围内处理不同共享的指标。

用例

  • 监控资源的使用情况将使我们能够更好地控制部署的健康状况,并了解何时接近容量限制。

  • 操作员可以根据收集的数据采取行动,并在满足定义的标准时触发操作。

提议的变更

拟议的更改包括以下内容:

  • 为我们想要度量的所有资源添加通知器。目前,我们已经在 share_types.py 中有通知器 [3],但这只是先前版本中从 cinder 的 volumes_types.py 重构的残留部分。我们需要为共享和快照添加通知器,并检查 share-types 中的通知器是否发布我们期望的数据。

  • 在 ceilometer 中为所需的资源添加米表。为此,我们需要遵循 ceilometer 的指南 [4]。在本规范中考虑的资源是共享、共享类型和快照。其他资源的米表,例如共享组,将在后续更改中添加。

备选方案

不与 ceilometer 集成,并且不为 manila 提供遥测数据。

数据模型影响

此更改不会影响数据模型。

REST API 影响

此更改不会影响 REST API。

驱动程序影响

此更改不会影响任何驱动程序。

安全影响

通知影响

此更改将允许发送有关消耗的资源的通知。这是操作员应该能够启用或禁用的功能。默认情况下,应禁用它。

其他最终用户影响

如果启用,最终用户将在 ceilometer 中看到通知。

性能影响

我们需要在此考虑向消息队列发送通知所产生的开销,因为我们将为我们测量的每个资源和我们将覆盖的所有操作发送通知。虽然它仅检索已经访问的数据(即,我们不需要访问控制数据库以检索更多数据),但这是一个将在每次与资源交互时执行的操作。

其他部署者影响

我们需要添加一个选项来启用和禁用发送通知。此标志将影响使用任何后端部署的 manila。默认情况下,此选项将设置为 false,并且 manila 不会发送通知,保持其当前行为。

如果操作员希望开始检索 manila 资源的指标,他们需要在配置文件中启用发送通知。他们还需要确保已部署指定版本的 ceilometer。在此之后,此处指定的特性将可供使用。

开发人员影响

在添加框架后,开发人员可能需要在添加新功能时相应地添加通知。

实现

负责人

主要负责人

维多利亚·马丁内斯·德拉·克鲁斯 <victoria@redhat.com>

工作项

  • 为共享添加通知器。添加单元测试。为共享添加米表。为共享米表添加开发文档。

  • 添加或更新共享类型的通知器。添加单元测试。为共享类型添加米表。为共享类型米表添加开发文档。

  • 为快照添加通知器。添加单元测试。为快照添加米表。为快照米表添加开发文档。

依赖项

ceilometer 侧面的蓝图可以在 [5] 访问。我们将作为该蓝图的一部分添加所需的米表。

在撰写本文时,没有考虑其他依赖项。

测试

虽然希望对该特性进行 tempest 覆盖,但这并非优先事项。

将为主要功能添加单元测试。

将添加一个带有启用 ceilometer 的 manila 的 CI 作业,以练习两者的集成和兼容性。

文档影响

关于文档,我们需要添加有关如何配置 manila 以启用此功能的明确文档,并且我们需要添加有关将提供哪些类型的数据的明确说明。虽然我们将在开发人员文档中涵盖这一点,但重要的是在操作手册的 manila 下添加一些子部分。

参考资料