Vitrage 告警计数 API

扩展 Vitrage REST API,以支持获取 Vitrage 中每个告警严重程度级别的活动告警计数。

问题描述

为了支持 Horizon 蓝图“顶部导航栏中的 Vitrage 告警横幅”,提供对 Vitrage 活动告警计数的 REST API 访问。

提议的变更

支持以下 REST API,用于计算并返回每个告警严重程度级别的活动告警计数

GET /v1/alarm/count

Headers
        X-Auth-Token (string, required) - Keystone auth token
        Accept (string) - application/json

Path Parameters
        None.

Query Parameters
        None.

Request Body
        all_tenants - (boolean, optional) shows the alarm counts
                      summed across all tenants (in case the user
                      has the permissions).

Request Examples
        GET /v1/alarm/count HTTP/1.1
        Host: 135.248.19.18:8999
        X-Auth-Token: 2b8882ba2ec44295bf300aecb2caa4f7
        Accept: application/json

Response Status code
        200 - OK

Response Body
        Returns a JSON object containing the alarm counts for the
        different alarm severities.

Response Examples
        {
          "critical_alarm_count": 1,
          "major_alarm_count": 0,
          "minor_alarm_count": 1,
          "warning_alarm_count": 3
        }

注意:vitrage CLI 和客户端将针对此新 API 进行更新。例如:“vitrage alarm count”

备选方案

为了提高性能,在 Vitrage 实体图中维护活动告警计数,并在收到 REST API 命令时仅返回这些计数。

虽然由于以下原因放弃了此方案:

  • 维护一个计数器,除了图形之外,可能会出现错误(多线程问题等),

  • 计算计数器意味着遍历图形中的所有顶点,获取所有告警并计数。这不应该太昂贵,就像“获取告警”api一样,

  • 由于此 api 的结果用于 ui 查询(而不是用于通知或纠正操作),因此性能不是那么关键。

数据模型影响

REST API 影响

通过新的 GET /v1/alarm/count API 扩展 REST API。

版本影响

没有…只是扩展 API,没有更改。

其他最终用户影响

部署者影响

开发者影响

Horizon 影响

Horizon 将使用此 API 在其新的顶部导航栏“Vitrage 告警横幅”中填充计数;一个提议的 Horizon 蓝图。

实现

负责人

主要负责人

gwaines

其他贡献者

工作项

  • 在 Vitrage API 中实现新的 REST API:GET /v1/alarm/count API,以计算并返回每个告警严重程度级别的 Vitrage 活动告警计数,

  • 更新 Vitrage 客户端以支持新的 API

  • 添加新的“vitrage alarm count”CLI 命令

依赖项

测试

这些更改应由新的单元测试和 tempest 测试覆盖。

文档影响

更新 Vitrage API 文档;即,新的 API 将添加到 https://github.com/openstack/vitrage/blob/master/doc/source/contributor/vitrage-api.rst

参考资料

无。