Webhooks

launchpad 蓝图: https://blueprints.launchpad.net/vitrage/+spec/configurable-notifications

评估器对 Vitrage 图执行根本原因分析,并可能确定应创建、删除或以其他方式更新警报。 Vitrage Notifier 服务会通知其他组件这些更改。 在其他方面,Vitrage Notifier 负责发送有关 Vitrage 推理警报的 http post 通知。

此蓝图描述了 Vitrage 警报和状态更改的 webhook 的 Vitrage Notifier 的实现。

问题描述

Vitrage 应支持用于通知的 webhook,这些 webhook 会在触发警报、停用警报、状态更改、RCA 或其他情况时发送到任何已注册的目标。 此外,任何已注册的接收者应提供一个正则表达式来过滤发送到该接收者的警报。

提议的变更

Vitrage 配置文件中需要的定义

[DEFAULT]
notifiers = webhook

Vitrage 监听器将从消息总线获取警报事件,webhook 通知器将在触发的推理警报和删除的推理警报上发送 http post 通知。

过滤后的通知将发送到数据库中写入的目的地,这些目的地通过 API 请求进行配置。

通知仅在符合 webhook 规范中指定的正则表达式过滤器的警报上发送。

发送通知的格式将被硬编码。

由于 Vitrage 通知器是可插拔的,您可以编写自己的通知器并使用它。 具体来说,您可以继承 webhook 基类并实现自己的 webhook 通知器。

备选方案

数据模型影响

新的 DB 表,用于表示注册详细信息 预先定义的列

  • ID

  • 日期

  • 地址

  • 头部

  • 过滤器

REST API 影响

一个支持添加、删除和列出 webhook 的 API

版本影响

其他最终用户影响

部署者影响

要使用 webhook,需要在 Vitrage 配置文件中定义它。

开发者影响

Horizon 影响

未来在 Horizon 中支持 webhook

实现

负责人

主要负责人

nivo

工作项

  • 添加 DB 表

  • 添加 API

  • 实现通知器

  • 更新文档

  • 测试

依赖项

测试

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

文档影响

webhook 的用法将被记录

参考资料

AODH 中 http post 通知示例 http post 请求