专用事件数据库

https://blueprints.launchpad.net/ceilometer/+spec/dedicated-event-db

Ceilometer 提供了计量、告警和事件功能。随着 Ceilometer 跟踪的数据越来越多,可扩展性问题将会出现。

问题描述

目前,计量数据和事件数据存储在同一个数据库中。虽然相关,但计量模型和事件模型在逻辑上是分离的,每个模型中的数据都有其独特的数据和结构;计量模型可以最好地描述为时间序列,而事件模型更接近于实体属性模型。由于模型在捕获的内容上有所不同,因此部署者可以选择使用不同的存储驱动程序来存储每个数据集。

提议的变更

类似于将告警拆分为其自身数据库的工作,此蓝图允许将事件相关数据存储在其自身的数据库中。

替代方案

继续保持现状。

数据模型影响

没有,模型保持不变。

REST API 影响

没有,API 将保持不变。唯一的改变是,当调用事件 API 时,API 现在将从事件数据库读取数据。

安全影响

策略和权限将保持不变。API 将继续像以前一样工作,并提供相同程度的数据访问权限。为此,用户需要具有管理员角色才能访问数据。

Pipeline 影响

无。

其他最终用户影响

最终用户现在可以将事件数据存储在与计量数据不同的数据库中。或者,他们可以继续像 Ceilometer 当前工作的方式,将事件和计量数据存储在同一个数据库中。

性能/可扩展性影响

这将可能提高可扩展性,因为它允许部署者拆分事件和计量数据,从而避免单个数据库被针对不相关数据集的查询所淹没。 仍然可以写入同一个数据库,因此当前的设计/性能也可以继续保持。

其他部署影响

添加了一个配置选项来指定事件数据库

[database]
metering_connection=hbase://
alarm_connection=sqlite://
*event_connection=mongodb://*

开发者影响

未来的事件相关工作应在事件子模块中完成。

实现

负责人

主要负责人

chungg

持续维护者

chungg

工作项

  • 将事件模型移动到事件子模块

  • 添加对 event_connection 选项的支持,并在事件子模块中创建驱动程序框架

  • 将每个驱动程序的事件相关代码从存储模块移动到事件子模块

未来生命周期

告警、事件和计量后端之间存在共享的通用代码,可以进行重构。

依赖项

测试

现有的测试应该足够。唯一需要的额外测试是测试为每个数据集(告警、事件、计量)定义单独后端的能力,并确保每个后端的capabilities返回正确的功能集。

文档影响

我们需要更新文档以突出显示如何启用事件特定后端。

参考资料

专用告警数据库蓝图:https://blueprints.launchpad.net/ceilometer/+spec/dedicated-alarm-database