diff --git a/osm_mon/collector/vnf_collectors/openstack.py b/osm_mon/collector/vnf_collectors/openstack.py
index bd2a617..df0424b 100644
--- a/osm_mon/collector/vnf_collectors/openstack.py
+++ b/osm_mon/collector/vnf_collectors/openstack.py
@@ -232,17 +232,36 @@
         try:
             aggregation = METRIC_AGGREGATORS.get(openstack_metric_name)
 
-            measures = self.client.metric.get_measures(openstack_metric_name,
-                                                       aggregation=aggregation,
-                                                       start=time.time() - 1200,
-                                                       resource_id=resource_id)
-            # measures[-1][0] is the time of the reporting interval
-            # measures[-1][1] is the durcation of the reporting interval
-            # measures[-1][2] is the value of the metric
-            if measures:
-                value = measures[-1][2]
+            try:
+                measures = self.client.metric.get_measures(openstack_metric_name,
+                                                           aggregation=aggregation,
+                                                           start=time.time() - 1200,
+                                                           resource_id=resource_id)
+                if measures:
+                    value = measures[-1][2]
+            except gnocchiclient.exceptions.NotFound as e:
+                # CPU metric in previous Openstack versions do not support rate:mean aggregation method
+                if openstack_metric_name == "cpu":
+                    log.debug("No metric %s found for instance %s: %s", openstack_metric_name, resource_id, e)
+                    log.debug("Retrying to get metric %s for instance %s without aggregation",
+                              openstack_metric_name, resource_id)
+                    measures = self.client.metric.get_measures(openstack_metric_name,
+                                                               resource_id=resource_id,
+                                                               limit=1)
+                else:
+                    raise e
+                # measures[-1] is the last measure
+                # measures[-2] is the previous measure
+                # measures[x][2] is the value of the metric
+                if measures and len(measures) >= 2:
+                    value = measures[-1][2] - measures[-2][2]
+            if value:
+                # measures[-1][0] is the time of the reporting interval
+                # measures[-1][1] is the duration of the reporting interval
                 if aggregation:
                     # If this is an aggregate, we need to divide the total over the reported time period.
+                    # Even if the aggregation method is not supported by Openstack, the code will execute it
+                    # because aggregation is specified in METRIC_AGGREGATORS
                     value = value / measures[-1][1]
                 if openstack_metric_name in METRIC_MULTIPLIERS:
                     value = value * METRIC_MULTIPLIERS[openstack_metric_name]
