diff --git a/cloudkitty/collector/monasca.py b/cloudkitty/collector/monasca.py index 41fbca97..694e997f 100644 --- a/cloudkitty/collector/monasca.py +++ b/cloudkitty/collector/monasca.py @@ -179,7 +179,11 @@ class MonascaCollector(collector.BaseCollector): extra_args = self.conf[metric_name]['extra_args'] kwargs = {} if extra_args['forced_project_id']: - kwargs['tenant_id'] = 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'] return self._conn.metrics.list_statistics( name=metric_name, diff --git a/doc/source/admin/configuration/collector.rst b/doc/source/admin/configuration/collector.rst index fe4bc3ba..a777c739 100644 --- a/doc/source/admin/configuration/collector.rst +++ b/doc/source/admin/configuration/collector.rst @@ -274,7 +274,9 @@ Monasca fetched from a specific tenant instead of the one cloudkitty is identified 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 - 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 ~~~~~~~~~~ diff --git a/releasenotes/notes/support-cross-tenant-metric-submission-monasca-collector-508b495bc88910ca.yaml b/releasenotes/notes/support-cross-tenant-metric-submission-monasca-collector-508b495bc88910ca.yaml new file mode 100644 index 00000000..f0778401 --- /dev/null +++ b/releasenotes/notes/support-cross-tenant-metric-submission-monasca-collector-508b495bc88910ca.yaml @@ -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``.