Aodh 同步插件 - get_all 实现

launchpad 蓝图: https://blueprints.launchpad.net/vitrage/+spec/synchronizer-aodh-get-all

此蓝图描述了 Vitrage Synchronizer 的 Aodh 插件,以及其实现 get_all Aodh 告警的功能。

问题描述

Aodh 告警应通过 Vitrage Synchronizer 添加到 Vitrage Graph。 这需要编写一个用于 Aodh 的同步插件。

该插件应支持两种模式

  • get_all: 查询所有 Aodh 告警并将相应的事件发送到 Synchronizer

  • notifications: 在 Aodh 告警定义或状态发生变化时通知 Synchronizer

此蓝图指的是 get_all 实现。

提议的变更

Aodh 插件将配置为

  • 轮询间隔(秒),默认为 60

每隔轮询间隔秒,Aodh 插件将调用 Aodh 列出所有告警的 API。 这些告警将被转换为 Vitrage Synchronizer 事件并传递到 Vitrage Graph 队列。

备选方案

数据模型影响

Aodh 事件将包含以下属性发送到 Vitrage Graph 队列

字段

描述

示例

alarm_id

告警 UUID

e47e1be6-3598-46e6-bb63-0cc9a4e35ad7

name

告警名称

CpuUtilAlarm1

description

告警描述

当 cpu 等于 60 秒的平均值 300.0 时发出告警

enabled

告警是否启用

true/false

project_id

拥有告警的项目或租户的 ID

5542b27142154f30b32dea6238aa81aa

repeat_actions

是否在每次评估周期重新触发操作

true/false

severity

告警严重程度

低/中等/严重

state

告警状态

正常/告警/数据不足

time_constraints

可选。 在此时间约束内评估告警

?

type

告警类型

阈值/事件

user_id

创建告警的用户的 ID

8ab65ef808b245e3ba234b7b3554cb94

resource_id

可选。 告警规则查询中的资源 ID

b0bf3635-d9e8-4624-9793-7aac82948c0a

sync_type

信息来源

aodh (常量值)

Aodh 阈值告警将另外包含

字段

描述

示例

state_timestamp

上次告警状态更改的日期

2016-03-01T17:13:08.847812

timestamp

上次告警定义更新的日期

2016-03-01T17:13:08.847812

threshold_rule

阈值告警的阈值规则

字典

Aodh 事件告警将另外包含

字段

描述

示例

event_type

事件告警的事件类型

compute.instance.update

timestamp

Aodh 中不存在? 将使用当前时间

2016-03-01T17:13:08.847812

Gnocchi 告警、组合告警和复合告警仍待确定。

待确定:如何将此信息转换为 Vitrage Graph 顶点

REST API 影响

版本影响

其他最终用户影响

部署者影响

应配置 Aodh 插件

开发者影响

Horizon 影响

实现

负责人

主要负责人

ifat-afek

工作项

依赖项

测试

此蓝图需要单元测试和 Tempest 测试。

文档影响

应记录 Aodh 配置

参考资料

Synchronizer 主蓝图: https://github.com/openstack/vitrage-specs/blob/master/specs/mitaka/vitrage-synchronizer.rst