X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=osm_mon%2Fplugins%2FOpenStack%2FGnocchi%2Fmetrics.py;h=b41b5c039d3b3ecdffd853a9c4d6efd9b755ea88;hb=75512477988ae5e287433c6c859c61de1bc82318;hp=1dc9496cf04d50c8775d3925a680abdb1cc722b9;hpb=181cce8e28a9b6c5c6fa1fa8aa515de3b187a2e1;p=osm%2FMON.git diff --git a/osm_mon/plugins/OpenStack/Gnocchi/metrics.py b/osm_mon/plugins/OpenStack/Gnocchi/metrics.py index 1dc9496..b41b5c0 100644 --- a/osm_mon/plugins/OpenStack/Gnocchi/metrics.py +++ b/osm_mon/plugins/OpenStack/Gnocchi/metrics.py @@ -24,21 +24,20 @@ import datetime import json import logging - import time import six +import yaml from osm_mon.core.message_bus.producer import KafkaProducer +from osm_mon.core.settings import Config from osm_mon.plugins.OpenStack.common import Common - from osm_mon.plugins.OpenStack.response import OpenStack_Response -from osm_mon.plugins.OpenStack.settings import Config log = logging.getLogger(__name__) METRIC_MAPPINGS = { - "average_memory_utilization": "memory.percent", + "average_memory_utilization": "memory.usage", "disk_read_ops": "disk.read.requests", "disk_write_ops": "disk.write.requests", "disk_read_bytes": "disk.read.bytes", @@ -78,7 +77,10 @@ class Metrics(object): def metric_calls(self, message): """Consume info from the message bus to manage metric requests.""" - values = json.loads(message.value) + try: + values = json.loads(message.value) + except ValueError: + values = yaml.safe_load(message.value) log.info("OpenStack metric action required.") auth_token = Common.get_auth_token(values['vim_uuid']) @@ -111,9 +113,12 @@ class Metrics(object): # Generate and send a response message try: + + metric_id = self.get_metric_id(endpoint, auth_token, METRIC_MAPPINGS[values['metric_name']], + values['resource_uuid']) resp_message = self._response.generate_response( 'read_metric_data_response', - m_id=values['metric_uuid'], + m_id=metric_id, m_name=values['metric_name'], r_id=values['resource_uuid'], cor_id=values['correlation_id'], @@ -127,7 +132,8 @@ class Metrics(object): elif message.key == "delete_metric_request": # delete the specified metric in the request - metric_id = values['metric_uuid'] + metric_id = self.get_metric_id(endpoint, auth_token, METRIC_MAPPINGS[values['metric_name']], + values['resource_uuid']) status = self.delete_metric( endpoint, auth_token, metric_id) @@ -348,7 +354,6 @@ class Metrics(object): def get_metric_id(self, endpoint, auth_token, metric_name, resource_id): """Check if the desired metric already exists for the resource.""" url = "{}/v1/resource/generic/%s".format(endpoint) % resource_id - try: # Try return the metric id if it exists result = Common.perform_request( @@ -374,8 +379,9 @@ class Metrics(object): timestamps = [] data = [] try: + #get metric_id + metric_id = self.get_metric_id(endpoint, auth_token, METRIC_MAPPINGS[values['metric_name']], values['resource_uuid']) # Try and collect measures - metric_id = values['metric_uuid'] collection_unit = values['collection_unit'].upper() collection_period = values['collection_period']