diff --git a/etherpad/etherpad.py b/etherpad/etherpad.py index 0b2fdb05b279117edb8f4e2d5d74a7676bf26cba..2297ed1ca4373b57b537b2adc83da01cac1d064a 100644 --- a/etherpad/etherpad.py +++ b/etherpad/etherpad.py @@ -42,7 +42,6 @@ class EtherpadCollector(object): for instance in self.instances: data = self._get_stats(instance) if data is None: - print('Unable to get stats from Etherpad instance : ' + instance['url']) continue # Create metrics metrics.append({ @@ -90,10 +89,10 @@ class EtherpadCollector(object): stats_plugin = requests.get(instance['url'] + "/stats.json") stats_native = requests.get(instance['url'] + "/stats") if stats_plugin.status_code != 200: - print("Unable to get stats.json : HTTP {}".format(stats_plugin.status_code)) + print("Unable to get stats.json from {} : HTTP {}".format(instance['name'], stats_plugin.status_code)) return None if stats_native.status_code != 200: - print("Unable to get stats : HTTP {}".format(stats_plugin.status_code)) + print("Unable to get stats from {} : HTTP {}".format(instance['name'], stats_plugin.status_code)) return None try: plugin = json.loads(stats_plugin.text) diff --git a/main.py b/main.py index fd00e001c1619fb45b37aa761844e4a78c4da190..c9ca30cb4e361e4e18e6eae4617615ee58f47107 100644 --- a/main.py +++ b/main.py @@ -7,6 +7,7 @@ import json import os import sys +import time from urllib.parse import urlparse from influxdb import InfluxDBClient from etherpad import EtherpadCollector @@ -60,6 +61,7 @@ def influxb_connect(config): except Exception as e: print("Cannot connect to {} : {}".format(o.hostname, e)) print("If InfluxDB has just started, this is normal, please wait!") + return None def main(): @@ -78,6 +80,10 @@ def main(): print('You need to add InfluxDB configuration on your config file.') sys.exit(1) influx_client = influxb_connect(config['influxdb']) + while influx_client is None: + print("InfluxDB not available, retrying in 5 seconds...") + time.sleep(5) + influx_client = influxb_connect(config['influxdb']) # Get Etherpad metrics and push to InfluxDB if 'etherpad' in config['modules']: