Resolved 1698 - MON fails to collect metrics from an OpenStack VIM with metrics suppo... 67/11267/3 v9.0 v9.1.5
authorAtul Agarwal <Atul.Agarwal@Altran.com>
Mon, 18 Oct 2021 06:44:06 +0000 (06:44 +0000)
committerAtul Agarwal <Atul.Agarwal@Altran.com>
Mon, 18 Oct 2021 18:14:31 +0000 (18:14 +0000)
Change-Id: Id1be735511cc16fc1a44629acbb54b6e9c0efd0f
Signed-off-by: Atul Agarwal <Atul.Agarwal@Altran.com>
osm_mon/collector/service.py

index 5eb65a9..b99a5d8 100644 (file)
@@ -27,6 +27,7 @@ import logging
 from typing import List
 import concurrent.futures
 import time
+import keystoneauth1.exceptions
 
 from osm_mon.collector.infra_collectors.onos import OnosInfraCollector
 from osm_mon.collector.infra_collectors.openstack import OpenstackInfraCollector
@@ -176,10 +177,14 @@ class CollectorService:
                 # Wait for future calls to complete till process_execution_timeout. Default is 50 seconds
                 for future in concurrent.futures.as_completed(futures, self.conf.get('collector',
                                                                                      'process_execution_timeout')):
-                    result = future.result(timeout=int(self.conf.get('collector',
-                                                                     'process_execution_timeout')))
-                    metrics.extend(result)
-                    log.debug('result = %s' % (result))
+                    try:
+                        result = future.result(timeout=int(self.conf.get('collector',
+                                                                         'process_execution_timeout')))
+                        metrics.extend(result)
+                        log.debug('result = %s' % (result))
+                    except keystoneauth1.exceptions.connection.ConnectionError as e:
+                        log.info("Keystone connection error during metric collection")
+                        log.debug("Keystone connection error exception %s" % (e))
             except concurrent.futures.TimeoutError as e:
                 # Some processes have not completed due to timeout error
                 log.info('Some processes have not finished due to TimeoutError exception')