Implements: blueprint alarm-counts-api
UPDATED with comments from vitrage members; will calculate counts as part of REST API instead of maintaining counts in graph. Change-Id: If77a90d3a59c85b35cd1a267d36872013864d6bf Signed-off-by: Greg Waines <greg.waines@windriver.com>
This commit is contained in:
parent
5d31ecdde8
commit
285425bbf4
154
specs/pike/alarm-counts-api.rst
Normal file
154
specs/pike/alarm-counts-api.rst
Normal file
@ -0,0 +1,154 @@
|
||||
..
|
||||
This work is licensed under a Creative Commons Attribution 3.0 Unported
|
||||
License.
|
||||
|
||||
http://creativecommons.org/licenses/by/3.0/legalcode
|
||||
|
||||
========================
|
||||
Vitrage Alarm Counts API
|
||||
========================
|
||||
|
||||
Extend the Vitrage REST API to support a GET of the Active Alarm Counts, for
|
||||
each alarm severity level, in Vitrage.
|
||||
|
||||
|
||||
Problem description
|
||||
===================
|
||||
Provide REST API access to the Vitrage Active Alarm Counts in support of the
|
||||
Horizon blueprint, "Vitrage Alarm Banner in Top Navbar".
|
||||
|
||||
|
||||
Proposed change
|
||||
===============
|
||||
Support the following REST API to Vitrage for calculating and returning
|
||||
the Active Alarm Counts for each alarm severity level::
|
||||
|
||||
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
|
||||
}
|
||||
|
||||
NOTE: The vitrage CLI and client will be updated for this new API.
|
||||
e.g. "vitrage alarm count"
|
||||
|
||||
|
||||
|
||||
Alternatives
|
||||
------------
|
||||
For performance reasons, maintain the Active Alarm Counts in Vitrage Entity
|
||||
Graph, and just return these counts when the REST API command is received.
|
||||
|
||||
Although decided against this due to:
|
||||
|
||||
- keeping a counter, in addition to the graph, might be buggy (multi threading
|
||||
issues etc.),
|
||||
- calculating the counter means traversing once all of the vertices in the graph,
|
||||
get all alarms, and count. It shouldn't be too expensive, it's just like
|
||||
'get alarms' api,
|
||||
- since the result of this api is used for ui query (and not for notification or
|
||||
corrective actions for example), the performance is not that critical.
|
||||
|
||||
Data model impact
|
||||
-----------------
|
||||
None
|
||||
|
||||
REST API impact
|
||||
---------------
|
||||
Extending REST API with new GET /v1/alarm/count API.
|
||||
|
||||
Versioning impact
|
||||
-----------------
|
||||
None ... just extending API, no changes.
|
||||
|
||||
Other end user impact
|
||||
---------------------
|
||||
None
|
||||
|
||||
Deployer impact
|
||||
---------------
|
||||
None
|
||||
|
||||
Developer impact
|
||||
----------------
|
||||
None
|
||||
|
||||
Horizon impact
|
||||
--------------
|
||||
Horizon will use this API to populate the counts in its new "Vitrage
|
||||
Alarm Banner" in its Top Navbar; a proposed Horizon blueprint.
|
||||
|
||||
|
||||
|
||||
Implementation
|
||||
==============
|
||||
|
||||
Assignee(s)
|
||||
-----------
|
||||
Primary assignee:
|
||||
gwaines
|
||||
|
||||
Other contributors:
|
||||
None
|
||||
|
||||
Work Items
|
||||
----------
|
||||
- Implement new REST API in Vitrage API: GET /v1/alarm/count API,
|
||||
to calculate and return the Vitrage Active Alarm Counts for each
|
||||
alarm severity level,
|
||||
- Update Vitrage client for new API
|
||||
- Add the new "vitrage alarm count" CLI command
|
||||
|
||||
|
||||
Dependencies
|
||||
============
|
||||
None
|
||||
|
||||
|
||||
Testing
|
||||
=======
|
||||
The changes shall be covered by new unit test and tempest test.
|
||||
|
||||
|
||||
Documentation Impact
|
||||
====================
|
||||
Update to Vitrage API Documentation; i.e. the new API will be added under
|
||||
https://github.com/openstack/vitrage/blob/master/doc/source/vitrage-api.rst
|
||||
|
||||
|
||||
References
|
||||
==========
|
||||
None.
|
||||
|
Loading…
Reference in New Issue
Block a user