X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=osm_mon%2Fcollector%2Fvnf_collectors%2Fjuju.py;h=82ee98fc33e073050a115b49e7c73f5c35797afa;hb=refs%2Fchanges%2F49%2F8349%2F2;hp=8be9e286574d75d70a422efa0b204ee4f877f9bf;hpb=94a96efdb03e39d133790197bd7b73747105f9d8;p=osm%2FMON.git diff --git a/osm_mon/collector/vnf_collectors/juju.py b/osm_mon/collector/vnf_collectors/juju.py index 8be9e28..82ee98f 100644 --- a/osm_mon/collector/vnf_collectors/juju.py +++ b/osm_mon/collector/vnf_collectors/juju.py @@ -40,8 +40,10 @@ class VCACollector(BaseCollector): super().__init__(config) self.common_db = CommonDbClient(config) self.loop = asyncio.get_event_loop() - self.n2vc = N2VC(server=config.get('vca', 'host'), user=config.get('vca', 'user'), - secret=config.get('vca', 'secret')) + self.n2vc = N2VC(server=config.get('vca', 'host'), + user=config.get('vca', 'user'), + secret=config.get('vca', 'secret'), + ca_cert=config.get('vca', 'cacert')) def collect(self, vnfr: dict) -> List[Metric]: nsr_id = vnfr['nsr-id-ref'] @@ -51,7 +53,10 @@ class VCACollector(BaseCollector): # Populate extra tags for metrics tags = {} tags['ns_name'] = self.common_db.get_nsr(nsr_id)['name'] - tags['project_id'] = vnfr['_admin']['projects_read'][0] + if vnfr['_admin']['projects_read']: + tags['project_id'] = vnfr['_admin']['projects_read'][0] + else: + tags['project_id'] = None metrics = [] for vdur in vnfr['vdur']: @@ -75,7 +80,7 @@ class VCACollector(BaseCollector): for measure in measure_list: log.debug("Measure: %s", measure) metric = VnfMetric(nsr_id, vnf_member_index, vdur['name'], measure['key'], - float(measure['value'], tags)) + float(measure['value']), tags) metrics.append(metric) if 'vnf-configuration' in vnfd and 'metrics' in vnfd['vnf-configuration']: try: @@ -85,11 +90,19 @@ class VCACollector(BaseCollector): return metrics measures = self.loop.run_until_complete(self.n2vc.GetMetrics(vca_deployment_info['model'], vca_deployment_info['application'])) + # Search for Mgmt VDU name, needed to query Prometheus based on alarm tags + # TODO: check a better way to look for Mgmt VDU + for vdur in vnfr['vdur']: + for interface in vdur['interfaces']: + if 'mgmt-vnf' in interface: + vdu_name = vdur['name'] + break log.debug('Measures: %s', measures) for measure_list in measures.values(): for measure in measure_list: log.debug("Measure: %s", measure) - metric = VnfMetric(nsr_id, vnf_member_index, '', measure['key'], float(measure['value'], tags)) + metric = VnfMetric(nsr_id, vnf_member_index, vdu_name, + measure['key'], float(measure['value']), tags) metrics.append(metric) return metrics