基于事件驱动的优化

https://blueprints.launchpad.net/watcher/+spec/event-driven-optimization-based

问题描述

Watcher 提供了 ONESHOT 和 CONTINUOUS 审计。ONESHOT 审计在启动后仅执行一次优化。CONTINUOUS 审计会周期性地执行优化。但是,没有办法响应系统的变化,例如告警事件。

用例

作为 Watcher 的用户,我希望在系统出现告警时尽快执行优化。

提议的变更

许多监控系统,例如 aodh,可以设置 webhook 作为告警动作,如果触发了告警,将发送一个 POST 请求。关于 POST 请求的身份验证,Aodh 的 告警动作 可以设置前缀 trust 以在请求 url 中添加 X-Auth-Token 头。Watcher 添加一个新的配置选项 enable_webhooks_auth 来决定是否启用 webhook 身份验证,默认值为 True。Watcher 添加了接收和处理告警事件的机制。

以下是处理流程摘要:用户创建一个基于事件的审计,需要一种新的审计类型,名为 EVENT。在监控系统(例如 aodh)中创建带有 Watcher webhook 和审计 uuid 的告警。当告警被触发时,Watcher 将接收带有审计 uuid 的事件。Watcher 执行审计并创建行动计划。

备选方案

CONTINUOUS 审计可以用来满足这个目的,但这会增加工作负载。

数据模型影响

REST API 影响

添加一个新的 webhook API

  • /v1/webhooks/{audit_ident}

    • 触发基于事件的审计,audit_ident 是审计的 uuid 或名称。不执行身份验证令牌的验证。

    • 方法类型:POST

    • 正常的 http 响应代码:202(Accepted)

    • 预期的错误 http 响应代码:400, 404(Not Found)

安全影响

通知影响

其他最终用户影响

性能影响

其他部署者影响

开发人员影响

实现

负责人

主要负责人

licanwei

工作项

  • 添加一个新的审计类型,名为 EVENT

  • 添加一个新的 webhook API

  • 基于事件的审计处理流程

依赖项

测试

  • 新功能单元测试

文档影响

  • 添加关于如何使用新功能的文档

参考资料

https://docs.openstack.org/aodh/latest/

历史

修订版

发布名称

描述

Ussuri

引入