- try:
- measures = self.client.metric.get_measures(openstack_metric_name,
- start=start_date,
- resource_id=resource_id,
- granularity=self.granularity)
- if len(measures):
- metric = VnfMetric(nsr_id, vnf_member_index, vdur['name'], metric_name, measures[-1][2])
- metrics.append(metric)
- except gnocchiclient.exceptions.NotFound as e:
- log.debug("No metric found: %s", e)
- pass
+ if metric_name in INTERFACE_METRICS:
+ total_measure = 0.0
+ interfaces = self.client.resource.search(resource_type='instance_network_interface',
+ query={'=': {'instance_id': resource_id}})
+ for interface in interfaces:
+ try:
+ measures = self.client.metric.get_measures(openstack_metric_name,
+ start=start_date,
+ resource_id=interface['id'],
+ granularity=self.granularity)
+ if len(measures):
+ total_measure += measures[-1][2]
+
+ except gnocchiclient.exceptions.NotFound as e:
+ log.debug("No metric %s found for interface %s: %s", openstack_metric_name,
+ interface['id'], e)
+ metric = VnfMetric(nsr_id, vnf_member_index, vdur['name'], metric_name,
+ total_measure)
+ metrics.append(metric)
+ else:
+ try:
+ measures = self.client.metric.get_measures(openstack_metric_name,
+ start=start_date,
+ resource_id=resource_id,
+ granularity=self.granularity)
+ if len(measures):
+ metric = VnfMetric(nsr_id, vnf_member_index, vdur['name'], metric_name,
+ measures[-1][2])
+ metrics.append(metric)
+ except gnocchiclient.exceptions.NotFound as e:
+ log.debug("No metric %s found for instance %s: %s", openstack_metric_name, resource_id,
+ e)
+