Following the footsteps of [1], depending on the environment where CloudKitty is applied, when using Gnocchi fetcher, if the environment is considerably big, CloudKitty tends to take too much time loading the scope IDs from the Gnocchi API. To reduce that process time, we adopted a different approach to discover the scope IDs registered in Gnocchi. This patch proposes a change in that process, building on top of [1] to load the chunk of Gnocchi resources and execute the retrieval of the scope ID and selecting only the unique ones right away. Then, in the worst case scenario, we would only have 1000 resources being loaded to memory. Furthermore, we use the ``search`` API method from Gnocchi to filter resources that are from scopes that are not in the set already loaded. Therefore, we do not need to go over all of the resources in Gnocchi. We will only list all of the resources that do not have the scope IDs already loaded. This reduced the processing time to load scope IDs from about 5 minutes to 40 seconds in an environment with 500 scopes and ~50,000 resources. [1] https://review.opendev.org/c/openstack/cloudkitty/+/864269 Change-Id: I9fa8934c5c857bd0069bb8038423e0126739a310
Team and repository tags
CloudKitty
Rating as a Service component
Goal
CloudKitty aims at filling the gap between metrics collection systems like ceilometer and a billing system.
Every metrics are collected, aggregated and processed through different rating modules. You can then query CloudKitty's storage to retrieve processed data and easily generate reports.
Most parts of CloudKitty are modular so you can easily extend the base code to address your particular use case.
You can find more information on its architecture in the documentation, architecture section.
Status
CloudKitty has been successfully deployed in production on different OpenStack systems.
You can find the latest documentation on readthedocs.
Contributing
We are welcoming new contributors, if you've got new ideas, suggestions or want to contribute contact us.
You can reach us thought IRC (#cloudkitty @ oftc.net), or on the official OpenStack mailing list openstack-discuss@lists.openstack.org.
A storyboard is available if you need to report bugs.
Additional components
We're providing an OpenStack dashboard (Horizon) integration, you can find the files in the cloudkitty-dashboard repository.
A CLI is available too in the python-cloudkittyclient repository.
Trying it
CloudKitty can be deployed with devstack, more information can be found in the devstack section of the documentation.
Deploying it in production
CloudKitty can be deployed in production on OpenStack Kilo environments, for more information check the installation section of the documentation. Due to oslo libraries new namespace backward compatibility is not possible. If you want to install it on an older system, use a virtualenv.
Getting release notes
Release notes can be found in the release notes section of the documentation.
