deb-gnocchi/gnocchi/tests/gabbi/gabbits/aggregation.yaml

277 lines
9.1 KiB
YAML

fixtures:
- ConfigFixture
tests:
- name: create archive policy
desc: for later use
POST: /v1/archive_policy
request_headers:
content-type: application/json
x-roles: admin
data:
name: low
definition:
- granularity: 1 second
- granularity: 300 seconds
status: 201
# Aggregation by metric ids
- name: create metric 1
POST: /v1/metric
request_headers:
content-type: application/json
data:
archive_policy_name: low
status: 201
- name: create metric 2
POST: /v1/metric
request_headers:
content-type: application/json
data:
archive_policy_name: low
status: 201
- name: get metric list to push metric 1
url: /v1/metric
- name: push measurements to metric 1
POST: /v1/metric/$RESPONSE['$[0].id']/measures
request_headers:
content-type: application/json
data:
- timestamp: "2015-03-06T14:33:57"
value: 43.1
- timestamp: "2015-03-06T14:34:12"
value: 12
status: 202
- name: get metric list to push metric 2
GET: /v1/metric
- name: push measurements to metric 2
POST: /v1/metric/$RESPONSE['$[1].id']/measures
request_headers:
content-type: application/json
data:
- timestamp: "2015-03-06T14:33:57"
value: 3.1
- timestamp: "2015-03-06T14:34:12"
value: 2
status: 202
- name: get metric list to get aggregates
GET: /v1/metric
- name: get measure aggregates by granularity not float
GET: /v1/aggregation/metric?metric=$RESPONSE['$[0].id']&metric=$RESPONSE['$[1].id']&granularity=foobar
status: 400
- name: get metric list to get aggregates for get with refresh
GET: /v1/metric
- name: get measure aggregates by granularity with refresh
GET: /v1/aggregation/metric?metric=$RESPONSE['$[0].id']&metric=$RESPONSE['$[1].id']&granularity=1&refresh=true
response_json_paths:
$:
- ['2015-03-06T14:33:57+00:00', 1.0, 23.1]
- ['2015-03-06T14:34:12+00:00', 1.0, 7.0]
- name: get metric list to get aggregates 2
GET: /v1/metric
- name: get measure aggregates by granularity
GET: /v1/aggregation/metric?metric=$RESPONSE['$[0].id']&metric=$RESPONSE['$[1].id']&granularity=1
poll:
count: 10
delay: 1
response_json_paths:
$:
- ['2015-03-06T14:33:57+00:00', 1.0, 23.1]
- ['2015-03-06T14:34:12+00:00', 1.0, 7.0]
- name: get metric list to push metric 3
GET: /v1/metric
- name: get measure aggregates by granularity with timestamps
GET: /v1/aggregation/metric?metric=$RESPONSE['$[0].id']&metric=$RESPONSE['$[1].id']&start=2015-03-06T15:33:57%2B01:00&stop=2015-03-06T15:34:00%2B01:00
poll:
count: 10
delay: 1
response_json_paths:
$:
- ['2015-03-06T14:30:00+00:00', 300.0, 15.05]
- ['2015-03-06T14:33:57+00:00', 1.0, 23.1]
- name: get metric list to push metric 4
GET: /v1/metric
- name: get measure aggregates and reaggregate
GET: /v1/aggregation/metric?metric=$RESPONSE['$[0].id']&metric=$RESPONSE['$[1].id']&reaggregation=min
poll:
count: 10
delay: 1
response_json_paths:
$:
- ['2015-03-06T14:30:00+00:00', 300.0, 2.55]
- ['2015-03-06T14:33:57+00:00', 1.0, 3.1]
- ['2015-03-06T14:34:12+00:00', 1.0, 2.0]
# Aggregation by resource and metric_name
- name: post a resource
POST: /v1/resource/generic
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
data:
id: bcd3441c-b5aa-4d1b-af9a-5a72322bb269
metrics:
agg_meter:
archive_policy_name: low
status: 201
- name: post another resource
POST: /v1/resource/generic
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
data:
id: 1b0a8345-b279-4cb8-bd7a-2cb83193624f
metrics:
agg_meter:
archive_policy_name: low
status: 201
- name: push measurements to resource 1
POST: /v1/resource/generic/bcd3441c-b5aa-4d1b-af9a-5a72322bb269/metric/agg_meter/measures
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
data:
- timestamp: "2015-03-06T14:33:57"
value: 43.1
- timestamp: "2015-03-06T14:34:12"
value: 12
status: 202
- name: push measurements to resource 2
POST: /v1/resource/generic/1b0a8345-b279-4cb8-bd7a-2cb83193624f/metric/agg_meter/measures
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
data:
- timestamp: "2015-03-06T14:33:57"
value: 3.1
- timestamp: "2015-03-06T14:34:12"
value: 2
status: 202
- name: get measure aggregates by granularity from resources with refresh
POST: /v1/aggregation/resource/generic/metric/agg_meter?granularity=1&refresh=true
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
response_json_paths:
$:
- ['2015-03-06T14:33:57+00:00', 1.0, 23.1]
- ['2015-03-06T14:34:12+00:00', 1.0, 7.0]
- name: get measure aggregates by granularity from resources
POST: /v1/aggregation/resource/generic/metric/agg_meter?granularity=1
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
poll:
count: 10
delay: 1
response_json_paths:
$:
- ['2015-03-06T14:33:57+00:00', 1.0, 23.1]
- ['2015-03-06T14:34:12+00:00', 1.0, 7.0]
- name: get measure aggregates by granularity with timestamps from resources
POST: /v1/aggregation/resource/generic/metric/agg_meter?start=2015-03-06T15:33:57%2B01:00&stop=2015-03-06T15:34:00%2B01:00
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
poll:
count: 10
delay: 1
response_json_paths:
$:
- ['2015-03-06T14:30:00+00:00', 300.0, 15.05]
- ['2015-03-06T14:33:57+00:00', 1.0, 23.1]
- name: get measure aggregates by granularity from resources and reaggregate
POST: /v1/aggregation/resource/generic/metric/agg_meter?granularity=1&reaggregation=min
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
poll:
count: 10
delay: 1
response_json_paths:
$:
- ['2015-03-06T14:33:57+00:00', 1.0, 3.1]
- ['2015-03-06T14:34:12+00:00', 1.0, 2.0]
# Some negative tests
- name: get measure aggregates with wrong GET
GET: /v1/aggregation/resource/generic/metric/agg_meter
status: 405
- name: get measure aggregates with wrong metric_name
POST: /v1/aggregation/resource/generic/metric/notexists
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
status: 200
response_json_paths:
$.`len`: 0
- name: get measure aggregates with wrong resource
POST: /v1/aggregation/resource/notexits/metric/agg_meter
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
status: 404
response_strings:
- Resource type notexits does not exist
- name: get measure aggregates with wrong path
POST: /v1/aggregation/re/generic/metric/agg_meter
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
status: 404
- name: get measure aggregates with wrong path 2
POST: /v1/aggregation/resource/generic/notexists/agg_meter
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
status: 404
- name: get measure aggregates with no resource name
POST: /v1/aggregation/resource/generic/metric
request_headers:
x-user-id: 0fbb231484614b1a80131fc22f6afc9c
x-project-id: f3d41b770cc14f0bb94a1d5be9c0e3ea
content-type: application/json
status: 405