Retry login to InfluxDB.

Bumped version.
This commit is contained in:
Mark Nellemann 2020-12-23 13:02:48 +01:00
parent 13a34b0412
commit f4e9e9ab69
4 changed files with 39 additions and 17 deletions

View file

@ -51,7 +51,16 @@ Below are screenshots of the provided Grafana dashboards (found in the **doc/**
## Notes ## Notes
### InfluxDB ### Start InfluxDB and Grafana at boot on RedHat 7+
systemctl enable influxdb
systemctl start influxdb
systemctl enable grafana-server
systemctl start grafana-server
### InfluxDB Retention Policy
Per default the *hmci* influx database has no retention policy, so data will be kept forever. It is recommended to set a retention policy, which is shown below. Per default the *hmci* influx database has no retention policy, so data will be kept forever. It is recommended to set a retention policy, which is shown below.

View file

@ -1,3 +1,3 @@
id = hmci id = hmci
group = biz.nellemann.hmci group = biz.nellemann.hmci
version = 0.2.7 version = 0.2.8

View file

@ -30,6 +30,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import static java.lang.Thread.sleep;
class InfluxClient { class InfluxClient {
private final static Logger log = LoggerFactory.getLogger(InfluxClient.class); private final static Logger log = LoggerFactory.getLogger(InfluxClient.class);
@ -57,6 +59,10 @@ class InfluxClient {
return; return;
} }
boolean connected = false;
int errors = 0;
do {
try { try {
log.debug("Connecting to InfluxDB - " + url); log.debug("Connecting to InfluxDB - " + url);
influxDB = InfluxDBFactory.connect(url, username, password); influxDB = InfluxDBFactory.connect(url, username, password);
@ -67,11 +73,20 @@ class InfluxClient {
influxDB.enableBatch(options); influxDB.enableBatch(options);
batchPoints = BatchPoints.database(database).precision(TimeUnit.SECONDS).build(); batchPoints = BatchPoints.database(database).precision(TimeUnit.SECONDS).build();
connected = true;
} catch(Exception e) { } catch(Exception e) {
log.error("login() error - " + e.getMessage()); sleep(15*1000);
if(errors++ > 3) {
log.error("login() error, giving up - " + e.getMessage());
throw new Exception(e); throw new Exception(e);
} else {
log.warn("login() error, retrying - " + e.getMessage());
} }
} }
} while(!connected);
}
synchronized void logoff() { synchronized void logoff() {

View file

@ -17,7 +17,6 @@ package biz.nellemann.hmci;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicBoolean;
@ -38,11 +37,10 @@ class Insights {
Insights(Configuration configuration) { Insights(Configuration configuration) {
this.configuration = configuration; this.configuration = configuration;
try { try {
influxClient = new InfluxClient(configuration.influx); influxClient = new InfluxClient(configuration.influx);
influxClient.login(); influxClient.login();
} catch(Exception e) { } catch (Exception e) {
System.exit(1); System.exit(1);
} }