Support cross-tenant metrics in monasca collector

This allows metrics to be fetched from the current scope in the monasca
collector, in case cross-metric tenant submission is enabled: https://github.com/openstack/monasca-agent/blob/master/docs/MonascaMetrics.md#cross-tenant-metric-submission.

Story: 2006696
Task: 36999
Change-Id: Icd32a2d0be249efea0867d8a2966c156084e75bb
This commit is contained in:
Luka Peschke 2019-10-09 17:23:39 +02:00
parent 33edfb483d
commit f00a0458a1
3 changed files with 14 additions and 2 deletions

View File

@ -179,6 +179,10 @@ class MonascaCollector(collector.BaseCollector):
extra_args = self.conf[metric_name]['extra_args'] extra_args = self.conf[metric_name]['extra_args']
kwargs = {} kwargs = {}
if extra_args['forced_project_id']: if extra_args['forced_project_id']:
if extra_args['forced_project_id'] == 'SCOPE_ID' and project_id:
kwargs['tenant_id'] = project_id
dimensions.pop(CONF.collect.scope_key, None)
else:
kwargs['tenant_id'] = extra_args['forced_project_id'] kwargs['tenant_id'] = extra_args['forced_project_id']
return self._conn.metrics.list_statistics( return self._conn.metrics.list_statistics(

View File

@ -274,7 +274,9 @@ Monasca
fetched from a specific tenant instead of the one cloudkitty is identified fetched from a specific tenant instead of the one cloudkitty is identified
in. For example, if cloudkitty is identified in the ``service`` project, but in. For example, if cloudkitty is identified in the ``service`` project, but
needs to fetch a metric from the ``admin`` project, its ID should be needs to fetch a metric from the ``admin`` project, its ID should be
specified through this option. specified through this option. If this option is set to ``SCOPE_ID``,
the metric will be fetched from the current project (this assumes that
scopes are configured to be projects/tenants).
Prometheus Prometheus
~~~~~~~~~~ ~~~~~~~~~~

View File

@ -0,0 +1,6 @@
---
features:
- |
Cross-tenant metric submission is now supported in the monasca collector.
In order to a fetch metric from the scope that is currently being processed,
the ``forced_project_id`` option must be set to ``SCOPE_ID``.