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
### 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.

View file

@ -1,3 +1,3 @@
id = 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.concurrent.TimeUnit;
import static java.lang.Thread.sleep;
class InfluxClient {
private final static Logger log = LoggerFactory.getLogger(InfluxClient.class);
@ -57,6 +59,10 @@ class InfluxClient {
return;
}
boolean connected = false;
int errors = 0;
do {
try {
log.debug("Connecting to InfluxDB - " + url);
influxDB = InfluxDBFactory.connect(url, username, password);
@ -67,11 +73,20 @@ class InfluxClient {
influxDB.enableBatch(options);
batchPoints = BatchPoints.database(database).precision(TimeUnit.SECONDS).build();
connected = true;
} 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);
} else {
log.warn("login() error, retrying - " + e.getMessage());
}
}
} while(!connected);
}
synchronized void logoff() {

View file

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