How to check the usage of your resources through our rating endpoint

Learn how to use our rating endpoint to check the usage of your resources

Prerequisites:

Usage

Calculate usage per resource category.

Collect Cloudkitty data frames for a custom period:

% . openrc.sh
% openstack rating dataframes get --begin 2021-03-01 --end 2021-03-31 -f df-to-csv > 2021-03.csv
% head -n3 2021-03.csv
Begin,End,Metric Type,Qty,Cost,Project ID,Resource ID,User ID
2021-03-01T00:00:00,2021-03-01T01:00:00,objectstore_bucket_usage_bytes,8192.0,1.1353265671502977E-9,64ff5d56b6244719a7908e43271652bb,,
2021-03-01T00:00:00,2021-03-01T01:00:00,objectstore_bucket_usage_bytes,1581056.0,2.1911802746000743E-7,64ff5d56b6244719a7908e43271652bb,,

Calculate the cost per resource category using the xsv tool:

% categories="$(xsv select 'Metric Type' 2021-03.csv | tail -n+2 | sort -u)"
% echo $categories
compute fip image loadbalancer objectstore_bucket_usage_bytes volume
% echo "$categories" | xargs -n1 -i% sh -c 'echo -- %; xsv search -s "Metric Type" % 2021-03.csv | xsv select Cost | xsv stats | xsv select sum'
-- compute
sum
2.149553571428571
-- fip
sum
0.06250000000000004
-- image
sum
0.0025837906802605296
-- loadbalancer
sum
0.35714285714285715
-- objectstore_bucket_usage_bytes
sum
0.000011628014700753348
-- volume
sum
0.2446428571428568

Examples

Cloudkitty API with Python

Generate an OpenStack Token:

% openrc.sh
% OS_TOKEN=$(openstack token issue -c id -f value)

Run the following Python code:

import os
import requests

api_endpoint = f'https://core.fuga.cloud:8889'
headers = {
'x-auth-token': os.getenv('OS_TOKEN'),
}

payload = {
'begin': '2021-03-12T00:00',
'end': '2021-03-12T01:00',
'filters': 'flavor_name:c3.large'
}

r = requests.get(f'{api_endpoint}/v2/dataframes', headers=headers, data=payload)
result = r.json()

print(result['dataframes'][0]['usage'])

CloudKitty API with curl

Get and filter data frames on date and type.

% . openrc.sh
% OS_TOKEN=$(openstack token issue -c id -f value)
% curl -H "X-Auth-Token: $OS_TOKEN" "https://core.fuga.cloud:8889/v2/dataframes?begin=2021-03-12+00:00:00&end=2021-03-12+01:00:00&filters=type:loadbalancer" | jq .