From 89dfb91dd4490cf3753255f4a6c3b2361c8bf8bc Mon Sep 17 00:00:00 2001 From: Ning Yao Date: Sat, 29 Feb 2020 01:56:07 +0800 Subject: [PATCH] Fix empty metadata exception in Prometheus collector Metadata defined in metrics.yml may be non-existent in data['metric'] from Prometheus results. Deal with the exception similarly to the Gnocchi collector. Change-Id: I02ee50793f3c46050250ca1c4094dd4ef0736ca6 Signed-off-by: Ning Yao Story: 2008123 Task: 40845 --- cloudkitty/collector/prometheus.py | 2 +- .../prometheus-collector-empty-meta-12402d8f0254c011.yaml | 5 +++++ 2 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 releasenotes/notes/prometheus-collector-empty-meta-12402d8f0254c011.yaml diff --git a/cloudkitty/collector/prometheus.py b/cloudkitty/collector/prometheus.py index e99ff40f..ba0f7d77 100644 --- a/cloudkitty/collector/prometheus.py +++ b/cloudkitty/collector/prometheus.py @@ -130,7 +130,7 @@ class PrometheusCollector(collector.BaseCollector): """ metadata = {} for meta in self.conf[metric_name]['metadata']: - metadata[meta] = data['metric'][meta] + metadata[meta] = data['metric'].get(meta, '') groupby = {scope_key: scope_id} for meta in self.conf[metric_name]['groupby']: diff --git a/releasenotes/notes/prometheus-collector-empty-meta-12402d8f0254c011.yaml b/releasenotes/notes/prometheus-collector-empty-meta-12402d8f0254c011.yaml new file mode 100644 index 00000000..fb415f53 --- /dev/null +++ b/releasenotes/notes/prometheus-collector-empty-meta-12402d8f0254c011.yaml @@ -0,0 +1,5 @@ +--- +issues: + - | + Fixes exceptions in Prometheus collector when metadata defined in + ``metrics.yml`` is not present on metrics retrieved from Prometheus.