Create and Put a value into Custom Meter¶
Overview¶
Create a custom meter
Put a sample value into the specified custom meter
"OpenStack Telemetry API" doesn't provide the equivalent of the "Create and Put a value into Custom Meter" API
警告
警告
警告
注釈
Classification¶
Create
API Operation Object¶
custom meter
Synchronous / Asynchronous¶
Synchronous
Request¶
HTTP Request Method¶
POST
HTTP Request Path¶
{api_endpoint}/v2/meters/<custom_meter_name>
HTTP Request Header¶
Content-Type: application/json
Accept: application/json
X-Auth-Token: <token_id>
HTTP Request Body¶
Format¶
[
{
"project_id": "<project_id>",
"namespace": "<namespace>",
"resource_id": "<resource_id>",
"counter_name": "<counter_name>",
"counter_type": "<counter_type>",
"counter_unit": "<counter_unit>",
"resource_metadata": {
"display_name": "<display_name>"
},
"timestamp": "<timestamp>",
"counter_volume": "<counter_volume>",
"recorded_at": "<recorded_at>",
},
<<repeat (less than 100 times)>>
]
Request Parameter¶
name |
style |
format |
description |
required/optional |
default value |
action for invalid parameter |
response code for invalid parameter |
---|---|---|---|---|---|---|---|
custom_meter_name |
Path |
String (Up to 255 alpha-numerical one byte characters and some symbols: ['-', '_', '.']) |
authentication token |
required |
- |
Terminate |
400 |
token_id |
Header |
authentication token string |
authentication token |
required |
- |
Terminate |
401 |
project_id |
Body |
String (UUID) |
The unique ID of the project(tenant) which the resource and the custom meter are belonging to |
optional |
the tenant when acquiring the <token_id> |
Terminate |
401 |
namespace |
Body |
String (Up to 32 alpha-numerical one byte characters and some symbols: ['-', '_', '.']) |
The namespace of the service |
optional |
- |
Terminate |
400 |
resource_id |
Body |
String (Up to 64 alpha-numerical one byte characters and some symbols: ['-', '_', '.']) such as "<namespace>_<UUID>" |
The unique ID of the metering resource to associate with the custom meter |
required |
- |
Terminate |
400 |
counter_name |
Body |
String (Must be the same value with "custom_meter_name". Up to 255 alpha-numerical one byte characters and some symbols: ['-', '_', '.']) |
The name of the custom meter |
required |
- |
Terminate |
400 |
counter_type |
Body |
String ( MeterType ) |
The type of measurement associated with the custom meter |
optional |
delta |
Terminate |
400 |
counter_unit |
Body |
String (Up to 32 alpha-numerical one byte characters and some symbols: ['-', '_', '.']) |
The unit of measurement associated with the custom meter |
optional |
"" |
Terminate |
400 |
display_name |
Body |
String (Up to 255 alpha-numerical one byte characters and some symbols: ['-', '_', '.']) |
The friendly display name of the custom meter |
optional |
the same value with "counter_name" |
Terminate |
400 |
timestamp |
Body |
Datetime (ISO8601) |
arbitrary timestamp |
optional |
the present time when the API request has been accepted |
Terminate |
400 |
counter_volume |
Body |
Float (integer portion: up to 12 digits, fractional portion: up to 4 digits. String will convert to Float.) |
The sample value registered with the custom meter. If this parameter is specified in the request, the "counter_volume" value will be put into the custom meter as a sample value. |
optional |
- |
Terminate |
400 |
recorded_at |
Body |
Datetime (ISO8601) |
The datetime when the sample value (counter_volume) was measured and recorded |
optional |
the present time when the API request has been accepted |
Terminate |
400 |
Response¶
Response Header¶
Format¶
HTTP/1.1 <response_code> <status> (ex. 200 OK)
Content-Type: application/json; charset=utf-8
<response_code>: see "Response Code" section
<status>: message based on the response code
注釈
Not including auto-insert fields such as "Transfer-Encoding", "Date" and others.
Response Code¶
response code |
status |
condition |
message |
---|---|---|---|
200 |
ok |
normal end |
|
400 |
bad request |
Invalid counter_type. valid meter types: ['cumulative', 'delta', 'gauge'] |
Invalid counter_type. |
Invalid recorded_at. recorded_at must be the datetime format (ISO8601). |
Invalid recorded_at. |
||
Invalid counter_volume. counter_volume must be float (The max integer portion: 12 digits, The max fractional portion: 4 digits) |
Invalid counter_volume. |
||
Invalid display_name. display_name must be alpha-numerical one byte characters and some symbols: ['-', '_', '.'] |
Invalid display_name. |
||
string size of the requested counter_unit is over than 32. |
counter_unit string size is over than 32. |
||
requested counter_name is different from {custom_meter_name} specified in the url path |
different from meter_name in counter_name. |
||
counter_name was not specified |
counter_name can't be blank. |
||
resource_id was not specified |
resource_id can't be blank. |
||
the just-created custom meter can't accept sample values(counter_volume). Please retry after 1min. |
Custom meters failed to send samples. |
||
Only 1 custom meters is cannot update in 24 hours in the basic plan. Please upgrade to the advanced plan and you can update 30 custom meters in 24 hours. |
Only 1 custom meters is cannot update in 24 hours in the current plan. |
||
Can't put sample values(counter_volume) to the custom meter over 1500 times a day. |
Custom meter is over than the update limit. |
||
Too many custom meters has been created in the tenant. |
Custom meter is over than the creation limit. |
||
More than 100 requests are included in the requested JSON array. |
Request size is over than 100. |
||
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¶
[
{
"project_id": "<project_id>",
"namespace": "<namespace>",
"resource_id": "<resource_id>",
"counter_name": "<counter_name>",
"counter_type": "<counter_type>",
"counter_unit": "<counter_unit>",
"resource_metadata": {
"display_name": "<display_name>"
},
"timestamp": "<timestamp>",
"counter_volume": "<counter_volume>",
"source": "",
"recorded_at": "<recorded_at>",
"message_id": ""
},
<<repeat>>
]
Response Parameter¶
item |
format |
description |
|
---|---|---|---|
project_id |
String |
The unique ID of the project(tenant) which the resource and the custom meter are belonging to |
|
namespace |
String |
The namespace of the service |
|
resource_id |
String |
The unique ID of the metering resource associated with the custom meter |
|
counter_name |
String |
The name of the custom meter |
|
counter_type |
String ( MeterType ) |
The type of measurement associated with the custom meter |
|
counter_unit |
String |
The unit of measurement associated with the custom meter |
|
display_name |
String |
The friendly display name of the custom meter |
|
timestamp |
datetime |
The timestamp when the "Create and Put a value into Custom Meter" API has been requested |
|
counter_volume |
String |
The sample value registered the custom meter |
|
recorded_at |
datetime |
The datetime of the sample value (counter_volume) recorded |
|
source |
- |
Non-use |
|
message_id |
- |
Non-use |
Sample Request and Response¶
Sample API Request¶
Request URL¶
GET /v2/meters/vm1_load_average
Request Header¶
Content-Type: application/json
Accept: application/json
X-Auth-Token: 61389973e52b49c394ba3b89179b290b
Request Body¶
[
{
"resource_id": "nova_bd9431c1-8d69-4ad3-803a-8d4a6b89fd36",
"counter_name": "vm1_load_average",
"counter_unit": "count",
"counter_type": "gauge",
"counter_volume": "1.01",
"resource_metadata": {
"display_name": "Load-Average"
},
"recorded_at": "2016-08-01T18:03:00+09:00"
}
]
Sample API Response¶
Response Header¶
HTTP/1.1 200 OK
Response Body¶
[
{
"project_id": "26574d10673044dbb03ffc8facc7ab7a",
"namespace": "nova",
"resource_id": "nova_bd9431c1-8d69-4ad3-803a-8d4a6b89fd36",
"counter_name": "vm1_load_average",
"counter_type": "gauge",
"counter_unit": "count",
"resource_metadata": {
"display_name": "Load-Average"
},
"timestamp": "2016-08-01T11:07:17Z",
"counter_volume": "1.01",
"source": "",
"recorded_at": "2016-08-01T18:03:00+09:00",
"message_id": ""
}
]
Sample Error Response¶
HTTP Request¶
GET /v2/meters/vm1_load_average
User-Agent: curl/7.19.7
Content-Type: application/json
Accept: application/json
X-Auth-Token: 61389973e52b49c394ba3b89179b290b
[
{
"resource_id": "nova_bd9431c1-8d69-4ad3-803a-8d4a6b89fd36",
"counter_name": "vm2_load_average",
"counter_unit": "count",
"counter_type": "gauge",
"counter_volume": "2.51",
"resource_metadata": {
"display_name": "Load-Average"
},
"recorded_at": "2016-08-01T18:05:00+09:00"
}
]
HTTP Response¶
HTTP/1.1 400 Bad Request
Date: Mon, 01 Aug 2016 12:26:36 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":"different from meter_name in counter_name.","title":"Bad Request"}}