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
参考资料¶
无。