Watcher 决策引擎应从 Ceilometer V2 API 查询指标

https://blueprints.launchpad.net/watcher/+spec/telemetry-integration

Watcher 决策引擎必须从 Ceilometer V2 API 查询指标,以便与 OpenStack 服务(尤其是 DevStack)更轻松地集成。

Telemetry 最初是 Ceilometer 项目的名称。现在,Telemetry 团队管理以下项目:

  • Aodh - 告警服务

  • Ceilometer - 数据收集服务

  • Gnocchi - 时序数据库和资源索引服务

因此,在“Telemetry”这个词背后,我们涵盖了这三个项目。

请参阅 项目官方页面,以了解更多信息。

问题描述

目前,Watcher 决策引擎并未依赖 Ceilometer V2 API 来查询优化算法所需的指标。

用例

作为开发者,我希望能够在我的优化策略中请求由 Telemetry 服务收集的指标。这样我就可以仅通过启用 Telemetry 服务,在官方 DevStack 发布版(Kilo 及更高版本)上开发和运行审计。

作为具有管理员角色的操作员,我希望能够在数据中心上启动审计,这些数据中心中的计算和存储资源由任何部署了 Kilo 及更高版本的 OpenStack 控制器管理。这样我就可以优化我负责的数据中心资源,而无需安装未包含在核心模块官方发布版中的计量链。

项目优先级

不相关,因为 Watcher 目前不在大型帐篷内。

提议的变更

预计的更改将在以下位置进行

  • 修改可用策略(例如,basic_consolidation)上的指标查询,以查询 Ceilometer API V2

  • 可能需要开发一个辅助工具来简化对 Ceilometer V2 API 的一些复杂查询

  • 符合 Telemetry 测量的命名规范

备选方案

没有替代方案,因为 Watcher 绝对需要依赖 Ceilometer API V2,以确保其与任何部署的 OpenStack 集群兼容。

数据模型影响

这不会对 Watcher MariaDB 数据库产生影响(该数据库存储 Watcher 对象,例如审计模板、审计、行动计划等)。

但它会影响 Watcher 在决策引擎中请求指标的方式,尤其是在测量名称方面,因为 Watcher 过去有自己的测量命名系统。

请参阅 Telemetry 可用测量值的完整列表

REST API 影响

安全影响

通知影响

其他最终用户影响

性能影响

过去,查询 Ceilometer 数据库的性能存在一些问题。这是它在生产环境中很少使用的原因之一。这些问题现在可能已通过一个抽象层解决,该抽象层使任何人都可以轻松更改底层的指标存储后端。

现在,指标将由使用与 Ceilometer V2 API 对应的 python Ceilometer 客户端包的优化策略查询。此 Ceilometer API 将将查询转发到抽象的 Ceilometer 存储引擎基接口(请参阅在 ceilometer.storage.base.py 中定义的类)。

存储引擎可以配置为使用任何可用的驱动程序来请求时序数据库实现(InfluxDB、OpenTSDB 等),从而提供比 SQL 数据库更好的性能。例如,请参阅 monasca-ceilometer 项目中的类 ceilosca.ceilometer.storage.impl_monasca.py

查询的频率将取决于用于实现审计目标的策略。

查询的性能不仅取决于底层数据库实现,还取决于其如何部署和配置以索引指标

  • TSDB 的分片策略 + 使用节点集群来平衡负载

  • 与每个指标关联的标签(主机 ID、实例 ID 等),

  • 使用预定义请求(在 InfluxDB 中称为“Continuous Queries”)

其他部署者影响

Telemetry 服务必须安装在 OpenStack 集群的控制器节点和计算节点上,管理员希望使用 Watcher 优化该集群。

主配置文件 watcher.conf 也会受到影响,尤其是 watcher_metrics_collector 部分。

Ceilometer 查询 API 的 V2 版本自官方 Kilo 发布以来已经发布。因此,此蓝图应交付一个与使用 Kilo 发布及更高版本的任何部署兼容的 Watcher 版本。

开发人员影响

当某些指标不可用且优化策略强烈需要时,可能会向 Telemetry 团队提出一些变更请求(能量等)。

实现

负责人

主要负责人

jed56

工作项

工作项目或任务 – 将该功能分解为实施它需要完成的事情。这些部分可能最终由不同的人完成,但我们主要试图了解实施的时间表。

依赖项

测试

  • Watcher 决策引擎的单元测试

  • 管理员应该能够使用 Watcher 启动一个具有 SERVERS_CONSOLIDATION 目标的审计,该审计在没有安装 Watcher 计量链的 OpenStack 集群上,而仅安装了 Telemetry 服务。

文档影响

解释如何添加新的优化策略的文档必须指示必须使用 Ceilometer V2 客户端 API 查询指标。

参考资料

历史