Rating service for OpenStack
Go to file
Pierre Riteau a536880431 Raise CollectError when Prometheus query returns an error
As described in the Prometheus HTTP API documentation [1], the JSON
response to a Prometheus query includes a status field, which was
ignored by CloudKitty. If it is set to "error", raise a CollectError
exception to log the error type and details.

For example, a query with a metric name containing a dot will produce
the following error:

    cloudkitty.collector.exceptions.CollectError: bad_data: invalid parameter "query": 1:25: parse error: unexpected character: '.'

[1] https://prometheus.io/docs/prometheus/latest/querying/api/

Change-Id: I0c2892a39ec50163de251b38d34493db6a22c858
Story: 2009869
Task: 44564
2022-02-22 12:13:37 +01:00
cloudkitty Raise CollectError when Prometheus query returns an error 2022-02-22 12:13:37 +01:00
contrib Update hacking for Python3 2020-08-18 22:27:09 -03:00
devstack Merge "Replace deprecated devstack authtoken function" 2019-09-24 14:17:50 +00:00
doc Fix description of orchestrator parameters 2022-02-18 12:24:51 +01:00
etc Set force_granularity: 300 in metrics.yml 2021-09-06 16:22:19 +02:00
releasenotes Raise CollectError when Prometheus query returns an error 2022-02-22 12:13:37 +01:00
.gitignore Switch to stestr 2018-07-18 08:00:06 +07:00
.gitreview OpenDev Migration Patch 2019-04-19 19:29:58 +00:00
.stestr.conf Switch to stestr 2018-07-18 08:00:06 +07:00
.zuul.yaml Add Python3 yoga unit tests 2021-09-17 13:35:26 +00:00
CONTRIBUTING.rst [ussuri][goal] Update contributor documentation 2021-05-18 10:03:01 +02:00
HACKING.rst Remove six 2021-01-12 09:02:22 +08:00
LICENSE Set copyright/license information in .py files 2014-06-07 09:14:06 +02:00
lower-constraints.txt Fix tests cases broken by flask >=2.0.1 2021-06-07 18:19:32 +02:00
README.rst docs: Update Freenode to OFTC 2021-05-31 10:55:43 +02:00
requirements.txt Fix tests cases broken by flask >=2.0.1 2021-06-07 18:19:32 +02:00
rtd-requirements.txt Remove six 2021-01-12 09:02:22 +08:00
setup.cfg Updating python testing classifier as per Yoga testing runtime 2021-12-14 02:47:24 +00:00
setup.py [ussuri][goal] Cleanup drop python 2.7 support 2020-02-24 20:16:56 +01:00
test-requirements.txt Add doc/requirements 2021-01-05 14:00:00 +01:00
tox.ini Merge "Use py3 as the default runtime for tox" 2021-08-18 21:59:58 +00:00

Team and repository tags

image

CloudKitty

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.