X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fplugins%2FOpenStack%2FGnocchi%2Fmetrics.py;h=d3d46d3e48440fcdb1a706da7490e863b37b77c0;hb=0e57d11ebb85637f38dd92a791abd6fe4889a565;hp=8e2ab4e612be52d0b79464f5576e22c285dcbb59;hpb=030c8c720baf9e472efdd703bff6f4fdf29aa035;p=osm%2FMON.git diff --git a/osm_mon/plugins/OpenStack/Gnocchi/metrics.py b/osm_mon/plugins/OpenStack/Gnocchi/metrics.py index 8e2ab4e..d3d46d3 100644 --- a/osm_mon/plugins/OpenStack/Gnocchi/metrics.py +++ b/osm_mon/plugins/OpenStack/Gnocchi/metrics.py @@ -36,14 +36,14 @@ log = logging.getLogger(__name__) METRIC_MAPPINGS = { "average_memory_utilization": "memory.percent", - "disk_read_ops": "disk.disk_ops", - "disk_write_ops": "disk.disk_ops", - "disk_read_bytes": "disk.disk_octets", - "disk_write_bytes": "disk.disk_octets", + "disk_read_ops": "disk.read.requests", + "disk_write_ops": "disk.write.requests", + "digsk_read_bytes": "disk.read.bytes", + "disk_write_bytes": "disk.write.bytes", "packets_dropped": "interface.if_dropped", "packets_received": "interface.if_packets", "packets_sent": "interface.if_packets", - "cpu_utilization": "cpu.percent", + "cpu_utilization": "cpu_util", } PERIOD_MS = { @@ -212,8 +212,8 @@ class Metrics(object): return None, None, False # Check/Normalize metric name - metric_name, norm_name = self.get_metric_name(values) - if norm_name is None: + norm_name, metric_name = self.get_metric_name(values) + if metric_name is None: log.warn("This metric is not supported by this plugin.") return None, resource_id, False @@ -312,9 +312,13 @@ class Metrics(object): resource = None try: + url = "{}/v1/metric?sort=name:asc".format(endpoint) result = self._common._perform_request( url, auth_token, req_type="get") - metrics = json.loads(result.text) + metrics = [] + metrics_partial = json.loads(result.text) + for metric in metrics_partial: + metrics.append(metric) if metrics is not None: # Format the list response @@ -412,24 +416,28 @@ class Metrics(object): # Create required lists for row in metric_list: # Only list OSM metrics - if row['name'] in METRIC_MAPPINGS.keys(): - metric = {"metric_name": row['name'], + name = None + if row['name'] in METRIC_MAPPINGS.values(): + for k,v in METRIC_MAPPINGS.iteritems(): + if row['name'] == v: + name = k + metric = {"metric_name": name, "metric_uuid": row['id'], "metric_unit": row['unit'], "resource_uuid": row['resource_id']} resp_list.append(str(metric)) # Generate metric_name specific list - if metric_name is not None: - if row['name'] == metric_name: - metric = {"metric_name": row['name'], + if metric_name is not None and name is not None: + if metric_name in METRIC_MAPPINGS.keys() and row['name'] == METRIC_MAPPINGS[metric_name]: + metric = {"metric_name": metric_name, "metric_uuid": row['id'], "metric_unit": row['unit'], "resource_uuid": row['resource_id']} name_list.append(str(metric)) # Generate resource specific list - if resource is not None: + if resource is not None and name is not None: if row['resource_id'] == resource: - metric = {"metric_name": row['name'], + metric = {"metric_name": name, "metric_uuid": row['id'], "metric_unit": row['unit'], "resource_uuid": row['resource_id']} @@ -437,10 +445,12 @@ class Metrics(object): # Join required lists if metric_name is not None and resource is not None: - return list(set(res_list).intersection(name_list)) + intersection_set = set(res_list).intersection(name_list) + intersection = list(intersection_set) + return intersection elif metric_name is not None: return name_list elif resource is not None: - return list(set(res_list).intersection(resp_list)) + return res_list else: return resp_list