CentOS Stream 9
Sponsored Link

OpenStack Caracal : How to use CloudKitty2024/08/08

 

This is how to use OpenStack Rating Service (CloudKitty).

This example is based on the environment like follows.

------------+--------------------------+--------------------------+------------
            |                          |                          |
        eth0|10.0.0.30             eth0|10.0.0.50             eth0|10.0.0.51
+-----------+-----------+  +-----------+-----------+  +-----------+-----------+
|   [ dlp.srv.world ]   |  | [ network.srv.world ] |  |  [ node01.srv.world ] |
|     (Control Node)    |  |     (Network Node)    |  |     (Compute Node)    |
|                       |  |                       |  |                       |
|  MariaDB    RabbitMQ  |  |      Open vSwitch     |  |        Libvirt        |
|  Memcached  Nginx     |  |     Neutron Server    |  |      Nova Compute     |
|  Keystone   httpd     |  |      OVN-Northd       |  |      Open vSwitch     |
|  Glance     Nova API  |  |  Nginx  iSCSI Target  |  |   OVN Metadata Agent  |
|  Cinder API           |  |     Cinder Volume     |  |     OVN-Controller    |
|                       |  |     Gnocchi httpd     |  |   Ceilometer Compute  |
|                       |  |   Ceilometer Central  |  |                       |
|                       |  |     CloudKitty API    |  |                       |
+-----------------------+  +-----------------------+  +-----------------------+

[1] Add [cloudkitty] user in [rating] role for each project you like to rate.
[root@dlp ~(keystone)]#
openstack project list

+----------------------------------+-----------+
| ID                               | Name      |
+----------------------------------+-----------+
| 03a31c43ede44dcbaacb05c870920e81 | hiroshima |
| 0b826f1bf49d489494e94badc32f2cea | service   |
| b62e60c6d4b7406a90eee2f2d9c45917 | admin     |
+----------------------------------+-----------+

[root@dlp ~(keystone)]#
openstack role add --user cloudkitty --project hiroshima rating

[2] Enable [Hashmap] module.
[root@dlp ~(keystone)]#
openstack rating module list

+-----------+---------+----------+
| Module    | Enabled | Priority |
+-----------+---------+----------+
| hashmap   | False   |        1 |
| noop      | True    |        1 |
| pyscripts | False   |        1 |
+-----------+---------+----------+

[root@dlp ~(keystone)]#
openstack rating module enable hashmap

+---------+---------+----------+
| Module  | Enabled | Priority |
+---------+---------+----------+
| hashmap | True    |        1 |
+---------+---------+----------+

[root@dlp ~(keystone)]#
openstack rating module list

+-----------+---------+----------+
| Module    | Enabled | Priority |
+-----------+---------+----------+
| hashmap   | True    |        1 |
| noop      | True    |        1 |
| pyscripts | False   |        1 |
+-----------+---------+----------+
[3] Set rate to Instance Uptime.
When users in the project set on [1] create and start instances with [flavor_id] you set, target project is charged at the rate you set every interval of the [period] you set in [cloudkitty.conf].
# add service matching rule

[root@dlp ~(keystone)]#
openstack rating hashmap service create instance

+----------+--------------------------------------+
| Name     | Service ID                           |
+----------+--------------------------------------+
| instance | 107c0f92-4ac4-4eda-b3f9-f044cbfe84bf |
+----------+--------------------------------------+

# add field matching rule

[root@dlp ~(keystone)]#
openstack rating hashmap field create 107c0f92-4ac4-4eda-b3f9-f044cbfe84bf flavor_id

+-----------+--------------------------------------+--------------------------------------+
| Name      | Field ID                             | Service ID                           |
+-----------+--------------------------------------+--------------------------------------+
| flavor_id | 893eb621-213f-4345-ae8a-20f13b2f5d2a | 107c0f92-4ac4-4eda-b3f9-f044cbfe84bf |
+-----------+--------------------------------------+--------------------------------------+

[root@dlp ~(keystone)]#
openstack flavor list

+----+-----------+-------+------+-----------+-------+-----------+
| ID | Name      |   RAM | Disk | Ephemeral | VCPUs | Is Public |
+----+-----------+-------+------+-----------+-------+-----------+
| 1  | m1.tiny   |  2048 |   10 |         0 |     1 | True      |
| 2  | m1.small  |  4096 |   10 |         0 |     2 | True      |
| 3  | m1.medium |  8192 |   10 |         0 |     4 | True      |
| 4  | m1.large  | 16384 |   10 |         0 |     8 | True      |
| 5  | m2.large  | 16384 |   10 |        10 |     8 | True      |
+----+-----------+-------+------+-----------+-------+-----------+

