You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by xi...@apache.org on 2022/07/27 03:07:14 UTC
[iotdb] branch master updated: [IOTDB-3937] Fix the initialization of IoTDB Reporter in metric framework. (#6784)
This is an automated email from the ASF dual-hosted git repository.
xingtanzjr pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new 975eaa5bd2 [IOTDB-3937] Fix the initialization of IoTDB Reporter in metric framework. (#6784)
975eaa5bd2 is described below
commit 975eaa5bd283b98cf6e64944c2ed734da438c2b3
Author: ZhangHongYin <46...@users.noreply.github.com>
AuthorDate: Wed Jul 27 11:07:09 2022 +0800
[IOTDB-3937] Fix the initialization of IoTDB Reporter in metric framework. (#6784)
---
.../metrics/dropwizard/reporter/IoTDBReporter.java | 5 ++--
.../{MetricsUtils.java => IoTDBMetricsUtils.java} | 28 +++++++++++++++++++---
.../micrometer/reporter/IoTDBMeterRegistry.java | 5 ++--
3 files changed, 31 insertions(+), 7 deletions(-)
diff --git a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java
index b2452d0dea..feb335ea83 100644
--- a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java
+++ b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/IoTDBReporter.java
@@ -22,7 +22,7 @@ package org.apache.iotdb.metrics.dropwizard.reporter;
import org.apache.iotdb.metrics.config.MetricConfig;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.dropwizard.MetricName;
-import org.apache.iotdb.metrics.utils.MetricsUtils;
+import org.apache.iotdb.metrics.utils.IoTDBMetricsUtils;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.session.pool.SessionPool;
@@ -80,6 +80,7 @@ public class IoTDBReporter extends ScheduledReporter {
ioTDBReporterConfig.getUsername(),
ioTDBReporterConfig.getPassword(),
ioTDBReporterConfig.getMaxConnectionNumber());
+ IoTDBMetricsUtils.checkOrCreateStorageGroup(sessionPool);
}
@Override
@@ -232,7 +233,7 @@ public class IoTDBReporter extends ScheduledReporter {
private void updateValue(String name, Map<String, String> labels, Object value) {
if (value != null) {
- String deviceId = MetricsUtils.generatePath(name, labels);
+ String deviceId = IoTDBMetricsUtils.generatePath(name, labels);
List<String> sensors = Collections.singletonList("value");
List<TSDataType> dataTypes = new ArrayList<>();
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricsUtils.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
similarity index 63%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricsUtils.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
index 505d4b8a51..6bae939138 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricsUtils.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
@@ -21,18 +21,27 @@ package org.apache.iotdb.metrics.utils;
import org.apache.iotdb.metrics.config.MetricConfig;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
+import org.apache.iotdb.rpc.IoTDBConnectionException;
+import org.apache.iotdb.rpc.StatementExecutionException;
+import org.apache.iotdb.session.pool.SessionDataSetWrapper;
+import org.apache.iotdb.session.pool.SessionPool;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.util.Map;
-public class MetricsUtils {
+public class IoTDBMetricsUtils {
+ private static final Logger logger = LoggerFactory.getLogger(IoTDBMetricsUtils.class);
private static final MetricConfig metricConfig =
MetricConfigDescriptor.getInstance().getMetricConfig();
+ private static final String STORAGE_GROUP =
+ "root." + metricConfig.getIoTDBReporterConfig().getDatabase();
public static String generatePath(String name, Map<String, String> labels) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
- .append("root.")
- .append(metricConfig.getIoTDBReporterConfig().getDatabase())
+ .append(STORAGE_GROUP)
.append(".`")
.append(metricConfig.getRpcAddress())
.append(":")
@@ -53,4 +62,17 @@ public class MetricsUtils {
}
return stringBuilder.toString();
}
+
+ public static void checkOrCreateStorageGroup(SessionPool session) {
+ try (SessionDataSetWrapper result =
+ session.executeQueryStatement("show storage group " + STORAGE_GROUP)) {
+ if (!result.hasNext()) {
+ session.setStorageGroup(STORAGE_GROUP);
+ }
+ } catch (IoTDBConnectionException e) {
+ logger.error("CheckOrCreateStorageGroup failed because ", e);
+ } catch (StatementExecutionException e) {
+ // do nothing
+ }
+ }
}
diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java
index bc481f8b5b..46557b3fbf 100644
--- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java
+++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/IoTDBMeterRegistry.java
@@ -21,7 +21,7 @@ package org.apache.iotdb.metrics.micrometer.reporter;
import org.apache.iotdb.metrics.config.MetricConfig;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
-import org.apache.iotdb.metrics.utils.MetricsUtils;
+import org.apache.iotdb.metrics.utils.IoTDBMetricsUtils;
import org.apache.iotdb.rpc.IoTDBConnectionException;
import org.apache.iotdb.rpc.StatementExecutionException;
import org.apache.iotdb.session.pool.SessionPool;
@@ -57,6 +57,7 @@ public class IoTDBMeterRegistry extends StepMeterRegistry {
ioTDBReporterConfig.getUsername(),
ioTDBReporterConfig.getPassword(),
ioTDBReporterConfig.getMaxConnectionNumber());
+ IoTDBMetricsUtils.checkOrCreateStorageGroup(sessionPool);
}
@Override
@@ -128,7 +129,7 @@ public class IoTDBMeterRegistry extends StepMeterRegistry {
private void updateValue(String name, Map<String, String> labels, Double value, Long time) {
if (value != null) {
- String deviceId = MetricsUtils.generatePath(name, labels);
+ String deviceId = IoTDBMetricsUtils.generatePath(name, labels);
List<String> sensors = Collections.singletonList("value");
List<TSDataType> dataTypes = Collections.singletonList(TSDataType.DOUBLE);
List<Object> values = Collections.singletonList(value);