[autotest] Catch exceptions when setting up ts_mon

If the local chromite is broken or has an exception while setting up
monitoring, ignore it and log a warning.

BUG=b:31811227
TEST=None

Change-Id: I83bbb91d99732ad1faa6363142b663cf9ddb2d08
Reviewed-on: https://chromium-review.googlesource.com/391232
Commit-Ready: Aviv Keshet <akeshet@chromium.org>
Tested-by: Paul Hobbs <phobbs@google.com>
Reviewed-by: Paul Hobbs <phobbs@google.com>
diff --git a/server/site_utils.py b/server/site_utils.py
index 496a22c..fb44dd5 100644
--- a/server/site_utils.py
+++ b/server/site_utils.py
@@ -755,17 +755,25 @@
     """
     if ts_mon_config:
         context = ts_mon_config.SetupTsMonGlobalState(*args, **kwargs)
-        if hasattr(context, '__exit__'):
-            return context
-        else:
-            return TrivialContextManager()
+        try:
+            context = ts_mon_config.SetupTsMonGlobalState(*args, **kwargs)
+            if hasattr(context, '__exit__'):
+                return context
+        except Exception as e:
+            logging.warning('Caught an exception trying to setup ts_mon, '
+                            'monitoring is disabled: %s', e, exc_info=True)
+        return TrivialContextManager()
     else:
         return TrivialContextManager()
 
 
 @contextlib.contextmanager
-def TrivialContextManager():
-    """Context manager that does nothing."""
+def TrivialContextManager(*args, **kwargs):
+    """Context manager that does nothing.
+
+    @param *args: Ignored args
+    @param **kwargs: Ignored kwargs.
+    """
     yield