# add mapping rule
# set a cost of [0.5] to instances with [flavor_id] = [2]
[root@dlp ~(keystone)]# openstack rating hashmap mapping create 0.5 \
--field-id 893eb621-213f-4345-ae8a-20f13b2f5d2a \
--value 2 -t flat 
+--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+
| Mapping ID                           | Value | Cost                           | Type | Field ID                             | Service ID | Group ID | Project ID |
+--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+
| ca1fe87d-2784-49c2-bd70-d68fcf63f96e | 2     | 0.5000000000000000000000000000 | flat | 893eb621-213f-4345-ae8a-20f13b2f5d2a | None       | None     | None       |
+--------------------------------------+-------+--------------------------------+------+--------------------------------------+------------+----------+------------+
[4] Verify settings with an user who is in the project you set on [1] to create or start an instance.
[cent@dlp ~(keystone)]$
openstack server list

+--------------------------------------+------------+---------+------------------------------------+----------------+----------+
| ID                                   | Name       | Status  | Networks                           | Image          | Flavor   |
+--------------------------------------+------------+---------+------------------------------------+----------------+----------+
| 1d0c2140-098d-4a1a-a705-82d7755d7c84 | CentOS-St9 | SHUTOFF | private=10.0.0.250, 192.168.100.65 | CentOS-Stream9 | m1.small |
+--------------------------------------+------------+---------+------------------------------------+----------------+----------+

[cent@dlp ~(keystone)]$
openstack server start CentOS-St9
# after a certain period of time, costs are charged

[cent@dlp ~(keystone)]$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| 03a31c43ede44dcbaacb05c870920e81 | ALL           | 0.5  | 2024-08-01T00:00:00 | 2024-09-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

# if the instance continues to run, costs are charged every [period] of time

[cent@dlp ~(keystone)]$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| 03a31c43ede44dcbaacb05c870920e81 | ALL           | 1.0  | 2024-08-01T00:00:00 | 2024-09-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

# display data frames

[cent@dlp ~(keystone)]$
openstack rating dataframes get

+---------------------+---------------------+----------------------------------+--------------------
| Begin               | End                 | Project ID                       | Resources          
+---------------------+---------------------+----------------------------------+--------------------
| 2024-08-07T09:40:00 | 2024-08-07T09:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 
| 2024-08-07T10:00:00 | 2024-08-07T10:10:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 
| 2024-08-07T10:10:00 | 2024-08-07T10:20:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 
| 2024-08-07T10:30:00 | 2024-08-07T10:40:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 
| 2024-08-07T10:40:00 | 2024-08-07T10:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 
+---------------------+---------------------+----------------------------------+--------------------
------------------------------------------------------------------------------------------------
                                                                                                
------------------------------------------------------------------------------------------------
'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': 
'service': 'volume.size', 'desc': {'volume_type': 'e2ae0413-f9c8-437a-bf2b-8c461d00d2f7', 'id': 
'service': 'volume.size', 'desc': {'volume_type': 'e2ae0413-f9c8-437a-bf2b-8c461d00d2f7', 'id': 
'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': 
'service': 'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': 
------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------
                                                                                                     
-----------------------------------------------------------------------------------------------------
'1d0c2140-098d-4a1a-a705-82d7755d7c84', 'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': 
'721b91bf-1140-4d2b-b42e-ace5b510e902', 'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': 
'721b91bf-1140-4d2b-b42e-ace5b510e902', 'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': 
'1d0c2140-098d-4a1a-a705-82d7755d7c84', 'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': 
'1d0c2140-098d-4a1a-a705-82d7755d7c84', 'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': 
-----------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------
                                                                                                      
------------------------------------------------------------------------------------------------------
'8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220', 'month': '8', 
'8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220', 'month': '8', 
'8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220', 'month': '8', 
'8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220', 'month': '8', 
'8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220', 'month': '8', 
------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------+
                                                                                                             |
-------------------------------------------------------------------------------------------------------------+
'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.0000'}]    |
'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]    |
'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]    |
-------------------------------------------------------------------------------------------------------------+
[5] Set rate to Volume Size.
When users in the project set on [1] create cinder volumes, target project is charged at the rate you set per gigabyte.
# add service matching rule

[root@dlp ~(keystone)]#
openstack rating hashmap service create volume.size

+-------------+--------------------------------------+
| Name        | Service ID                           |
+-------------+--------------------------------------+
| volume.size | c54d2afd-8a1b-4195-9486-8439e2ef219b |
+-------------+--------------------------------------+

