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