List Overall Alarm Histories¶
Overview¶
- List the histories of all alarms in reverse chronological order
- "OpenStack Telemetry API" doesn't provide the equivalent of the "List Overall Alarm Histories" API
Classification¶
- List
API Operation Object¶
- Alarm
Synchronous / Asynchronous¶
- Synchronous
Request¶
HTTP Request Method¶
- GET
HTTP Request Path¶
{api_endpoint}/v2/alarm_histories
HTTP Request Header¶
Content-Type: application/json
Accept: application/json
X-Auth-Token: <token_id>
HTTP Request Body¶
- none
Request Parameter¶
name | style | format | description | required/optional | default value | action for invalid parameter | response code for invalid parameter |
---|---|---|---|---|---|---|---|
q | Query | string | Filter rules for listing alarms | optional | - | Terminate | 400 |
page | Query | Integer | A page number when alarms are paginated | optional | 100 | Terminate | 400 |
per_page | Query | Integer | A page number when alarms are paginated | optional | 100 | Terminate | 400 |
token_id | Header | authentication token string | authentication token | required | - | Terminate | 401 |
A query field can be designated by describing after "q.field=". (ex. q.field=timestamp)
key name | format | description | required/optional | default value | valied operator |
---|---|---|---|---|---|
project_id | string | the uuid of a tenant | optional | - | eq |
project | string | an alias of 'project_id' | optional | - | eq |
alarm_name | string | the alarm name (exact match) | optional | - | eq |
alarm_name | string | the alarm name (partial match) | optional | - | pm |
user_id | string | the uuid of a user | optional | - | eq |
user | string | an alias of 'user_id' | optional | - | eq |
type | string | the type of an alarm history | optional | - | eq |
timestamp | datetime | start time of the retrieving range | optional | - | ge |
timestamp | datetime | end time of the retrieving range | optional | - | le |
A query operator can be designated by describing after "q.op=". (ex. q.op=eq)
operator | description |
---|---|
eq | equal to |
pm | partial match (available only "alarm_name" field) |
le | less than or equal to |
ge | greater than or equal to |
A query type can be designated by describing after "q.type=". (ex. q.type=integer)
type | ex. (q.value) |
---|---|
integer | 1234 |
float | 1234.1234 |
boolean | 0 or 1 |
string | abcd |
datetime | 2015-12-01T12:34:00+09:00 |
Response¶
Response Header¶
Format¶
HTTP/1.1 <response_code> <status> (ex. 200 OK)
- <response_code>: see "Response Code" section
- <status>: message based on the response code
注釈
skip auto-insert fields such as "Content-Length" and "Date"
Response Code¶
response code | status | condition | message |
200 | ok | normal end | |
400 | bad request | specified non query field | Field can't be blank. |
invalid query field | Unrecognized field in query. Valid keys: ['project_id', 'type', 'timestamp','user_id'] | ||
invalid query op | Unimplemented operator 'xxxx' for specified field. | ||
specified non query value | Value can't be blank. | ||
invalid query data type | The data type 'xxxx' is not supported. The supported data type list is: ['integer', 'float', 'boolean', 'string', 'datetime'] | ||
invalid value (1) | Unable to convert the value 'xxxx' to the expected data type 'integer'. | ||
invalid value (2) | Unexpected exception converting 'xxxx' to the expected data type 'datetime'. | ||
invalid timestamp value | Please designate end_timestamp newer than start_timestamp. | ||
401 | unauthorized | authentication failure | The request you have made requires authentication. |
invalid project id | Not authorized to access project. | ||
500 | internal server error | internal server error | The request processing has failed due to some unknown error, exception or failure |
Response Body¶
Format¶
[
{
"alarm_id": "<alarm_id>",
"event_id": "",
"on_behalf_of": "<tenant_id>",
"project_id": "<tenant_id>",
"user_id": "<user_id>",
"type": "<type>",
"detail": "<detail>",
"timestamp": "<timestamp>"
"alarm_name": "<alarm_name>"
},
<<repeat>>
]
Response Parameter¶
item | format | description |
---|---|---|
alarm | List(AlarmChange) | overall alarm history listed in reverse chronological order |
Sample Request and Response¶
Sample API Request¶
Request URL¶
GET /v2/alarm_histories
Request Header¶
Content-Type: application/json
Accept: application/json
X-Auth-Token: e8c788fbaeb14964ae19759eb1df4ff1
Request Body¶
- none
Sample API Response¶
Response Header¶
HTTP/1.1 200 OK
Response Body¶
[
{
"alarm_id": "d1ae7fb6-452a-456d-8baa-61752c92c909",
"detail": "{\"alarm_actions\": [\"http://target.com/\"], \"user_id\": \"77fc13282468432d8905b42fcc01d61a\", \"name\": \"sample\", \"state\": \"ok\", \"timestamp\": \"2015-07-16T07:01:21+00:00\", \"enabled\": true, \"state_timestamp\": \"2015-07-16T07:02:07+00:00\", \"threshold_rule\": {\"meter_name\": \"instance\", \"evaluation_periods\": 1, \"evaluation_type\": 0, \"period\": 300, \"statistic\": \"sum\", \"threshold\": 3.0, \"query\": [{\"field\": \"resource_id\", \"oq\": \"eq\", \"type\": \"string\", \"value\": \"bd9431c1-8d69-4ad3-803a-8d4a6b89fd36\"}], \"comparison_operator\": \"eq\", \"exclude_outliers\": false}, \"alarm_id\": \"d1ae7fb6-452a-456d-8baa-61752c92c909\", \"time_constraints\": [], \"insufficient_data_actions\": [], \"repeat_actions\": true, \"ok_actions\": [\"http://target.com/\"], \"project_id\": \"35b17138-b364-4e6a-a131-8f3099c5be68\", \"type\": \"threshold\", \"description\": \"test description\", \"severity\": "low", \"resource_name\": \"resource_test\", \"deleted\": true}",
"event_id": "",
"on_behalf_of": "35b17138-b364-4e6a-a131-8f3099c5be68",
"project_id": "35b17138-b364-4e6a-a131-8f3099c5be68",
"timestamp": "2015-07-16T07:04:41+00:00",
"type": "deletion",
"user_id": "77fc13282468432d8905b42fcc01d61a",
"alarm_name": "sample"
},
{
"alarm_id": "d1ae7fb6-452a-456d-8baa-61752c92c909",
"detail": "{\"state\": \"alarm\"}",
"event_id": "",
"on_behalf_of": "35b17138-b364-4e6a-a131-8f3099c5be68",
"project_id": "35b17138-b364-4e6a-a131-8f3099c5be68",
"timestamp": "2015-07-16T07:02:07+00:00",
"type": "state transition",
"user_id": "",
"alarm_name": "sample"
},
{
"alarm_id": "d1ae7fb6-452a-456d-8baa-61752c92c909",
"detail": "{\"alarm_actions\": [\"http://target.com/\"], \"user_id\": \"77fc13282468432d8905b42fcc01d61a\", \"name\": \"sample\", \"state\": \"ok\", \"timestamp\": \"2015-07-16T07:01:21+00:00\", \"enabled\": true, \"state_timestamp\": \"2015-07-16T07:01:21+00:00\", \"threshold_rule\": {\"meter_name\": \"instance\", \"evaluation_periods\": 1, \"evaluation_type\": 0, \"period\": 300, \"statistic\": \"sum\", \"threshold\": 3.0, \"query\": [{\"field\": \"resource_id\", \"oq\": \"eq\", \"type\": \"string\", \"value\": \"bd9431c1-8d69-4ad3-803a-8d4a6b89fd36\"}], \"comparison_operator\": \"eq\", \"exclude_outliers\": false}, \"alarm_id\": \"d1ae7fb6-452a-456d-8baa-61752c92c909\", \"time_constraints\": [], \"insufficient_data_actions\": [], \"repeat_actions\": true, \"ok_actions\": [\"http://target.com/\"], \"project_id\": \"35b17138-b364-4e6a-a131-8f3099c5be68\", \"type\": \"threshold\", \"description\": \"test description\", \"severity\": "low", \"resource_name\": \"resource_test\", \"deleted\": false}",
"event_id": "",
"on_behalf_of": "35b17138-b364-4e6a-a131-8f3099c5be68",
"project_id": "35b17138-b364-4e6a-a131-8f3099c5be68",
"timestamp": "2015-07-16T07:01:21+00:00",
"type": "creation",
"user_id": "77fc13282468432d8905b42fcc01d61a",
"alarm_name": "sample"
}
]
Sample Error Response¶
HTTP Request¶
GET /v2/alarm_histories?q.field=type&q.op=pm&q.type=string&q.value=cre
User-Agent: curl/7.35.0
Content-Type: application/json
Accept: application/json
X-Auth-Token: 61389973e52b49c394ba3b89179b290b
HTTP Response¶
HTTP/1.1 400 Bad Request
Date: Wed, 20 Jul 2016 07:58:54 GMT
Server: Apache
Cache-Control: no-cache
X-XSS-Protection: 1; mode=block
X-Frame-Options: SAMEORIGIN
X-Content-Type-Options: nosniff
Status: 400 Bad Request
Connection: close
Transfer-Encoding: chunked
Content-Type: application/json; charset=utf-8
{"error":{"code":400,"message":"Unimplemented operator 'pm' for specified field.","title":"Bad Request"}}