# add mapping rule
# set a cost of [1.5] per gigabyte
[root@dlp ~(keystone)]# openstack rating hashmap mapping create 1.5 \
-s c54d2afd-8a1b-4195-9486-8439e2ef219b \
-t flat 
+--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| Mapping ID                           | Value | Cost                           | Type | Field ID | Service ID                           | Group ID | Project ID |
+--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| 36e64a7e-8f2e-4bc2-8b9e-808ce2148b5d | None  | 1.5000000000000000000000000000 | flat | None     | c54d2afd-8a1b-4195-9486-8439e2ef219b | None     | None       |
+--------------------------------------+-------+--------------------------------+------+----------+--------------------------------------+----------+------------+

# set a 10% discount on over 30 GB volumes
[root@dlp ~(keystone)]# openstack rating hashmap threshold create 30 0.90 \
-s c54d2afd-8a1b-4195-9486-8439e2ef219b \
-t rate 
+--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| Threshold ID                         | Level       | Cost                           | Type | Field ID | Service ID                           | Group ID | Project ID |
+--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+
| 19b30aa5-2251-46ec-8ef9-c030c3ef40b9 | 30.00000000 | 0.9000000000000000222044604925 | rate | None     | c54d2afd-8a1b-4195-9486-8439e2ef219b | None     | None       |
+--------------------------------------+-------------+--------------------------------+------+----------+--------------------------------------+----------+------------+
[6] Verify settings with an user who is in the project you set on [1] to create volumes.
[cent@dlp ~(keystone)]$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| 03a31c43ede44dcbaacb05c870920e81 | ALL           | 1.5  | 2024-08-01T00:00:00 | 2024-09-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

[cent@dlp ~(keystone)]$ openstack volume create --size 10 disk01 

[cent@dlp ~(keystone)]$
openstack volume list

+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 056b6315-aac9-49d3-a769-64709cf9ec8d | disk01 | available |   10 |             |
+--------------------------------------+--------+-----------+------+-------------+

# after a certain period of time, costs are charged

[cent@dlp ~(keystone)]$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| 03a31c43ede44dcbaacb05c870920e81 | ALL           | 16.5 | 2024-08-01T00:00:00 | 2024-09-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

[cent@dlp ~(keystone)]$
openstack rating dataframes get

+---------------------+---------------------+----------------------------------+-------------------------------
| Begin               | End                 | Project ID                       | Resources                     
+---------------------+---------------------+----------------------------------+-------------------------------
| 2024-08-07T09:40:00 | 2024-08-07T09:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 'service': 
| 2024-08-07T10:00:00 | 2024-08-07T10:10:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 'service': 
| 2024-08-07T10:10:00 | 2024-08-07T10:20:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 'service': 
| 2024-08-07T10:30:00 | 2024-08-07T10:40:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 'service': 
| 2024-08-07T10:40:00 | 2024-08-07T10:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 'service': 
| 2024-08-07T10:50:00 | 2024-08-07T11:00:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 'service': 
| 2024-08-07T11:00:00 | 2024-08-07T11:10:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '15.0', 'service':
+---------------------+---------------------+----------------------------------+-------------------------------
-----------------------------------------------------------------------------------------------------------------------------
                                                                                                                             
