事件持久化器

https://blueprints.launchpad.net/vitrage/+spec/event-persistor

持久化器服务监听 RabbitMQ2(在不同的主题上),并异步地将事件写入关系数据库。所有事件在经过过滤/丰富处理后存储。

问题描述

为了支持 Vitrage 的一些主要未来用例,包括完全的 HA 支持、告警历史和 RCA 历史,我们需要将从收集器接收到的事件存储在持久化数据库中。详见 Vitrage HA 和历史愿景

存储数据的用例示例:从处理器控制的历史数据中重建图,将在两种情况下使用

  • 发生故障时,为了启动待机 vitrage-graph 进程

  • 用于 RCA 历史

提议的变更

在 Vitrage 数据库中添加 event 表。数据源驱动程序和监听服务(收集器)通过 vitrage_persistor 主题将过滤/丰富后的事件传递给持久化器。添加一个持久化器服务,该服务监听 vitrage_persistor 主题并将事件写入 event 表。

备选方案

数据模型影响

该表将包含以下字段

字段

描述

示例

id

INTEGER, 自动递增

19588

collector_timestamp

事件在驱动程序中过滤/丰富的时间

2017-10-09 09:19:50

payload

从收集器发送的丰富事件

事件的 JSON 表示

REST API 影响

版本影响

其他最终用户影响

部署者影响

开发者影响

Horizon 影响

实现

负责人

主要负责人

7mode3294

其他贡献者

工作项

  • 在 rabbitMQ2 中为持久化器添加新的主题 vitrage_persistor

  • 在 Vitrage 数据库中添加 event 表。

  • 数据源驱动程序和监听服务(收集器)通过 vitrage_persistor 主题将过滤/丰富后的事件传递给持久化器。

  • 添加一个持久化器服务,该服务监听 vitrage_persistor 主题并将事件写入 event 表。

依赖项

测试

实现将涵盖额外的单元测试和 tempest 测试。

文档影响

参考资料