Ceilometer 告警定义和历史的专用数据库¶
https://blueprints.launchpad.net/ceilometer/+spec/dedicated-alarm-database
目前,如果我们使用 MongoDB 存储计量数据,我们就被迫使用 MongoDB 存储事件和告警。因为 API 服务只能使用一个数据库连接对象。
此外,计量和告警是完全不同的两件事,但数据库代码目前放在同一个地方。
该蓝图建议允许为告警定义和告警历史使用不同的数据库。
问题描述¶
用例是,我想将我的计量数据存储到 MongoDB 中,并将我的告警定义和历史存储到 MySQL 中。
提议的变更¶
想法是将 ceilometer/storage 中的所有告警数据库内容移动到 ceilometer/alarm/storage 中。
ceilometer.storage.get_connection_from_conf 获取一个新的参数 ‘purpose’,可以设置为 metering 或 alarm。
这将允许使用不同的命名空间加载取决于目的的驱动程序。
将添加新的入口点,以拥有不同的告警和计量驱动程序集。
Ceilometer API 将使用两个连接对象,一个用于计量,一个用于告警,具体取决于使用的 API 端点请求。
替代方案¶
无
数据模型影响¶
无
对于 SQLAlchemy,迁移脚本将继续存储在公共位置,以确保轻松迁移。如果使用专用数据库,我们接受存在未使用的空表。
REST API 影响¶
无
安全影响¶
无
Pipeline 影响¶
无
其他最终用户影响¶
无
性能/可扩展性影响¶
无
其他部署影响¶
部署者现在可以通过添加以下内容来选择性地定义 Ceilometer 告警的专用数据库
[database]
connection = mongodb://localhost/ceilometer
alarm_connection = mysql://localhost/ceilometer
开发者影响¶
无
实现¶
负责人¶
- 主要负责人
sileht
- 持续维护者
sileht
工作项¶
将告警数据库 API 与计量数据库 API 分离
移除告警 API 中无用的驱动程序
未来生命周期¶
无
依赖项¶
无
测试¶
这是一个代码重构,具有一个新的可选配置选项。这个配置将在新的单元测试中进行测试。
文档影响¶
无
参考资料¶
无