From 4ccadd2f25cc747ecd27acc74839d5ab51589940 Mon Sep 17 00:00:00 2001
From: Quentin Duchemin <quentinduchemin@tuta.io>
Date: Wed, 3 Jun 2020 20:05:06 +0200
Subject: [PATCH] Better exception handling and informations on stdout

---
 etherpad/etherpad.py     |  7 ++++++-
 main.py                  | 22 +++++++++++++---------
 mattermost/mattermost.py |  4 ++--
 3 files changed, 21 insertions(+), 12 deletions(-)

diff --git a/etherpad/etherpad.py b/etherpad/etherpad.py
index eea7a6d..0b2fdb0 100644
--- a/etherpad/etherpad.py
+++ b/etherpad/etherpad.py
@@ -75,6 +75,7 @@ class EtherpadCollector(object):
                     'value': data['totalUsers']
                 }
             })
+            print("Etherpad : data collected for instance {}".format(instance['name']))
 
         return metrics
 
@@ -88,7 +89,11 @@ class EtherpadCollector(object):
         # Send request
         stats_plugin = requests.get(instance['url'] + "/stats.json")
         stats_native = requests.get(instance['url'] + "/stats")
-        if stats_plugin.status_code != 200 or stats_native.status_code != 200:
+        if stats_plugin.status_code != 200:
+            print("Unable to get stats.json : HTTP {}".format(stats_plugin.status_code))
+            return None
+        if stats_native.status_code != 200:
+            print("Unable to get stats : HTTP {}".format(stats_plugin.status_code))
             return None
         try:
             plugin = json.loads(stats_plugin.text)
diff --git a/main.py b/main.py
index 1180a70..fd00e00 100644
--- a/main.py
+++ b/main.py
@@ -47,15 +47,19 @@ def influxb_connect(config):
         verify = True
 
     # Connect to influx db
-    return InfluxDBClient(
-        host=o.hostname,
-        port=port,
-        username=config['user'],
-        password=config['password'],
-        database=config['database'],
-        ssl=ssl,
-        verify_ssl=verify
-    )
+    try:
+        return InfluxDBClient(
+            host=o.hostname,
+            port=port,
+            username=config['user'],
+            password=config['password'],
+            database=config['database'],
+            ssl=ssl,
+            verify_ssl=verify
+        )
+    except Exception as e:
+        print("Cannot connect to {} : {}".format(o.hostname, e))
+        print("If InfluxDB has just started, this is normal, please wait!")
 
 
 def main():
diff --git a/mattermost/mattermost.py b/mattermost/mattermost.py
index faaff8a..4366c7d 100644
--- a/mattermost/mattermost.py
+++ b/mattermost/mattermost.py
@@ -53,7 +53,7 @@ class MattermostCollector(object):
                 try:
                     mat_api.login()
                 except Exception as err:
-                    print("Cannot login to {} : {}".format(instance, err))
+                    print("Cannot login to {} : {}".format(instance['name'], err))
                     continue
                 self.instances.append(
                     {
@@ -157,7 +157,7 @@ class MattermostCollector(object):
                     'value': daily_data['daily_users_with_posts']['value']
                 }
             })
-
+            print("Mattermost : data collected for instance {}".format(instance['config']['name']))
         return metrics
 
     @classmethod
-- 
GitLab