专用事件数据库¶
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