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'}] |
------------------------------------------------------------------------------------------------------------------------------------------------------+
|
| Sponsored Link |
|
|