-----------------------------------------------------------------------------------------------------------------------------
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
'volume.size', 'desc': {'volume_type': 'e2ae0413-f9c8-437a-bf2b-8c461d00d2f7', 'id': '721b91bf-1140-4d2b-b42e-ace5b510e902', 
'volume.size', 'desc': {'volume_type': 'e2ae0413-f9c8-437a-bf2b-8c461d00d2f7', 'id': '721b91bf-1140-4d2b-b42e-ace5b510e902', 
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
 'volume.size', 'desc': {'volume_type': '__DEFAULT__', 'id': '056b6315-aac9-49d3-a769-64709cf9ec8d', 'project_id': '03a31c43e
-----------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
                                                                                                                           
---------------------------------------------------------------------------------------------------------------------------
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
de44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220'
---------------------------------------------------------------------------------------------------------------------------
-----------------------------------------------------------------------------------------------------------------------------------------------------+
                                                                                                                                                     |
-----------------------------------------------------------------------------------------------------------------------------------------------------+
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.0000'}]    |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '0.0000'}] |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]    |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]    |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]    |
, 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '1.5000'}]                         |
-----------------------------------------------------------------------------------------------------------------------------------------------------+

[cent@dlp ~(keystone)]$
openstack volume create --size 30 disk02

[cent@dlp ~(keystone)]$
openstack volume list

+--------------------------------------+--------+-----------+------+-------------+
| ID                                   | Name   | Status    | Size | Attached to |
+--------------------------------------+--------+-----------+------+-------------+
| 6ea0e237-8c64-42b3-bd4e-90a27ef4e6a2 | disk02 | available |   30 |             |
| 056b6315-aac9-49d3-a769-64709cf9ec8d | disk01 | available |   10 |             |
+--------------------------------------+--------+-----------+------+-------------+

# after a certain period of time, costs are charged
# 1.5 x 30 x 0.9 = 40.5

[cent@dlp ~(keystone)]$
openstack rating summary get

+----------------------------------+---------------+------+---------------------+---------------------+
| Tenant ID                        | Resource Type | Rate | Begin Time          | End Time            |
+----------------------------------+---------------+------+---------------------+---------------------+
| 03a31c43ede44dcbaacb05c870920e81 | ALL           | 57.0 | 2024-08-01T00:00:00 | 2024-09-01T00:00:00 |
+----------------------------------+---------------+------+---------------------+---------------------+

[cent@dlp ~(keystone)]$
openstack rating dataframes get

+---------------------+---------------------+----------------------------------+-------------------------------
| Begin               | End                 | Project ID                       | Resources                     
+---------------------+---------------------+----------------------------------+-------------------------------
| 2024-08-07T09:40:00 | 2024-08-07T09:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 'service': 
| 2024-08-07T10:00:00 | 2024-08-07T10:10:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 'service': 
| 2024-08-07T10:10:00 | 2024-08-07T10:20:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.0', 'service': 
| 2024-08-07T10:30:00 | 2024-08-07T10:40:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 'service': 
| 2024-08-07T10:40:00 | 2024-08-07T10:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 'service': 
| 2024-08-07T10:50:00 | 2024-08-07T11:00:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '0.5', 'service': 
| 2024-08-07T11:00:00 | 2024-08-07T11:10:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '15.0', 'service':
| 2024-08-07T11:40:00 | 2024-08-07T11:50:00 | 03a31c43ede44dcbaacb05c870920e81 | [{'rating': '40.5', 'service':
+---------------------+---------------------+----------------------------------+-------------------------------
-----------------------------------------------------------------------------------------------------------------------------
                                                                                                                             
-----------------------------------------------------------------------------------------------------------------------------
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
'volume.size', 'desc': {'volume_type': 'e2ae0413-f9c8-437a-bf2b-8c461d00d2f7', 'id': '721b91bf-1140-4d2b-b42e-ace5b510e902', 
'volume.size', 'desc': {'volume_type': 'e2ae0413-f9c8-437a-bf2b-8c461d00d2f7', 'id': '721b91bf-1140-4d2b-b42e-ace5b510e902', 
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
'instance', 'desc': {'flavor_name': 'm1.small', 'flavor_id': '2', 'vcpus': '', 'id': '1d0c2140-098d-4a1a-a705-82d7755d7c84', 
 'volume.size', 'desc': {'volume_type': '__DEFAULT__', 'id': '056b6315-aac9-49d3-a769-64709cf9ec8d', 'project_id': '03a31c43e
 'volume.size', 'desc': {'volume_type': '__DEFAULT__', 'id': '6ea0e237-8c64-42b3-bd4e-90a27ef4e6a2', 'project_id': '03a31c43e
-----------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------
                                                                                                                           
---------------------------------------------------------------------------------------------------------------------------
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
'project_id': '03a31c43ede44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 
de44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220'
de44dcbaacb05c870920e81', 'user_id': '8a9b46168b42480f889ad4fad3ca6ee4', 'week_of_the_year': '31', 'day_of_the_year': '220'
---------------------------------------------------------------------------------------------------------------------------
------------------------------------------------------------------------------------------------------------------------------------------------------+
                                                                                                                                                      |
------------------------------------------------------------------------------------------------------------------------------------------------------+
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.0000'}]     |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '0.0000'}]  |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '0.0000'}]  |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]     |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]     |
'day_of_the_year': '220', 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1', 'rate_value': '0.5000'}]     |
, 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '1E+1', 'rate_value': '1.5000'}]                          |
, 'month': '8', 'year': '2024', 'tenant_id': '03a31c43ede44dcbaacb05c870920e81'}, 'volume': '3E+1', 'rate_value': '1.3500'}]                          |
------------------------------------------------------------------------------------------------------------------------------------------------------+
Matched Content