[warehouse]feature:make tdengine optional, not required (#62)
This commit is contained in:
@@ -61,11 +61,11 @@ public class TdEngineDataStorage implements DisposableBean {
|
|||||||
log.error("init error, please config Warehouse TdEngine props in application.yml");
|
log.error("init error, please config Warehouse TdEngine props in application.yml");
|
||||||
throw new IllegalArgumentException("please config Warehouse TdEngine props");
|
throw new IllegalArgumentException("please config Warehouse TdEngine props");
|
||||||
}
|
}
|
||||||
initTdEngineDatasource(properties.getStore().getTdEngine());
|
boolean success = initTdEngineDatasource(properties.getStore().getTdEngine());
|
||||||
startStorageData();
|
startStorageData(success);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void initTdEngineDatasource(WarehouseProperties.StoreProperties.TdEngineProperties tdEngineProperties) {
|
private boolean initTdEngineDatasource(WarehouseProperties.StoreProperties.TdEngineProperties tdEngineProperties) {
|
||||||
HikariConfig config = new HikariConfig();
|
HikariConfig config = new HikariConfig();
|
||||||
// jdbc properties
|
// jdbc properties
|
||||||
config.setJdbcUrl(tdEngineProperties.getUrl());
|
config.setJdbcUrl(tdEngineProperties.getUrl());
|
||||||
@@ -84,16 +84,28 @@ public class TdEngineDataStorage implements DisposableBean {
|
|||||||
config.setIdleTimeout(0);
|
config.setIdleTimeout(0);
|
||||||
//validation query
|
//validation query
|
||||||
config.setConnectionTestQuery("select server_status()");
|
config.setConnectionTestQuery("select server_status()");
|
||||||
this.hikariDataSource = new HikariDataSource(config);
|
try {
|
||||||
|
this.hikariDataSource = new HikariDataSource(config);
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("\n\t------------------WARN WARN WARN------------------\n" +
|
||||||
|
"\t---------------Init TdEngine Failed---------------\n" +
|
||||||
|
"\t---------------Init TdEngine Failed---------------\n" +
|
||||||
|
"\t--------------Please Config Tdengine--------------\n" +
|
||||||
|
"\t----------Can Not Use Metric History Now----------\n" +
|
||||||
|
"\t----------Can Not Use Metric History Now----------\n" +
|
||||||
|
"\t----------Can Not Use Metric History Now----------\n");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void startStorageData() {
|
private void startStorageData(boolean consume) {
|
||||||
Runnable runnable = () -> {
|
Runnable runnable = () -> {
|
||||||
Thread.currentThread().setName("warehouse-tdEngine-data-storage");
|
Thread.currentThread().setName("warehouse-tdEngine-data-storage");
|
||||||
while (!Thread.currentThread().isInterrupted()) {
|
while (!Thread.currentThread().isInterrupted()) {
|
||||||
try {
|
try {
|
||||||
CollectRep.MetricsData metricsData = dataExporter.pollPersistentStorageMetricsData();
|
CollectRep.MetricsData metricsData = dataExporter.pollPersistentStorageMetricsData();
|
||||||
if (metricsData != null) {
|
if (consume && metricsData != null) {
|
||||||
saveData(metricsData);
|
saveData(metricsData);
|
||||||
}
|
}
|
||||||
} catch (InterruptedException e) {
|
} catch (InterruptedException e) {
|
||||||
@@ -232,6 +244,12 @@ public class TdEngineDataStorage implements DisposableBean {
|
|||||||
Connection connection = null;
|
Connection connection = null;
|
||||||
Map<String, List<Value>> instanceValuesMap = new HashMap<>(8);
|
Map<String, List<Value>> instanceValuesMap = new HashMap<>(8);
|
||||||
try {
|
try {
|
||||||
|
if (hikariDataSource == null) {
|
||||||
|
log.error("\n\t---------------TdEngine Init Failed---------------\n" +
|
||||||
|
"\t--------------Please Config Tdengine--------------\n" +
|
||||||
|
"\t----------Can Not Use Metric History Now----------\n");
|
||||||
|
return instanceValuesMap;
|
||||||
|
}
|
||||||
connection = hikariDataSource.getConnection();
|
connection = hikariDataSource.getConnection();
|
||||||
Statement statement = connection.createStatement();
|
Statement statement = connection.createStatement();
|
||||||
ResultSet resultSet = statement.executeQuery(selectSql);
|
ResultSet resultSet = statement.executeQuery(selectSql);
|
||||||
|
|||||||
Reference in New Issue
Block a user