diff options
Diffstat (limited to 'influx.py')
-rw-r--r-- | influx.py | 19 |
1 files changed, 11 insertions, 8 deletions
@@ -3,6 +3,7 @@ import json import time +import os from influxdb import InfluxDBClient @@ -57,7 +58,7 @@ class Influx: data.append("{m},vhost={vh} registered={v}i {ts}".format(m=name, vh= vhost, v=self._metrics.get_registered(vhost),ts=cur_ts)) data.append("{m},vhost={vh} muc={v}i {ts}".format(m=name, vh= vhost, v=self._metrics.get_muc(vhost), ts=cur_ts)) - # vhost statistics on their repsective node + # vhost statistics on their respective node for node in self._metrics.get_nodes(): cur_ts = self._timestamp() for k, v in self._metrics.get_online_by_status(node=node, vhost=vhost).items(): @@ -73,24 +74,26 @@ class Influx: data.append(self._parse("ejabberd_online_client_ipversion", k, v, cur_ts, {"vhost": vhost, "node": node, "ipversion": k, "client": cl})) # write output to database - self.client.write_points(data, database='custom', time_precision='ms', batch_size=10000, protocol='line') + self.client.write_points(data, time_precision='ms', batch_size=10000, protocol='line') + if __name__ == "__main__": - with open("config.json", "r", encoding="utf-8") as f: - login = json.load(f) + # load config + path = os.path.dirname(__file__) + with open("/".join([path, "config.json"]), "r", encoding="utf-8") as f: + config = json.load(f) # init global handler - metrics = EjabberdMetrics("http://localhost:4560", login) - client = InfluxDBClient(host='localhost', port=8086, database='custom') + metrics = EjabberdMetrics("http://localhost:4560", config['login']) + client = InfluxDBClient(host='localhost', port=8086, database=config['database'], retries=5) # create database only once - client.create_database('custom') + client.create_database(config['database']) # init influx class influx = Influx(metrics, client) while True: - # TODO this will fail when the connection drops try except maybe? metrics.update() influx.writeMetrics() |