Cloudkitty monasca fetcher implementation¶
https://storyboard.openstack.org/#!/story/2006675
Monasca is already supported in cloudkitty through its collector. However, cloudkitty lacks a dedicated fetcher for monasca, relying instead on other fetchers.
Problem Description¶
No scope discovery is available when using the monasca collector. This forces users to use the keystone fetcher and assign the ‘rating’ role to every project where cloudkitty is needed. Another less than ideal solution is to use the ‘source’ fetcher, but that requires to specify every scope in the configuration file.
Proposed Change¶
Implementing a new fetcher using monasca to discover scopes:
The fetcher will connect to monasca and retrieve a list of scopes (dimensions values in monasca) given a specified dimension name. This is achieved through monasca’s python client and its
metrics.list_dimension_values()
method.The monasca endpoint will be retrieved from keystone in similar fashion to the monasca collector, as it is needed for the monasca client initialization. This is a good opportunity to mutualize the monasca’s client bootstraping code in a common file.
Configuration options include:
dimension_name
: the monasca dimension from which the scope_ids should be retrieved, defaults toproject_id
.monasca_tenant_id
: The monasca tenant id, has no default value.monasca_service_name
: Name of the monasca service, defaults tomonasca
interface
: Endpoint type, defaults tointernal
Alternatives¶
None
Data model impact¶
None
REST API impact¶
None
Security impact¶
The fetcher will use the same authentication mechanism as the current monasca collector (keystone for authentication and python-monascaclient for monasca interactions), and won’t introduce any new dependency. Thus, the new fetcher shouldn’t have any security impact.
Notifications Impact¶
None
Other end user impact¶
None
Performance Impact¶
None
Other deployer impact¶
None
Developer impact¶
None
Implementation¶
Assignee(s)¶
- Primary assignee:
qanglade/qanglade
- Other contributors:
lukapeschke/peschk_l
Work Items¶
Implement a cloudkitty monasca scope fetcher using python-monascaclient.
Dependencies¶
No new dependency is needed.
Testing¶
Regular unit tests will be included.
Documentation Impact¶
Documentation of the new fetcher will be added, mostly covering configuration of the fetcher.
References¶
None.