You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by sp...@apache.org on 2023/01/05 07:56:58 UTC
[iotdb] branch rel/1.0 updated: [rel/1.0] [IOTDB-5334] Optimize metric related code and log (#8741)
This is an automated email from the ASF dual-hosted git repository.
spricoder pushed a commit to branch rel/1.0
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.0 by this push:
new 072b7a2631 [rel/1.0] [IOTDB-5334] Optimize metric related code and log (#8741)
072b7a2631 is described below
commit 072b7a2631a430adeacb16a645d054eebf5fad3e
Author: ZhangHongYin <46...@users.noreply.github.com>
AuthorDate: Thu Jan 5 15:56:53 2023 +0800
[rel/1.0] [IOTDB-5334] Optimize metric related code and log (#8741)
* Update the doc in Dropwizard and Micrometer Implementation
* cherry-pick
* Fix some warnings and update logs
* Fix import
* Fix compilation
* Fix some typo, add the print of exception
* Fix typo
* Specific exception and add comment
* Fix grammar
---
.../dropwizard/DropwizardMetricNameTool.java | 11 +++
.../dropwizard/reporter/DropwizardJmxReporter.java | 17 +++-
.../iotdb/metrics/AbstractMetricManager.java | 73 ++++++++--------
.../iotdb/metrics/AbstractMetricService.java | 98 +++++++++++-----------
.../apache/iotdb/metrics/CompositeReporter.java | 14 ++--
.../iotdb/metrics/DoNothingMetricService.java | 4 +-
.../apache/iotdb/metrics/config/MetricConfig.java | 68 ++++++++-------
.../metrics/config/MetricConfigDescriptor.java | 12 +--
.../iotdb/metrics/metricsets/IMetricSet.java | 6 +-
.../iotdb/metrics/metricsets/jvm/JvmGcMetrics.java | 4 +-
.../iotdb/metrics/metricsets/jvm/JvmMetrics.java | 2 +-
.../iotdb/metrics/metricsets/jvm/JvmUtils.java | 8 +-
.../metrics/metricsets/logback/LogbackMetrics.java | 2 +-
.../metricsets/logback/MetricsTurboFilter.java | 12 +--
.../apache/iotdb/metrics/reporter/JmxReporter.java | 2 +-
.../apache/iotdb/metrics/reporter/Reporter.java | 6 +-
...orter.java => IoTDBInternalMemoryReporter.java} | 2 +-
...TDBReporter.java => IoTDBInternalReporter.java} | 12 +--
.../metrics/reporter/iotdb/IoTDBReporter.java | 12 +--
...oTDBReporter.java => IoTDBSessionReporter.java} | 27 +++---
.../reporter/prometheus/PrometheusReporter.java | 14 ++--
.../org/apache/iotdb/metrics/type/AutoGauge.java | 2 +-
.../org/apache/iotdb/metrics/type/Counter.java | 6 +-
.../java/org/apache/iotdb/metrics/type/Gauge.java | 8 +-
.../org/apache/iotdb/metrics/type/Histogram.java | 6 +-
.../iotdb/metrics/type/HistogramSnapshot.java | 14 ++--
.../java/org/apache/iotdb/metrics/type/Rate.java | 14 ++--
.../java/org/apache/iotdb/metrics/type/Timer.java | 12 +--
.../iotdb/metrics/utils/IoTDBMetricsUtils.java | 16 ++--
.../org/apache/iotdb/metrics/utils/MetricInfo.java | 14 ++--
.../apache/iotdb/metrics/utils/MetricLevel.java | 4 +-
.../iotdb/metrics/config/MetricConfigTest.java | 4 +-
.../micrometer/reporter/MicrometerJmxReporter.java | 8 +-
.../commons/service/metric/MetricService.java | 52 ++++++------
.../commons/service/metric/MetricServiceMBean.java | 1 +
.../commons/service/metric/enums/Operation.java | 1 +
.../org/apache/iotdb/db/conf/IoTDBDescriptor.java | 12 +--
.../java/org/apache/iotdb/db/service/DataNode.java | 4 +-
.../java/org/apache/iotdb/db/service/IoTDB.java | 4 +-
.../db/service/metrics/DataNodeMetricsHelper.java | 2 +-
.../iotdb/db/service/metrics/FileMetrics.java | 4 -
...porter.java => IoTDBInternalLocalReporter.java} | 33 ++++----
.../iotdb/db/service/metrics/ProcessMetrics.java | 31 ++++---
.../iotdb/db/service/metrics/SystemMetrics.java | 39 ++++-----
44 files changed, 367 insertions(+), 330 deletions(-)
diff --git a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
index 049ca46c94..d8d62b978e 100644
--- a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
+++ b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
@@ -28,6 +28,12 @@ import java.util.stream.Collectors;
public class DropwizardMetricNameTool {
private static final String TAG_SEPARATOR = ".";
+ /**
+ * Transform flat string and metric type to metricInfo.
+ *
+ * @param metricType the type of metric
+ * @param flatString the flat string of metricInfo
+ */
public static MetricInfo transformFromString(MetricType metricType, String flatString) {
MetricInfo metricInfo;
String name;
@@ -48,6 +54,11 @@ public class DropwizardMetricNameTool {
return metricInfo;
}
+ /**
+ * Transform metricInfo to flat string.
+ *
+ * @param metricInfo the info of metric
+ */
public static String toFlatString(MetricInfo metricInfo) {
String name = metricInfo.getName();
Map<String, String> tags = metricInfo.getTags();
diff --git a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/DropwizardJmxReporter.java b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/DropwizardJmxReporter.java
index fd83eb4a24..36935a27ca 100644
--- a/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/DropwizardJmxReporter.java
+++ b/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/reporter/DropwizardJmxReporter.java
@@ -47,18 +47,27 @@ public class DropwizardJmxReporter implements JmxReporter {
.build();
jmxReporter.start();
} catch (Exception e) {
- LOGGER.error("Failed to start Dropwizard JmxReporter, because {}", e.getMessage());
+ jmxReporter = null;
+ LOGGER.warn("Dropwizard JmxReporter failed to start, because ", e);
return false;
}
+ LOGGER.info("Dropwizard JmxReporter start!");
return true;
}
@Override
public boolean stop() {
- if (jmxReporter != null) {
- jmxReporter.stop();
- jmxReporter = null;
+ try {
+ if (jmxReporter != null) {
+ jmxReporter.stop();
+ jmxReporter = null;
+ }
+ } catch (RuntimeException e) {
+ // catch possible RuntimeException throwed by stop method of jmxReporter
+ LOGGER.warn("Dropwizard JmxReporter failed to stop, because ", e);
+ return false;
}
+ LOGGER.info("Dropwizard JmxReporter stop!");
return true;
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
index f5dc8e964d..ffd77eccc6 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
@@ -46,9 +46,9 @@ import java.util.function.ToLongFunction;
public abstract class AbstractMetricManager {
protected static final MetricConfig METRIC_CONFIG =
MetricConfigDescriptor.getInstance().getMetricConfig();
- /** The map from metric name to metric metaInfo */
+ /** The map from metric name to metric metaInfo. */
protected Map<String, MetricInfo.MetaInfo> nameToMetaInfo;
- /** The map from metricInfo to metric */
+ /** The map from metricInfo to metric. */
protected Map<MetricInfo, IMetric> metrics;
public AbstractMetricManager() {
@@ -63,9 +63,10 @@ public abstract class AbstractMetricManager {
* @param name the name of name
* @param metricLevel the level of name
* @param tags string pairs, like sg="ln" will be "sg", "ln"
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
public Counter getOrCreateCounter(String name, MetricLevel metricLevel, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingCounter;
}
MetricInfo metricInfo = new MetricInfo(MetricType.COUNTER, name, tags);
@@ -100,7 +101,7 @@ public abstract class AbstractMetricManager {
*/
public <T> AutoGauge createAutoGauge(
String name, MetricLevel metricLevel, T obj, ToLongFunction<T> mapper, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingAutoGauge;
}
MetricInfo metricInfo = new MetricInfo(MetricType.AUTO_GAUGE, name, tags);
@@ -111,13 +112,24 @@ public abstract class AbstractMetricManager {
}
/**
- * Get autoGauge
+ * Create autoGauge according to metric framework.
+ *
+ * @param metricInfo the metricInfo of autoGauge
+ * @param obj which will be monitored automatically
+ * @param mapper use which to map the obj to a long value
+ */
+ protected abstract <T> AutoGauge createAutoGauge(
+ MetricInfo metricInfo, T obj, ToLongFunction<T> mapper);
+
+ /**
+ * Get autoGauge.
*
* @param name the name of name
* @param metricLevel the level of name
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
- public <T> AutoGauge getAutoGauge(String name, MetricLevel metricLevel, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ public AutoGauge getAutoGauge(String name, MetricLevel metricLevel, String... tags) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingAutoGauge;
}
MetricInfo metricInfo = new MetricInfo(MetricType.AUTO_GAUGE, name, tags);
@@ -131,25 +143,16 @@ public abstract class AbstractMetricManager {
metricInfo + " is already used for a different type of name");
}
- /**
- * Create autoGauge according to metric framework
- *
- * @param metricInfo the metricInfo of autoGauge
- * @param obj which will be monitored automatically
- * @param mapper use which to map the obj to a long value
- */
- protected abstract <T> AutoGauge createAutoGauge(
- MetricInfo metricInfo, T obj, ToLongFunction<T> mapper);
-
/**
* Get counter. return if exists, create if not.
*
* @param name the name of name
* @param metricLevel the level of name
* @param tags string pairs, like sg="ln" will be "sg", "ln"
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
public Gauge getOrCreateGauge(String name, MetricLevel metricLevel, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingGauge;
}
MetricInfo metricInfo = new MetricInfo(MetricType.GAUGE, name, tags);
@@ -169,7 +172,7 @@ public abstract class AbstractMetricManager {
}
/**
- * Create gauge according to metric framework
+ * Create gauge according to metric framework.
*
* @param metricInfo the metricInfo of gauge
*/
@@ -181,9 +184,10 @@ public abstract class AbstractMetricManager {
* @param name the name of name
* @param metricLevel the level of name
* @param tags string pairs, like sg="ln" will be "sg", "ln"
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
public Rate getOrCreateRate(String name, MetricLevel metricLevel, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingRate;
}
MetricInfo metricInfo = new MetricInfo(MetricType.RATE, name, tags);
@@ -203,7 +207,7 @@ public abstract class AbstractMetricManager {
}
/**
- * Create rate according to metric framework
+ * Create rate according to metric framework.
*
* @param metricInfo the metricInfo of rate
*/
@@ -215,9 +219,10 @@ public abstract class AbstractMetricManager {
* @param name the name of name
* @param metricLevel the level of name
* @param tags string pairs, like sg="ln" will be "sg", "ln"
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
public Histogram getOrCreateHistogram(String name, MetricLevel metricLevel, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingHistogram;
}
MetricInfo metricInfo = new MetricInfo(MetricType.HISTOGRAM, name, tags);
@@ -237,7 +242,7 @@ public abstract class AbstractMetricManager {
}
/**
- * Create histogram according to metric framework
+ * Create histogram according to metric framework.
*
* @param metricInfo the metricInfo of metric
*/
@@ -249,9 +254,10 @@ public abstract class AbstractMetricManager {
* @param name the name of name
* @param metricLevel the level of name
* @param tags string pairs, like sg="ln" will be "sg", "ln"
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
public Timer getOrCreateTimer(String name, MetricLevel metricLevel, String... tags) {
- if (!isValid(metricLevel, name, tags)) {
+ if (invalid(metricLevel, name, tags)) {
return DoNothingMetricManager.doNothingTimer;
}
MetricInfo metricInfo = new MetricInfo(MetricType.TIMER, name, tags);
@@ -271,7 +277,7 @@ public abstract class AbstractMetricManager {
}
/**
- * Create timer according to metric framework
+ * Create timer according to metric framework.
*
* @param metricInfo the metricInfo of metric
*/
@@ -379,7 +385,7 @@ public abstract class AbstractMetricManager {
}
/**
- * Get metrics by type
+ * Get metrics by type.
*
* @return [name, [tags...]] -> metric
*/
@@ -398,11 +404,12 @@ public abstract class AbstractMetricManager {
// region remove metric
/**
- * remove name
+ * remove name.
*
* @param type the type of name
* @param name the name of name
* @param tags string pairs, like sg="ln" will be "sg", "ln"
+ * @throws IllegalArgumentException when there has different type metric with same name
*/
public void remove(MetricType type, String name, String... tags) {
MetricInfo metricInfo = new MetricInfo(type, name, tags);
@@ -422,12 +429,12 @@ public abstract class AbstractMetricManager {
// endregion
- /** Is metric service enabled in specific level */
+ /** Is metric service enabled in specific level. */
public boolean isEnableMetricInGivenLevel(MetricLevel metricLevel) {
return MetricLevel.higherOrEqual(metricLevel, METRIC_CONFIG.getMetricLevel());
}
- /** Stop and clear metric manager */
+ /** Stop and clear metric manager. */
protected boolean stop() {
metrics = new ConcurrentHashMap<>();
nameToMetaInfo = new ConcurrentHashMap<>();
@@ -436,15 +443,15 @@ public abstract class AbstractMetricManager {
protected abstract boolean stopFramework();
- private boolean isValid(MetricLevel metricLevel, String name, String... tags) {
+ private boolean invalid(MetricLevel metricLevel, String name, String... tags) {
if (!isEnableMetricInGivenLevel(metricLevel)) {
- return false;
+ return true;
}
if (!nameToMetaInfo.containsKey(name)) {
- return true;
+ return false;
}
MetricInfo.MetaInfo metaInfo = nameToMetaInfo.get(name);
- return metaInfo.hasSameKey(tags);
+ return !metaInfo.hasSameKey(tags);
}
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
index 28d82dc381..f8b410e2a8 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
@@ -26,9 +26,9 @@ import org.apache.iotdb.metrics.impl.DoNothingMetricManager;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.reporter.JmxReporter;
import org.apache.iotdb.metrics.reporter.Reporter;
-import org.apache.iotdb.metrics.reporter.iotdb.InternalIoTDBReporter;
-import org.apache.iotdb.metrics.reporter.iotdb.MemoryInternalIoTDBReporter;
-import org.apache.iotdb.metrics.reporter.iotdb.SessionIoTDBReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalMemoryReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBSessionReporter;
import org.apache.iotdb.metrics.reporter.prometheus.PrometheusReporter;
import org.apache.iotdb.metrics.type.AutoGauge;
import org.apache.iotdb.metrics.type.Counter;
@@ -55,23 +55,25 @@ import java.util.function.ToLongFunction;
/** MetricService is the entry to get all metric features. */
public abstract class AbstractMetricService {
- private static final Logger logger = LoggerFactory.getLogger(AbstractMetricService.class);
- /** The config of metric service */
- protected final MetricConfig metricConfig =
+ private static final Logger LOGGER = LoggerFactory.getLogger(AbstractMetricService.class);
+ /** The config of metric service. */
+ protected static final MetricConfig METRIC_CONFIG =
MetricConfigDescriptor.getInstance().getMetricConfig();
- /** The metric manager of metric service */
+ /** The metric manager of metric service. */
protected AbstractMetricManager metricManager = new DoNothingMetricManager();
- /** The metric reporter of metric service */
+ /** The metric reporter of metric service. */
protected CompositeReporter compositeReporter = new CompositeReporter();
- /** The internal reporter of metric service */
- protected InternalIoTDBReporter internalReporter = new MemoryInternalIoTDBReporter();
+ /** The internal reporter of metric service. */
+ protected IoTDBInternalReporter internalReporter = new IoTDBInternalMemoryReporter();
- /** The list of metric sets */
+ /** The list of metric sets. */
protected List<IMetricSet> metricSets = new ArrayList<>();
- public AbstractMetricService() {}
+ public AbstractMetricService() {
+ // empty constructor
+ }
- /** Start metric service */
+ /** Start metric service. */
public void startService() {
startCoreModule();
for (IMetricSet metricSet : metricSets) {
@@ -79,7 +81,7 @@ public abstract class AbstractMetricService {
}
}
- /** Stop metric service */
+ /** Stop metric service. */
public void stopService() {
for (IMetricSet metricSet : metricSets) {
metricSet.unbindFrom(this);
@@ -87,9 +89,9 @@ public abstract class AbstractMetricService {
stopCoreModule();
}
- /** Start metric core module */
+ /** Start metric core module. */
protected void startCoreModule() {
- logger.info("Start metric service at level: {}", metricConfig.getMetricLevel().name());
+ LOGGER.info("Start metric service at level: {}", METRIC_CONFIG.getMetricLevel().name());
// load metric manager
loadManager();
// load metric reporter
@@ -98,7 +100,7 @@ public abstract class AbstractMetricService {
startAllReporter();
}
- /** Stop metric core module */
+ /** Stop metric core module. */
protected void stopCoreModule() {
stopAllReporter();
metricManager.stop();
@@ -106,9 +108,9 @@ public abstract class AbstractMetricService {
compositeReporter = new CompositeReporter();
}
- /** Load metric manager according to configuration */
+ /** Load metric manager according to configuration. */
private void loadManager() {
- logger.info("Load metricManager, type: {}", metricConfig.getMetricFrameType());
+ LOGGER.info("Load metricManager, type: {}", METRIC_CONFIG.getMetricFrameType());
ServiceLoader<AbstractMetricManager> metricManagers =
ServiceLoader.load(AbstractMetricManager.class);
int size = 0;
@@ -117,7 +119,7 @@ public abstract class AbstractMetricService {
if (mf.getClass()
.getName()
.toLowerCase()
- .contains(metricConfig.getMetricFrameType().name().toLowerCase())) {
+ .contains(METRIC_CONFIG.getMetricFrameType().name().toLowerCase())) {
metricManager = mf;
break;
}
@@ -127,19 +129,19 @@ public abstract class AbstractMetricService {
if (size == 0 || metricManager == null) {
metricManager = new DoNothingMetricManager();
} else if (size > 1) {
- logger.info(
+ LOGGER.info(
"Detect more than one MetricManager, will use {}", metricManager.getClass().getName());
}
}
- /** Load metric reporters according to configuration */
+ /** Load metric reporters according to configuration. */
protected void loadReporter() {
- logger.info("Load metric reporters, type: {}", metricConfig.getMetricReporterList());
+ LOGGER.info("Load metric reporters, type: {}", METRIC_CONFIG.getMetricReporterList());
compositeReporter.clearReporter();
- if (metricConfig.getMetricReporterList() == null) {
+ if (METRIC_CONFIG.getMetricReporterList() == null) {
return;
}
- for (ReporterType reporterType : metricConfig.getMetricReporterList()) {
+ for (ReporterType reporterType : METRIC_CONFIG.getMetricReporterList()) {
Reporter reporter = null;
switch (reporterType) {
case JMX:
@@ -149,7 +151,7 @@ public abstract class AbstractMetricService {
.getClass()
.getName()
.toLowerCase()
- .contains(metricConfig.getMetricFrameType().name().toLowerCase())) {
+ .contains(METRIC_CONFIG.getMetricFrameType().name().toLowerCase())) {
jmxReporter.setMetricManager(metricManager);
reporter = jmxReporter;
}
@@ -159,13 +161,13 @@ public abstract class AbstractMetricService {
reporter = new PrometheusReporter(metricManager);
break;
case IOTDB:
- reporter = new SessionIoTDBReporter(metricManager);
+ reporter = new IoTDBSessionReporter(metricManager);
break;
default:
continue;
}
if (reporter == null) {
- logger.error("Failed to load reporter which type is {}", reporterType);
+ LOGGER.warn("Failed to load reporter which type is {}", reporterType);
continue;
}
compositeReporter.addReporter(reporter);
@@ -173,14 +175,14 @@ public abstract class AbstractMetricService {
}
/**
- * Reload internal reporter
+ * Reload internal reporter.
*
* @param internalReporter the new internal reporter
*/
- public abstract void reloadInternalReporter(InternalIoTDBReporter internalReporter);
+ public abstract void reloadInternalReporter(IoTDBInternalReporter internalReporter);
/**
- * Reload metric service
+ * Reload metric service.
*
* @param reloadLevel the level of reload
*/
@@ -188,22 +190,22 @@ public abstract class AbstractMetricService {
// region interface from metric reporter
- /** Start all reporters */
+ /** Start all reporters. */
public void startAllReporter() {
compositeReporter.startAll();
}
- /** Stop all reporters */
+ /** Stop all reporters. */
public void stopAllReporter() {
compositeReporter.stopAll();
}
- /** Start reporter according to type */
+ /** Start reporter according to type. */
public void start(ReporterType type) {
compositeReporter.start(type);
}
- /** Stop reporter according to type */
+ /** Stop reporter according to type. */
public void stop(ReporterType type) {
compositeReporter.stop(type);
}
@@ -221,7 +223,7 @@ public abstract class AbstractMetricService {
return metricManager.createAutoGauge(metric, metricLevel, obj, mapper, tags);
}
- public <T> AutoGauge getAutoGauge(String metric, MetricLevel metricLevel, String... tags) {
+ public AutoGauge getAutoGauge(String metric, MetricLevel metricLevel, String... tags) {
return metricManager.getAutoGauge(metric, metricLevel, tags);
}
@@ -262,7 +264,7 @@ public abstract class AbstractMetricService {
metricManager.timer(delta, timeUnit, metric, metricLevel, tags);
}
- /** GetOrCreateCounter with internal report */
+ /** GetOrCreateCounter with internal report. */
public Counter getOrCreateCounterWithInternalReport(
String metric, MetricLevel metricLevel, String... tags) {
Counter counter = metricManager.getOrCreateCounter(metric, metricLevel, tags);
@@ -270,7 +272,7 @@ public abstract class AbstractMetricService {
return counter;
}
- /** GetOrCreateAutoGauge with internal report */
+ /** GetOrCreateAutoGauge with internal report. */
public <T> AutoGauge createAutoGaugeWithInternalReport(
String metric, MetricLevel metricLevel, T obj, ToLongFunction<T> mapper, String... tags) {
AutoGauge gauge = metricManager.createAutoGauge(metric, metricLevel, obj, mapper, tags);
@@ -278,7 +280,7 @@ public abstract class AbstractMetricService {
return gauge;
}
- /** GetOrCreateGauge with internal report */
+ /** GetOrCreateGauge with internal report. */
public Gauge getOrCreateGaugeWithInternalReport(
String metric, MetricLevel metricLevel, String... tags) {
Gauge gauge = metricManager.getOrCreateGauge(metric, metricLevel, tags);
@@ -286,7 +288,7 @@ public abstract class AbstractMetricService {
return gauge;
}
- /** GetOrCreateRate with internal report */
+ /** GetOrCreateRate with internal report. */
public Rate getOrCreateRateWithInternalReport(
String metric, MetricLevel metricLevel, String... tags) {
Rate rate = metricManager.getOrCreateRate(metric, metricLevel, tags);
@@ -294,7 +296,7 @@ public abstract class AbstractMetricService {
return rate;
}
- /** GetOrCreateHistogram with internal report */
+ /** GetOrCreateHistogram with internal report. */
public Histogram getOrCreateHistogramWithInternalReport(
String metric, MetricLevel metricLevel, String... tags) {
Histogram histogram = metricManager.getOrCreateHistogram(metric, metricLevel, tags);
@@ -302,7 +304,7 @@ public abstract class AbstractMetricService {
return histogram;
}
- /** GetOrCreateTimer with internal report */
+ /** GetOrCreateTimer with internal report. */
public Timer getOrCreateTimerWithInternalReport(
String metric, MetricLevel metricLevel, String... tags) {
Timer timer = metricManager.getOrCreateTimer(metric, metricLevel, tags);
@@ -310,7 +312,7 @@ public abstract class AbstractMetricService {
return timer;
}
- /** Count with internal report */
+ /** Count with internal report. */
public void countWithInternalReport(
long delta, String metric, MetricLevel metricLevel, String... tags) {
internalReporter.writeMetricToIoTDB(
@@ -324,21 +326,21 @@ public abstract class AbstractMetricService {
metricManager.gauge(value, metric, metricLevel, tags), metric, tags);
}
- /** Rate with internal report */
+ /** Rate with internal report. */
public void rateWithInternalReport(
long value, String metric, MetricLevel metricLevel, String... tags) {
internalReporter.writeMetricToIoTDB(
metricManager.rate(value, metric, metricLevel, tags), metric, tags);
}
- /** Histogram with internal report */
+ /** Histogram with internal report. */
public void histogramWithInternalReport(
long value, String metric, MetricLevel metricLevel, String... tags) {
internalReporter.writeMetricToIoTDB(
metricManager.histogram(value, metric, metricLevel, tags), metric, tags);
}
- /** Timer with internal report */
+ /** Timer with internal report. */
public void timerWithInternalReport(
long delta, TimeUnit timeUnit, String metric, MetricLevel metricLevel, String... tags) {
internalReporter.writeMetricToIoTDB(
@@ -367,7 +369,7 @@ public abstract class AbstractMetricService {
return metricManager;
}
- /** Bind metrics and store metric set */
+ /** Bind metrics and store metric set. */
public void addMetricSet(IMetricSet metricSet) {
if (!metricSets.contains(metricSet)) {
metricSet.bindTo(this);
@@ -375,7 +377,7 @@ public abstract class AbstractMetricService {
}
}
- /** Remove metrics */
+ /** Remove metrics. */
public void removeMetricSet(IMetricSet metricSet) {
if (metricSets.contains(metricSet)) {
metricSet.unbindFrom(this);
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/CompositeReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/CompositeReporter.java
index 0a713443d7..71d2d7fcc5 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/CompositeReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/CompositeReporter.java
@@ -32,7 +32,7 @@ public class CompositeReporter {
private static final Logger LOGGER = LoggerFactory.getLogger(CompositeReporter.class);
private final List<Reporter> reporters = new ArrayList<>();
- /** Start all reporters */
+ /** Start all reporters. */
public void startAll() {
for (Reporter reporter : reporters) {
if (!reporter.start()) {
@@ -41,7 +41,7 @@ public class CompositeReporter {
}
}
- /** Start reporter by reporterType */
+ /** Start reporter by reporterType. */
public boolean start(ReporterType reporterType) {
for (Reporter reporter : reporters) {
if (reporter.getReporterType() == reporterType) {
@@ -52,16 +52,16 @@ public class CompositeReporter {
return false;
}
- /** Stop all reporters */
+ /** Stop all reporters. */
public void stopAll() {
for (Reporter reporter : reporters) {
if (!reporter.stop()) {
- LOGGER.error("Failed to stop {} reporter.", reporter.getReporterType());
+ LOGGER.warn("Failed to stop {} reporter.", reporter.getReporterType());
}
}
}
- /** Stop reporter by reporterType */
+ /** Stop reporter by reporterType. */
public boolean stop(ReporterType reporterType) {
for (Reporter reporter : reporters) {
if (reporter.getReporterType() == reporterType) {
@@ -72,7 +72,7 @@ public class CompositeReporter {
return false;
}
- /** Add reporter into reporter list */
+ /** Add reporter into reporter list. */
public void addReporter(Reporter reporter) {
for (Reporter originReporter : reporters) {
if (originReporter.getReporterType() == reporter.getReporterType()) {
@@ -84,7 +84,7 @@ public class CompositeReporter {
reporters.add(reporter);
}
- /** Clear all reporters */
+ /** Clear all reporters. */
public void clearReporter() {
reporters.clear();
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/DoNothingMetricService.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/DoNothingMetricService.java
index 2f13c317e0..87471f49b7 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/DoNothingMetricService.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/DoNothingMetricService.java
@@ -20,12 +20,12 @@
package org.apache.iotdb.metrics;
import org.apache.iotdb.metrics.config.ReloadLevel;
-import org.apache.iotdb.metrics.reporter.iotdb.InternalIoTDBReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalReporter;
public class DoNothingMetricService extends AbstractMetricService {
@Override
- public void reloadInternalReporter(InternalIoTDBReporter internalReporter) {
+ public void reloadInternalReporter(IoTDBInternalReporter internalReporter) {
// do nothing
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
index a2558f8b9b..5571240cfd 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
@@ -30,30 +30,30 @@ import java.util.List;
import java.util.Objects;
public class MetricConfig {
- /** The type of the implementation of metric framework */
+ /** The type of the implementation of metric framework. */
private MetricFrameType metricFrameType = MetricFrameType.MICROMETER;
- /** The list of reporters provide metrics for external tool */
+ /** The list of reporters provide metrics for external tool. */
private List<ReporterType> metricReporterList = Collections.emptyList();
- /** The level of metric service */
+ /** The level of metric service. */
private MetricLevel metricLevel = MetricLevel.CORE;
- /** The period of async collection of some metrics in second */
+ /** The period of async collection of some metrics in second. */
private Integer asyncCollectPeriodInSecond = 5;
- /** The export port for prometheus to get metrics */
+ /** The export port for prometheus to get metrics. */
private Integer prometheusReporterPort = 9091;
- /** The iotdb config for iotdb reporter to push metric data */
- private IoTDBReporterConfig ioTDBReporterConfig = new IoTDBReporterConfig();
+ /** The iotdb config for iotdb reporter to push metric data. */
+ private final IoTDBReporterConfig iotdbReporterConfig = new IoTDBReporterConfig();
- /** The type of internal reporter */
+ /** The type of internal reporter. */
private InternalReporterType internalReporterType = InternalReporterType.MEMORY;
- /** The address of iotdb instance that is monitored */
+ /** The address of iotdb instance that is monitored. */
private String rpcAddress = "0.0.0.0";
- /** The port of iotdb instance that is monitored */
+ /** The port of iotdb instance that is monitored. */
private Integer rpcPort = 6667;
public MetricFrameType getMetricFrameType() {
@@ -109,12 +109,8 @@ public class MetricConfig {
this.prometheusReporterPort = prometheusReporterPort;
}
- public IoTDBReporterConfig getIoTDBReporterConfig() {
- return ioTDBReporterConfig;
- }
-
- public void setIoTDBReporterConfig(IoTDBReporterConfig ioTDBReporterConfig) {
- this.ioTDBReporterConfig = ioTDBReporterConfig;
+ public IoTDBReporterConfig getIotdbReporterConfig() {
+ return iotdbReporterConfig;
}
public String getRpcAddress() {
@@ -125,30 +121,22 @@ public class MetricConfig {
return rpcPort;
}
- /** Update rpc address and rpc port of monitored node */
+ /** Update rpc address and rpc port of monitored node. */
public void updateRpcInstance(String rpcAddress, int rpcPort) {
this.rpcAddress = rpcAddress;
this.rpcPort = rpcPort;
}
- /** Copy properties from another metric config */
+ /** Copy properties from another metric config. */
public void copy(MetricConfig newMetricConfig) {
metricFrameType = newMetricConfig.getMetricFrameType();
metricReporterList = newMetricConfig.getMetricReporterList();
metricLevel = newMetricConfig.getMetricLevel();
asyncCollectPeriodInSecond = newMetricConfig.getAsyncCollectPeriodInSecond();
prometheusReporterPort = newMetricConfig.getPrometheusReporterPort();
-
- IoTDBReporterConfig newIoTDBReporterConfig = newMetricConfig.getIoTDBReporterConfig();
- ioTDBReporterConfig.setHost(newIoTDBReporterConfig.getHost());
- ioTDBReporterConfig.setPort(newIoTDBReporterConfig.getPort());
- ioTDBReporterConfig.setUsername(newIoTDBReporterConfig.getUsername());
- ioTDBReporterConfig.setPassword(newIoTDBReporterConfig.getPassword());
- ioTDBReporterConfig.setMaxConnectionNumber(newIoTDBReporterConfig.getMaxConnectionNumber());
- ioTDBReporterConfig.setPushPeriodInSecond(newIoTDBReporterConfig.getPushPeriodInSecond());
- ioTDBReporterConfig.setLocation(newIoTDBReporterConfig.getLocation());
-
internalReporterType = newMetricConfig.getInternalReportType();
+
+ iotdbReporterConfig.copy(newMetricConfig.getIotdbReporterConfig());
}
@Override
@@ -162,22 +150,22 @@ public class MetricConfig {
&& metricLevel.equals(anotherMetricConfig.getMetricLevel())
&& asyncCollectPeriodInSecond.equals(anotherMetricConfig.getAsyncCollectPeriodInSecond())
&& prometheusReporterPort.equals(anotherMetricConfig.getPrometheusReporterPort())
- && ioTDBReporterConfig.equals(anotherMetricConfig.getIoTDBReporterConfig())
+ && iotdbReporterConfig.equals(anotherMetricConfig.getIotdbReporterConfig())
&& internalReporterType.equals(anotherMetricConfig.getInternalReportType());
}
public static class IoTDBReporterConfig {
- /** The host of iotdb that store metric value */
+ /** The host of iotdb that store metric value. */
private String host = "127.0.0.1";
- /** The port of iotdb that store metric value */
+ /** The port of iotdb that store metric value. */
private Integer port = 6667;
- /** The username of iotdb */
+ /** The username of iotdb. */
private String username = "root";
- /** The password of iotdb */
+ /** The password of iotdb. */
private String password = "root";
- /** The max number of connection */
+ /** The max number of connection. */
private Integer maxConnectionNumber = 3;
- /** The location of iotdb metrics */
+ /** The location of iotdb metrics. */
private String location = "metric";
/** The period of data pushed by the reporter to the remote monitoring system. */
private Integer pushPeriodInSecond = 15;
@@ -238,6 +226,16 @@ public class MetricConfig {
this.pushPeriodInSecond = pushPeriodInSecond;
}
+ public void copy(IoTDBReporterConfig iotdbReporterConfig) {
+ host = iotdbReporterConfig.getHost();
+ port = iotdbReporterConfig.getPort();
+ username = iotdbReporterConfig.getUsername();
+ password = iotdbReporterConfig.getPassword();
+ maxConnectionNumber = iotdbReporterConfig.getMaxConnectionNumber();
+ pushPeriodInSecond = iotdbReporterConfig.getPushPeriodInSecond();
+ location = iotdbReporterConfig.getLocation();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) {
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
index e38085bb5e..b9153d6f07 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
@@ -27,16 +27,16 @@ import org.apache.iotdb.metrics.utils.ReporterType;
import java.util.Properties;
import java.util.stream.Collectors;
-/** The utils class to load properties */
+/** The utils class to load properties. */
public class MetricConfigDescriptor {
- /** The metric config of metric service */
+ /** The metric config of metric service. */
private final MetricConfig metricConfig;
private MetricConfigDescriptor() {
metricConfig = new MetricConfig();
}
- /** Load properties into metric config */
+ /** Load properties into metric config. */
public void loadProps(Properties properties) {
MetricConfig loadConfig = generateFromProperties(properties);
metricConfig.copy(loadConfig);
@@ -72,7 +72,7 @@ public class MetricConfigDescriptor {
return reloadLevel;
}
- /** Load properties into metric config */
+ /** Load properties into metric config. */
private MetricConfig generateFromProperties(Properties properties) {
MetricConfig loadConfig = new MetricConfig();
@@ -110,7 +110,7 @@ public class MetricConfigDescriptor {
String.valueOf(loadConfig.getPrometheusReporterPort()),
properties)));
- MetricConfig.IoTDBReporterConfig reporterConfig = loadConfig.getIoTDBReporterConfig();
+ MetricConfig.IoTDBReporterConfig reporterConfig = loadConfig.getIotdbReporterConfig();
reporterConfig.setHost(
getProperty("metric_iotdb_reporter_host", reporterConfig.getHost(), properties));
@@ -153,7 +153,7 @@ public class MetricConfigDescriptor {
return loadConfig;
}
- /** Get property from confignode or datanode */
+ /** Get property from confignode or datanode. */
private String getProperty(String target, String defaultValue, Properties properties) {
return properties.getProperty(
"dn_" + target, properties.getProperty("cn_" + target, defaultValue));
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/IMetricSet.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/IMetricSet.java
index 9b66fcec4f..c34bb9e721 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/IMetricSet.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/IMetricSet.java
@@ -21,11 +21,11 @@ package org.apache.iotdb.metrics.metricsets;
import org.apache.iotdb.metrics.AbstractMetricService;
-/** Notice that IMetricSet should be stateless */
+/** Notice that IMetricSet should be stateless. */
public interface IMetricSet {
- /** bind metrics to metricManager and init environment */
+ /** bind metrics to metricManager and init environment. */
void bindTo(AbstractMetricService metricService);
- /** remove metrics from metricManager and clear environment */
+ /** remove metrics from metricManager and clear environment. */
void unbindFrom(AbstractMetricService metricService);
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
index 65693b89f7..7415df145d 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
@@ -153,7 +153,7 @@ public class JvmGcMetrics implements IMetricSet, AutoCloseable {
final long oldBefore = before.get(oldGenPoolName).getUsed();
final long oldAfter = after.get(oldGenPoolName).getUsed();
final long delta = oldAfter - oldBefore;
- if (delta > 0L) {
+ if (delta > 0L && promotedBytes != null) {
promotedBytes.inc(delta);
}
@@ -193,6 +193,7 @@ public class JvmGcMetrics implements IMetricSet, AutoCloseable {
try {
notificationEmitter.removeNotificationListener(notificationListener);
} catch (ListenerNotFoundException ignore) {
+ // do nothing
}
});
}
@@ -246,6 +247,7 @@ public class JvmGcMetrics implements IMetricSet, AutoCloseable {
try {
notificationEmitter.removeNotificationListener(notificationListener);
} catch (ListenerNotFoundException ignore) {
+ // do nothing
}
});
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMetrics.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMetrics.java
index 5eb3414211..fea696dc3b 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMetrics.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMetrics.java
@@ -26,7 +26,7 @@ import java.util.ArrayList;
import java.util.List;
public class JvmMetrics implements IMetricSet {
- private List<IMetricSet> metricSets = new ArrayList<>();
+ private final List<IMetricSet> metricSets = new ArrayList<>();
public JvmMetrics() {
metricSets.add(new JvmClassLoaderMetrics());
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
index e0cf1a647b..4455e2d61e 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
@@ -25,17 +25,17 @@ import java.util.function.ToLongFunction;
public class JvmUtils {
static double getUsageValue(
- MemoryPoolMXBean memoryPoolMXBean, ToLongFunction<MemoryUsage> getter) {
- MemoryUsage usage = getUsage(memoryPoolMXBean);
+ MemoryPoolMXBean memoryPoolMxBean, ToLongFunction<MemoryUsage> getter) {
+ MemoryUsage usage = getUsage(memoryPoolMxBean);
if (usage == null) {
return Double.NaN;
}
return getter.applyAsLong(usage);
}
- private static MemoryUsage getUsage(MemoryPoolMXBean memoryPoolMXBean) {
+ private static MemoryUsage getUsage(MemoryPoolMXBean memoryPoolMxBean) {
try {
- return memoryPoolMXBean.getUsage();
+ return memoryPoolMxBean.getUsage();
} catch (InternalError e) {
// Defensive for potential InternalError with some specific JVM options. Based on its Javadoc,
// MemoryPoolMXBean.getUsage() should return null, not throwing InternalError, so it seems to
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
index 2e2f8013a9..852ad6c28b 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
@@ -98,7 +98,7 @@ public class LogbackMetrics implements IMetricSet {
metricService.remove(MetricType.COUNTER, "logback_events", "level", "trace");
}
} catch (Exception e) {
- logger.error("Failed to remove LogBackMetrics.");
+ logger.warn("Failed to remove logBackMetrics, because ", e);
}
}
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/MetricsTurboFilter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/MetricsTurboFilter.java
index 4e8506d5fc..b3674bbe9e 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/MetricsTurboFilter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/MetricsTurboFilter.java
@@ -30,11 +30,11 @@ import ch.qos.logback.core.spi.FilterReply;
import org.slf4j.Marker;
public class MetricsTurboFilter extends TurboFilter {
- private Counter errorCounter;
- private Counter warnCounter;
- private Counter infoCounter;
- private Counter debugCounter;
- private Counter traceCounter;
+ private final Counter errorCounter;
+ private final Counter warnCounter;
+ private final Counter infoCounter;
+ private final Counter debugCounter;
+ private final Counter traceCounter;
MetricsTurboFilter(AbstractMetricService metricService) {
errorCounter =
@@ -90,6 +90,8 @@ public class MetricsTurboFilter extends TurboFilter {
case Level.TRACE_INT:
traceCounter.inc();
break;
+ default:
+ break;
}
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/JmxReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/JmxReporter.java
index 8c4c24b0ac..0e5e055594 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/JmxReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/JmxReporter.java
@@ -22,6 +22,6 @@ package org.apache.iotdb.metrics.reporter;
import org.apache.iotdb.metrics.AbstractMetricManager;
public interface JmxReporter extends Reporter {
- /** Set metric manager into reporter */
+ /** Set metric manager into reporter. */
void setMetricManager(AbstractMetricManager metricManager);
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/Reporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/Reporter.java
index 796681b3ca..57ac99a92e 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/Reporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/Reporter.java
@@ -22,12 +22,12 @@ package org.apache.iotdb.metrics.reporter;
import org.apache.iotdb.metrics.utils.ReporterType;
public interface Reporter {
- /** Start reporter */
+ /** Start reporter. */
boolean start();
- /** Stop reporter */
+ /** Stop reporter. */
boolean stop();
- /** Get the type of reporter */
+ /** Get the type of reporter. */
ReporterType getReporterType();
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/MemoryInternalIoTDBReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBInternalMemoryReporter.java
similarity index 96%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/MemoryInternalIoTDBReporter.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBInternalMemoryReporter.java
index a4e2bd1a0a..c8c283bd96 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/MemoryInternalIoTDBReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBInternalMemoryReporter.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.metrics.utils.ReporterType;
import java.util.Map;
-public class MemoryInternalIoTDBReporter extends InternalIoTDBReporter {
+public class IoTDBInternalMemoryReporter extends IoTDBInternalReporter {
@Override
public InternalReporterType getType() {
return InternalReporterType.MEMORY;
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/InternalIoTDBReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBInternalReporter.java
similarity index 88%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/InternalIoTDBReporter.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBInternalReporter.java
index f6d66e2733..c02c443e85 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/InternalIoTDBReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBInternalReporter.java
@@ -28,11 +28,11 @@ import org.apache.iotdb.metrics.utils.MetricType;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
-public abstract class InternalIoTDBReporter extends IoTDBReporter {
+public abstract class IoTDBInternalReporter extends IoTDBReporter {
protected final Map<MetricInfo, IMetric> autoGauges = new ConcurrentHashMap<>();
/**
- * Add autoGauge into internal reporter
+ * Add autoGauge into internal reporter.
*
* @param autoGauge autoGauge
* @param name the name of autoGauge
@@ -44,7 +44,7 @@ public abstract class InternalIoTDBReporter extends IoTDBReporter {
}
/**
- * Add autoGauges into internal reporter
+ * Add autoGauges into internal reporter.
*
* @param gauges the map of autoGauge
*/
@@ -52,16 +52,16 @@ public abstract class InternalIoTDBReporter extends IoTDBReporter {
autoGauges.putAll(gauges);
}
- /** Get all autoGauges */
+ /** Get all autoGauges. */
public Map<MetricInfo, IMetric> getAllAutoGauge() {
return autoGauges;
}
- /** Clear all autoGauges */
+ /** Clear all autoGauges. */
public void clear() {
autoGauges.clear();
}
- /** Get the type of internal reporter */
+ /** Get the type of internal reporter. */
public abstract InternalReporterType getType();
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBReporter.java
index 819f6c6c4b..2cc67f13a3 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBReporter.java
@@ -29,10 +29,10 @@ import org.apache.iotdb.tsfile.file.metadata.enums.TSDataType;
import java.util.HashMap;
import java.util.Map;
-/** The reporter to IoTDB */
+/** The reporter to IoTDB. */
public abstract class IoTDBReporter implements Reporter {
/**
- * Write metric into IoTDB
+ * Write metric into IoTDB.
*
* @param metric the target metric
* @param name the name of metric
@@ -48,7 +48,7 @@ public abstract class IoTDBReporter implements Reporter {
}
/**
- * Write metric into IoTDB
+ * Write metric into IoTDB.
*
* @param valueMap sensor -> value
* @param prefix device
@@ -58,7 +58,7 @@ public abstract class IoTDBReporter implements Reporter {
Map<String, Object> valueMap, String prefix, long time);
/**
- * Write metrics into IoTDB
+ * Write metrics into IoTDB.
*
* @param metricMap metricInfo -> IMetric
*/
@@ -77,14 +77,14 @@ public abstract class IoTDBReporter implements Reporter {
}
/**
- * Write metrics into IoTDB
+ * Write metrics into IoTDB.
*
* @param valueMap device -> sensor -> value
* @param time write time
*/
protected abstract void writeMetricsToIoTDB(Map<String, Map<String, Object>> valueMap, long time);
- /** Infer type from object */
+ /** Infer type from object. */
protected TSDataType inferType(Object value) {
TSDataType dataType;
if (value instanceof Boolean) {
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/SessionIoTDBReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
similarity index 87%
rename from metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/SessionIoTDBReporter.java
rename to metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
index 5b7f271952..68ffcb119a 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/SessionIoTDBReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
@@ -44,19 +44,19 @@ import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
-public class SessionIoTDBReporter extends IoTDBReporter {
- private static final Logger LOGGER = LoggerFactory.getLogger(SessionIoTDBReporter.class);
+public class IoTDBSessionReporter extends IoTDBReporter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(IoTDBSessionReporter.class);
private static final MetricConfig.IoTDBReporterConfig ioTDBReporterConfig =
- MetricConfigDescriptor.getInstance().getMetricConfig().getIoTDBReporterConfig();
+ MetricConfigDescriptor.getInstance().getMetricConfig().getIotdbReporterConfig();
private Future<?> currentServiceFuture;
private final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
- /** The manager of metrics */
+ /** The manager of metrics. */
protected AbstractMetricManager metricManager;
- /** The session pool to write metrics */
+ /** The session pool to write metrics. */
protected SessionPool sessionPool;
- public SessionIoTDBReporter(AbstractMetricManager metricManager) {
+ public IoTDBSessionReporter(AbstractMetricManager metricManager) {
this.metricManager = metricManager;
this.sessionPool =
new SessionPool(
@@ -71,7 +71,7 @@ public class SessionIoTDBReporter extends IoTDBReporter {
this.sessionPool.createDatabase(IoTDBMetricsUtils.DATABASE);
}
} catch (IoTDBConnectionException e) {
- LOGGER.error("CheckOrCreateStorageGroup failed because ", e);
+ LOGGER.warn("IoTDBSessionReporter checkOrCreateStorageGroup failed because ", e);
} catch (StatementExecutionException e) {
// do nothing
}
@@ -81,7 +81,7 @@ public class SessionIoTDBReporter extends IoTDBReporter {
@SuppressWarnings("unsafeThreadSchedule")
public boolean start() {
if (currentServiceFuture != null) {
- LOGGER.warn("IoTDB Session Reporter already start");
+ LOGGER.warn("IoTDBSessionReporter already start!");
return false;
}
currentServiceFuture =
@@ -98,12 +98,16 @@ public class SessionIoTDBReporter extends IoTDBReporter {
}
writeMetricsToIoTDB(values, System.currentTimeMillis());
} catch (Throwable t) {
- LOGGER.error("Schedule task failed", t);
+ LOGGER.error("IoTDBSessionReporter failed to start, because", t);
}
},
1,
MetricConfigDescriptor.getInstance().getMetricConfig().getAsyncCollectPeriodInSecond(),
TimeUnit.SECONDS);
+ LOGGER.info(
+ "IoTDBSessionReporter start, write to {}:{}",
+ ioTDBReporterConfig.getHost(),
+ ioTDBReporterConfig.getPort());
return true;
}
@@ -116,6 +120,7 @@ public class SessionIoTDBReporter extends IoTDBReporter {
if (sessionPool != null) {
sessionPool.close();
}
+ LOGGER.info("IoTDBSessionReporter stop!");
return true;
}
@@ -138,7 +143,7 @@ public class SessionIoTDBReporter extends IoTDBReporter {
try {
sessionPool.insertRecord(prefix, time, sensors, dataTypes, values);
} catch (IoTDBConnectionException | StatementExecutionException e) {
- LOGGER.warn("Failed to insert record");
+ LOGGER.warn("IoTDBSessionReporter failed to insert record, because ", e);
}
}
@@ -169,7 +174,7 @@ public class SessionIoTDBReporter extends IoTDBReporter {
try {
sessionPool.insertRecords(deviceIds, times, sensors, dataTypes, values);
} catch (IoTDBConnectionException | StatementExecutionException e) {
- LOGGER.warn("Failed to insert record");
+ LOGGER.warn("IoTDBSessionReporter failed to insert record, because ", e);
}
}
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java
index 551bd28332..6a78bb2879 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/prometheus/PrometheusReporter.java
@@ -54,9 +54,9 @@ import java.util.Map;
public class PrometheusReporter implements Reporter {
private static final Logger LOGGER = LoggerFactory.getLogger(PrometheusReporter.class);
- private static final MetricConfig metricConfig =
+ private static final MetricConfig METRIC_CONFIG =
MetricConfigDescriptor.getInstance().getMetricConfig();
- private AbstractMetricManager metricManager;
+ private final AbstractMetricManager metricManager;
private DisposableServer httpServer;
public PrometheusReporter(AbstractMetricManager metricManager) {
@@ -66,6 +66,7 @@ public class PrometheusReporter implements Reporter {
@Override
public boolean start() {
if (httpServer != null) {
+ LOGGER.warn("PrometheusReporter already start!");
return false;
}
try {
@@ -73,7 +74,7 @@ public class PrometheusReporter implements Reporter {
HttpServer.create()
.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 2000)
.channelGroup(new DefaultChannelGroup(GlobalEventExecutor.INSTANCE))
- .port(metricConfig.getPrometheusReporterPort())
+ .port(METRIC_CONFIG.getPrometheusReporterPort())
.route(
routes ->
routes.get(
@@ -82,11 +83,11 @@ public class PrometheusReporter implements Reporter {
.bindNow();
} catch (Exception e) {
httpServer = null;
- LOGGER.error("Failed to start prometheus reporter", e);
+ LOGGER.warn("PrometheusReporter failed to start, because ", e);
return false;
}
LOGGER.info(
- "http server for metrics started, listen on {}", metricConfig.getPrometheusReporterPort());
+ "PrometheusReporter started, use port {}", METRIC_CONFIG.getPrometheusReporterPort());
return true;
}
@@ -209,10 +210,11 @@ public class PrometheusReporter implements Reporter {
httpServer.disposeNow(Duration.ofSeconds(10));
httpServer = null;
} catch (Exception e) {
- LOGGER.error("failed to stop server", e);
+ LOGGER.error("Prometheus Reporter failed to stop, because ", e);
return false;
}
}
+ LOGGER.info("PrometheusReporter stop!");
return true;
}
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/AutoGauge.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/AutoGauge.java
index 8323ae4d69..d50765ca75 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/AutoGauge.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/AutoGauge.java
@@ -22,7 +22,7 @@ package org.apache.iotdb.metrics.type;
import java.util.Map;
public interface AutoGauge extends IMetric {
- /** get value according to the state of obj */
+ /** get value according to the state of obj. */
long value();
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java
index a5bb6c6a89..d1aff9a86d 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Counter.java
@@ -23,13 +23,13 @@ import java.util.Map;
public interface Counter extends IMetric {
- /** Counter add 1 */
+ /** Counter add 1. */
void inc();
- /** Counter add n */
+ /** Counter add n. */
void inc(long n);
- /** Get the value of counter */
+ /** Get the value of counter. */
long count();
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java
index 9fabe2e0d9..17a6a92f8f 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Gauge.java
@@ -23,16 +23,16 @@ import java.util.Map;
public interface Gauge extends IMetric {
- /** Set value */
+ /** Set value. */
void set(long value);
- /** Get value stored in gauge */
+ /** Get value stored in gauge. */
long value();
- /** Increase the value stored in gauge */
+ /** Increase the value stored in gauge. */
void incr(long value);
- /** Decrease the value stored in gauge */
+ /** Decrease the value stored in gauge. */
void decr(long value);
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java
index 6b3e156c94..cf1d7c7790 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Histogram.java
@@ -23,13 +23,13 @@ import java.util.Map;
public interface Histogram extends IMetric {
- /** Update histogram by value */
+ /** Update histogram by value. */
void update(long value);
- /** Get the value of histogram */
+ /** Get the value of histogram. */
long count();
- /** Take snapshot of histogram */
+ /** Take snapshot of histogram. */
HistogramSnapshot takeSnapshot();
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java
index c4ca57b049..468ab6a44d 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/HistogramSnapshot.java
@@ -25,25 +25,25 @@ import java.util.Map;
/** Used by timer and histogram. */
public interface HistogramSnapshot extends IMetric {
- /** Get value by quantile */
+ /** Get value by quantile. */
double getValue(double quantile);
- /** Get values in snapshot */
+ /** Get values in snapshot. */
long[] getValues();
- /** Get the size of values in snapshot */
+ /** Get the size of values in snapshot. */
int size();
- /** Get min value in values */
+ /** Get min value in values. */
long getMin();
- /** Get median value in values */
+ /** Get median value in values. */
double getMedian();
- /** Get mean value in values */
+ /** Get mean value in values. */
double getMean();
- /** Get max value in values */
+ /** Get max value in values. */
long getMax();
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java
index 5bfacaa485..593c727b2e 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Rate.java
@@ -23,25 +23,25 @@ import java.util.Map;
public interface Rate extends IMetric {
- /** Get the value of rate */
+ /** Get the value of rate. */
long getCount();
- /** Get one minute rate */
+ /** Get one minute rate. */
double getOneMinuteRate();
- /** Get mean rate */
+ /** Get mean rate. */
double getMeanRate();
- /** Get five minute rate */
+ /** Get five minute rate. */
double getFiveMinuteRate();
- /** Get fifteen minute rate */
+ /** Get fifteen minute rate. */
double getFifteenMinuteRate();
- /** Mark in rate */
+ /** Mark in rate. */
void mark();
- /** Mark n in rate */
+ /** Mark n in rate. */
void mark(long n);
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java
index cfdae14cab..020d209f93 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/type/Timer.java
@@ -24,28 +24,28 @@ import java.util.concurrent.TimeUnit;
public interface Timer extends IMetric {
- /** Update time of timer */
+ /** Update time of timer. */
void update(long duration, TimeUnit unit);
- /** Update timer by millisecond */
+ /** Update timer by millisecond. */
default void updateMillis(long durationMillis) {
update(durationMillis, TimeUnit.MILLISECONDS);
}
- /** Update timer by microseconds */
+ /** Update timer by microseconds. */
default void updateMicros(long durationMicros) {
update(durationMicros, TimeUnit.MICROSECONDS);
}
- /** Update timer by nanoseconds */
+ /** Update timer by nanoseconds. */
default void updateNanos(long durationNanos) {
update(durationNanos, TimeUnit.NANOSECONDS);
}
- /** Take snapshot of timer */
+ /** Take snapshot of timer. */
HistogramSnapshot takeSnapshot();
- /** It's not safe to use the update interface of this rate */
+ /** It's not safe to use the update interface of this rate. */
Rate getImmutableRate();
@Override
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
index ae20b15ca7..83cbba1776 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
@@ -25,16 +25,16 @@ import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import java.util.Map;
public class IoTDBMetricsUtils {
- private static final MetricConfig metricConfig =
+ private static final MetricConfig METRIC_CONFIG =
MetricConfigDescriptor.getInstance().getMetricConfig();
public static final String DATABASE = "root.__system";
- /** Generate the path of metric by metricInfo */
+ /** Generate the path of metric by metricInfo. */
public static String generatePath(MetricInfo metricInfo) {
return generatePath(metricInfo.getName(), metricInfo.getTags());
}
- /** Generate the path of metric with tags array */
+ /** Generate the path of metric with tags array. */
public static String generatePath(String name, String... tags) {
StringBuilder stringBuilder = generateMetric(name);
for (int i = 0; i < tags.length; i += 2) {
@@ -49,7 +49,7 @@ public class IoTDBMetricsUtils {
return stringBuilder.toString();
}
- /** Generate the path of metric with tags map */
+ /** Generate the path of metric with tags map. */
public static String generatePath(String name, Map<String, String> tags) {
StringBuilder stringBuilder = generateMetric(name);
for (Map.Entry<String, String> entry : tags.entrySet()) {
@@ -64,17 +64,17 @@ public class IoTDBMetricsUtils {
return stringBuilder.toString();
}
- /** Generate the path of metric */
+ /** Generate the path of metric. */
private static StringBuilder generateMetric(String name) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder
.append(DATABASE)
.append(".")
- .append(metricConfig.getIoTDBReporterConfig().getLocation())
+ .append(METRIC_CONFIG.getIotdbReporterConfig().getLocation())
.append(".`")
- .append(metricConfig.getRpcAddress())
+ .append(METRIC_CONFIG.getRpcAddress())
.append(":")
- .append(metricConfig.getRpcPort())
+ .append(METRIC_CONFIG.getRpcPort())
.append("`")
.append(".")
.append("`")
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
index 2a095527cd..1398d05249 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricInfo.java
@@ -35,11 +35,11 @@ public class MetricInfo {
private static final Logger logger = LoggerFactory.getLogger(MetricInfo.class);
private static final Integer PAIR_SIZE = 2;
- /** The name of metric */
+ /** The name of metric. */
private final String name;
- /** The tags of metric */
+ /** The tags of metric. */
private final Map<String, String> tags = new LinkedHashMap<>();
- /** The metaInfo of metric */
+ /** The metaInfo of metric. */
private final MetaInfo metaInfo;
public MetricInfo(MetricType type, String name, String... tags) {
@@ -76,7 +76,7 @@ public class MetricInfo {
return metaInfo;
}
- /** Convert the metric name and tag into pair */
+ /** Convert the metric name and tag into pair. */
public Pair<String, String[]> toStringArray() {
List<String> allNames = new ArrayList<>();
tags.forEach(
@@ -133,9 +133,9 @@ public class MetricInfo {
}
public static class MetaInfo {
- /** The type of metric */
+ /** The type of metric. */
private final MetricType type;
- /** The tag keys of metric */
+ /** The tag keys of metric. */
private final Set<String> tagNames;
public MetaInfo(MetricType type, Set<String> tagNames) {
@@ -143,7 +143,7 @@ public class MetricInfo {
this.tagNames = tagNames;
}
- /** Check whether the keys of tags are same */
+ /** Check whether the keys of tags are same. */
public boolean hasSameKey(String... tags) {
if (tags.length != tagNames.size() * 2) {
return false;
diff --git a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
index 691f2ec285..428eb866d9 100644
--- a/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
+++ b/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
@@ -25,8 +25,8 @@ public enum MetricLevel {
IMPORTANT(2),
CORE(3);
- /** Level of metric service */
- int level;
+ /** Level of metric service. */
+ final int level;
MetricLevel(int level) {
this.level = level;
diff --git a/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java b/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
index df749f2be0..76010eeaa0 100644
--- a/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
+++ b/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
@@ -58,7 +58,7 @@ public class MetricConfigTest {
assertEquals(10, (int) metricConfig.getAsyncCollectPeriodInSecond());
assertEquals(9090, (int) metricConfig.getPrometheusReporterPort());
- MetricConfig.IoTDBReporterConfig reporterConfig = metricConfig.getIoTDBReporterConfig();
+ MetricConfig.IoTDBReporterConfig reporterConfig = metricConfig.getIotdbReporterConfig();
assertEquals("0.0.0.0", reporterConfig.getHost());
assertEquals(6669, (int) reporterConfig.getPort());
assertEquals("user", reporterConfig.getUsername());
@@ -98,7 +98,7 @@ public class MetricConfigTest {
assertEquals(10, (int) metricConfig.getAsyncCollectPeriodInSecond());
assertEquals(9090, (int) metricConfig.getPrometheusReporterPort());
- MetricConfig.IoTDBReporterConfig reporterConfig = metricConfig.getIoTDBReporterConfig();
+ MetricConfig.IoTDBReporterConfig reporterConfig = metricConfig.getIotdbReporterConfig();
assertEquals("0.0.0.0", reporterConfig.getHost());
assertEquals(6669, (int) reporterConfig.getPort());
assertEquals("user", reporterConfig.getUsername());
diff --git a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
index c1d2685c58..6aaf75ca29 100644
--- a/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
+++ b/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
@@ -44,14 +44,15 @@ public class MicrometerJmxReporter implements JmxReporter {
.filter(reporter -> reporter instanceof JmxMeterRegistry)
.collect(Collectors.toSet());
if (meterRegistrySet.size() != 0) {
- LOGGER.warn("Jmx Reporter already start");
+ LOGGER.warn("Micrometer JmxReporter already start!");
return false;
}
Metrics.addRegistry(new JmxMeterRegistry(JmxConfig.DEFAULT, Clock.SYSTEM));
} catch (Exception e) {
- LOGGER.error("Failed to start Micrometer JmxReporter, because {}", e.getMessage());
+ LOGGER.warn("Micrometer JmxReporter failed to start, because ", e);
return false;
}
+ LOGGER.info("Micrometer JmxReporter start!");
return true;
}
@@ -70,9 +71,10 @@ public class MicrometerJmxReporter implements JmxReporter {
}
}
} catch (Exception e) {
- LOGGER.error("Failed to stop Micrometer JmxReporter, because {}", e.getMessage());
+ LOGGER.warn("Micrometer JmxReporter failed to stop, because ", e);
return false;
}
+ LOGGER.info("Micrometer JmxReporter stop!");
return true;
}
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricService.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricService.java
index 5da8cf628d..c8f3cbdeda 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricService.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricService.java
@@ -27,65 +27,67 @@ import org.apache.iotdb.commons.service.ServiceType;
import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.config.ReloadLevel;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
-import org.apache.iotdb.metrics.reporter.iotdb.InternalIoTDBReporter;
-import org.apache.iotdb.metrics.reporter.iotdb.MemoryInternalIoTDBReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalMemoryReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalReporter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class MetricService extends AbstractMetricService implements MetricServiceMBean, IService {
- private static final Logger logger = LoggerFactory.getLogger(MetricService.class);
+ private static final Logger LOGGER = LoggerFactory.getLogger(MetricService.class);
private final String mbeanName =
String.format(
"%s:%s=%s", IoTDBConstant.IOTDB_PACKAGE, IoTDBConstant.JMX_TYPE, getID().getJmxName());
- private MetricService() {}
+ private MetricService() {
+ // empty constructor
+ }
@Override
public void start() throws StartupException {
try {
- logger.info("Start to start metric Service.");
+ LOGGER.info("MetricService start to init.");
JMXService.registerMBean(getInstance(), mbeanName);
startService();
- logger.info("Finish start metric Service");
+ LOGGER.info("MetricService start successfully.");
} catch (Exception e) {
- logger.error("Failed to start {} because: ", this.getID().getName(), e);
+ LOGGER.error("MetricService failed to start {} because: ", this.getID().getName(), e);
throw new StartupException(this.getID().getName(), e.getMessage());
}
}
- /** Restart metric service */
+ /** Restart metric service. */
public void restartService() {
- logger.info("Restart metric service");
+ LOGGER.info("MetricService try to restart.");
stopCoreModule();
internalReporter.clear();
startCoreModule();
for (IMetricSet metricSet : metricSets) {
- logger.info("Restart metricSet: {}", metricSet.getClass().getName());
+ LOGGER.info("MetricService rebind metricSet: {}", metricSet.getClass().getName());
metricSet.unbindFrom(this);
metricSet.bindTo(this);
}
- logger.info("Finish restarting metric service");
+ LOGGER.info("MetricService restart successfully.");
}
@Override
public void stop() {
- logger.info("Stop metric service");
+ LOGGER.info("MetricService try to stop.");
internalReporter.stop();
- internalReporter = new MemoryInternalIoTDBReporter();
+ internalReporter = new IoTDBInternalMemoryReporter();
stopService();
JMXService.deregisterMBean(mbeanName);
- logger.info("Finish stopping metric service");
+ LOGGER.info("MetricService stop successfully.");
}
@Override
- public void reloadInternalReporter(InternalIoTDBReporter internalReporter) {
- logger.info("Reload internal reporter");
+ public void reloadInternalReporter(IoTDBInternalReporter internalReporter) {
+ LOGGER.info("MetricService reload internal reporter.");
internalReporter.addAutoGauge(this.internalReporter.getAllAutoGauge());
this.internalReporter.stop();
this.internalReporter = internalReporter;
startInternalReporter();
- logger.info("Finish reloading internal reporter");
+ LOGGER.info("MetricService reload internal reporter successfully.");
}
@Override
@@ -99,10 +101,10 @@ public class MetricService extends AbstractMetricService implements MetricServic
stopAllReporter();
loadReporter();
startAllReporter();
- logger.info("Finish restart metric reporters.");
+ LOGGER.info("MetricService restart reporters successfully.");
break;
case NOTHING:
- logger.debug("There are nothing change in metric module.");
+ LOGGER.debug("There are nothing change in metric config.");
break;
default:
break;
@@ -115,14 +117,14 @@ public class MetricService extends AbstractMetricService implements MetricServic
return ServiceType.METRIC_SERVICE;
}
- public void updateInternalReporter(InternalIoTDBReporter InternalReporter) {
- this.internalReporter = InternalReporter;
+ public void updateInternalReporter(IoTDBInternalReporter internalReporter) {
+ this.internalReporter = internalReporter;
}
public void startInternalReporter() {
if (!this.internalReporter.start()) {
- logger.error("Failed to start internal reporter");
- this.internalReporter = new MemoryInternalIoTDBReporter();
+ LOGGER.warn("Internal Reporter failed to start!");
+ this.internalReporter = new IoTDBInternalMemoryReporter();
}
}
@@ -134,6 +136,8 @@ public class MetricService extends AbstractMetricService implements MetricServic
private static final MetricService INSTANCE = new MetricService();
- private MetricsServiceHolder() {}
+ private MetricsServiceHolder() {
+ // empty constructor
+ }
}
}
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricServiceMBean.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricServiceMBean.java
index 6b8f329a82..13dab9c235 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricServiceMBean.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/MetricServiceMBean.java
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.iotdb.commons.service.metric;
import org.apache.iotdb.commons.exception.StartupException;
diff --git a/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Operation.java b/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Operation.java
index fa6570e2eb..d4a8651e5e 100644
--- a/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Operation.java
+++ b/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Operation.java
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.iotdb.commons.service.metric.enums;
public enum Operation {
diff --git a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
index 377af01153..2c897229ab 100644
--- a/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
+++ b/server/src/main/java/org/apache/iotdb/db/conf/IoTDBDescriptor.java
@@ -39,15 +39,15 @@ import org.apache.iotdb.db.engine.compaction.constant.InnerUnsequenceCompactionS
import org.apache.iotdb.db.exception.query.QueryProcessException;
import org.apache.iotdb.db.qp.utils.DateTimeUtils;
import org.apache.iotdb.db.rescon.SystemInfo;
-import org.apache.iotdb.db.service.metrics.IoTDBInternalReporter;
+import org.apache.iotdb.db.service.metrics.IoTDBInternalLocalReporter;
import org.apache.iotdb.db.utils.datastructure.TVListSortAlgorithm;
import org.apache.iotdb.db.wal.WALManager;
import org.apache.iotdb.db.wal.utils.WALMode;
import org.apache.iotdb.external.api.IPropertiesLoader;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.config.ReloadLevel;
-import org.apache.iotdb.metrics.reporter.iotdb.InternalIoTDBReporter;
-import org.apache.iotdb.metrics.reporter.iotdb.MemoryInternalIoTDBReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalMemoryReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalReporter;
import org.apache.iotdb.metrics.utils.InternalReporterType;
import org.apache.iotdb.rpc.RpcTransportFactory;
import org.apache.iotdb.tsfile.common.conf.TSFileDescriptor;
@@ -1515,12 +1515,12 @@ public class IoTDBDescriptor {
ReloadLevel reloadLevel = MetricConfigDescriptor.getInstance().loadHotProps(commonProperties);
logger.info("Reload metric service in level {}", reloadLevel);
if (reloadLevel == ReloadLevel.RESTART_INTERNAL_REPORTER) {
- InternalIoTDBReporter internalReporter;
+ IoTDBInternalReporter internalReporter;
if (MetricConfigDescriptor.getInstance().getMetricConfig().getInternalReportType()
== InternalReporterType.IOTDB) {
- internalReporter = new IoTDBInternalReporter();
+ internalReporter = new IoTDBInternalLocalReporter();
} else {
- internalReporter = new MemoryInternalIoTDBReporter();
+ internalReporter = new IoTDBInternalMemoryReporter();
}
MetricService.getInstance().reloadInternalReporter(internalReporter);
} else {
diff --git a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
index b8be4a0fc0..823201affe 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/DataNode.java
@@ -71,7 +71,7 @@ import org.apache.iotdb.db.protocol.rest.RestService;
import org.apache.iotdb.db.service.basic.ServiceProvider;
import org.apache.iotdb.db.service.basic.StandaloneServiceProvider;
import org.apache.iotdb.db.service.metrics.DataNodeMetricsHelper;
-import org.apache.iotdb.db.service.metrics.IoTDBInternalReporter;
+import org.apache.iotdb.db.service.metrics.IoTDBInternalLocalReporter;
import org.apache.iotdb.db.service.thrift.impl.ClientRPCServiceImpl;
import org.apache.iotdb.db.service.thrift.impl.DataNodeRegionManager;
import org.apache.iotdb.db.sync.SyncService;
@@ -562,7 +562,7 @@ public class DataNode implements DataNodeMBean {
.getMetricConfig()
.getInternalReportType()
.equals(InternalReporterType.IOTDB)) {
- MetricService.getInstance().updateInternalReporter(new IoTDBInternalReporter());
+ MetricService.getInstance().updateInternalReporter(new IoTDBInternalLocalReporter());
}
MetricService.getInstance().startInternalReporter();
// bind predefined metrics
diff --git a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
index 63e9bc6f4b..c18b6d2fae 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/IoTDB.java
@@ -43,10 +43,10 @@ import org.apache.iotdb.db.rescon.SystemInfo;
import org.apache.iotdb.db.service.basic.ServiceProvider;
import org.apache.iotdb.db.service.basic.StandaloneServiceProvider;
import org.apache.iotdb.db.service.metrics.DataNodeMetricsHelper;
-import org.apache.iotdb.db.service.metrics.IoTDBInternalReporter;
import org.apache.iotdb.db.sync.SyncService;
import org.apache.iotdb.db.wal.WALManager;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalMemoryReporter;
import org.apache.iotdb.metrics.utils.InternalReporterType;
import org.slf4j.Logger;
@@ -183,7 +183,7 @@ public class IoTDB implements IoTDBMBean {
.getMetricConfig()
.getInternalReportType()
.equals(InternalReporterType.IOTDB)) {
- MetricService.getInstance().updateInternalReporter(new IoTDBInternalReporter());
+ MetricService.getInstance().updateInternalReporter(new IoTDBInternalMemoryReporter());
}
MetricService.getInstance().startInternalReporter();
// bind predefined metrics
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
index e36b3b653e..1674b22eb4 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
@@ -24,7 +24,7 @@ import org.apache.iotdb.metrics.metricsets.jvm.JvmMetrics;
import org.apache.iotdb.metrics.metricsets.logback.LogbackMetrics;
public class DataNodeMetricsHelper {
- /** Bind predefined metric sets into DataNode */
+ /** Bind predefined metric sets into DataNode. */
public static void bind() {
MetricService.getInstance().addMetricSet(new JvmMetrics());
MetricService.getInstance().addMetricSet(new LogbackMetrics());
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java
index b6436d70b7..f9d4329440 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/FileMetrics.java
@@ -30,16 +30,12 @@ import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.util.concurrent.Executors;
import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
public class FileMetrics implements IMetricSet {
- private static final Logger logger = LoggerFactory.getLogger(FileMetrics.class);
private Future<?> currentServiceFuture;
private final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
private long walFileTotalSize = 0L;
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalReporter.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
similarity index 84%
rename from server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalReporter.java
rename to server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
index cac9714802..ce21ce89fd 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalReporter.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/IoTDBInternalLocalReporter.java
@@ -37,7 +37,7 @@ import org.apache.iotdb.db.mpp.plan.parser.StatementGenerator;
import org.apache.iotdb.db.mpp.plan.statement.Statement;
import org.apache.iotdb.db.query.control.SessionManager;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
-import org.apache.iotdb.metrics.reporter.iotdb.InternalIoTDBReporter;
+import org.apache.iotdb.metrics.reporter.iotdb.IoTDBInternalReporter;
import org.apache.iotdb.metrics.utils.InternalReporterType;
import org.apache.iotdb.metrics.utils.ReporterType;
import org.apache.iotdb.rpc.IoTDBConnectionException;
@@ -59,26 +59,26 @@ import java.util.concurrent.Future;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.TimeUnit;
-public class IoTDBInternalReporter extends InternalIoTDBReporter {
- private static final Logger LOGGER = LoggerFactory.getLogger(IoTDBInternalReporter.class);
+public class IoTDBInternalLocalReporter extends IoTDBInternalReporter {
+ private static final Logger LOGGER = LoggerFactory.getLogger(IoTDBInternalLocalReporter.class);
private static final IoTDBConfig config = IoTDBDescriptor.getInstance().getConfig();
private static final SessionManager SESSION_MANAGER = SessionManager.getInstance();
private static final Coordinator COORDINATOR = Coordinator.getInstance();
- private final SessionInfo SESSION_INFO;
- private final IPartitionFetcher PARTITION_FETCHER;
- private final ISchemaFetcher SCHEMA_FETCHER;
+ private final SessionInfo sessionInfo;
+ private final IPartitionFetcher partitionFetcher;
+ private final ISchemaFetcher schemaFetcher;
private Future<?> currentServiceFuture;
private final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
- public IoTDBInternalReporter() {
+ public IoTDBInternalLocalReporter() {
if (config.isClusterMode()) {
- PARTITION_FETCHER = ClusterPartitionFetcher.getInstance();
- SCHEMA_FETCHER = ClusterSchemaFetcher.getInstance();
+ partitionFetcher = ClusterPartitionFetcher.getInstance();
+ schemaFetcher = ClusterSchemaFetcher.getInstance();
} else {
- PARTITION_FETCHER = StandalonePartitionFetcher.getInstance();
- SCHEMA_FETCHER = StandaloneSchemaFetcher.getInstance();
+ partitionFetcher = StandalonePartitionFetcher.getInstance();
+ schemaFetcher = StandaloneSchemaFetcher.getInstance();
}
- SESSION_INFO = new SessionInfo(0, "root", ZoneId.systemDefault().getId());
+ sessionInfo = new SessionInfo(0, "root", ZoneId.systemDefault().getId());
}
@Override
@@ -101,6 +101,7 @@ public class IoTDBInternalReporter extends InternalIoTDBReporter {
1,
MetricConfigDescriptor.getInstance().getMetricConfig().getAsyncCollectPeriodInSecond(),
TimeUnit.SECONDS);
+ LOGGER.info("IoTDBInternalReporter start!");
return true;
}
@@ -111,6 +112,7 @@ public class IoTDBInternalReporter extends InternalIoTDBReporter {
currentServiceFuture = null;
}
clear();
+ LOGGER.info("IoTDBInternalReporter stop!");
return true;
}
@@ -144,14 +146,15 @@ public class IoTDBInternalReporter extends InternalIoTDBReporter {
Statement s = StatementGenerator.createStatement(request);
final long queryId = SESSION_MANAGER.requestQueryId();
ExecutionResult result =
- COORDINATOR.execute(s, queryId, SESSION_INFO, "", PARTITION_FETCHER, SCHEMA_FETCHER);
+ COORDINATOR.execute(s, queryId, sessionInfo, "", partitionFetcher, schemaFetcher);
if (result.status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
LOGGER.error("Failed to update the value of metric with status {}", result.status);
}
} catch (IoTDBConnectionException e1) {
- LOGGER.error("Failed to update the value of metric because of unknown type");
+ LOGGER.error(
+ "Failed to update the value of metric because of connection failure, because ", e1);
} catch (IllegalPathException | QueryProcessException e2) {
- LOGGER.error("Failed to update the value of metric because of internal error");
+ LOGGER.error("Failed to update the value of metric because of internal error, because ", e2);
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java
index fe4d245f62..190ae7e978 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java
@@ -31,18 +31,18 @@ import com.sun.management.OperatingSystemMXBean;
import java.lang.management.ManagementFactory;
public class ProcessMetrics implements IMetricSet {
- private OperatingSystemMXBean sunOsMXBean;
- private Runtime runtime;
+ private final OperatingSystemMXBean sunOsMxBean;
+ private final Runtime runtime;
public ProcessMetrics() {
- sunOsMXBean =
+ sunOsMxBean =
(com.sun.management.OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
runtime = Runtime.getRuntime();
}
@Override
public void bindTo(AbstractMetricService metricService) {
- collectProcessCPUInfo(metricService);
+ collectProcessCpuInfo(metricService);
collectProcessMemInfo(metricService);
collectProcessStatusInfo(metricService);
collectThreadInfo(metricService);
@@ -50,31 +50,31 @@ public class ProcessMetrics implements IMetricSet {
@Override
public void unbindFrom(AbstractMetricService metricService) {
- removeProcessCPUInfo(metricService);
+ removeProcessCpuInfo(metricService);
removeProcessMemInfo(metricService);
removeProcessStatusInfo(metricService);
removeThreadInfo(metricService);
}
- private void collectProcessCPUInfo(AbstractMetricService metricService) {
+ private void collectProcessCpuInfo(AbstractMetricService metricService) {
metricService.createAutoGauge(
Metric.PROCESS_CPU_LOAD.toString(),
MetricLevel.CORE,
- sunOsMXBean,
- a -> (long) (sunOsMXBean.getProcessCpuLoad() * 100),
+ sunOsMxBean,
+ a -> (long) (sunOsMxBean.getProcessCpuLoad() * 100),
Tag.NAME.toString(),
"process");
metricService.createAutoGauge(
Metric.PROCESS_CPU_TIME.toString(),
MetricLevel.CORE,
- sunOsMXBean,
+ sunOsMxBean,
com.sun.management.OperatingSystemMXBean::getProcessCpuTime,
Tag.NAME.toString(),
"process");
}
- private void removeProcessCPUInfo(AbstractMetricService metricService) {
+ private void removeProcessCpuInfo(AbstractMetricService metricService) {
metricService.remove(
MetricType.AUTO_GAUGE, Metric.PROCESS_CPU_LOAD.toString(), Tag.NAME.toString(), "process");
@@ -178,17 +178,16 @@ public class ProcessMetrics implements IMetricSet {
}
private int getThreadsCount() {
- ThreadGroup parentThread;
- for (parentThread = Thread.currentThread().getThreadGroup();
- parentThread.getParent() != null;
- parentThread = parentThread.getParent()) {}
-
+ ThreadGroup parentThread = Thread.currentThread().getThreadGroup();
+ while (parentThread.getParent() != null) {
+ parentThread = parentThread.getParent();
+ }
return parentThread.activeCount();
}
private double getProcessMemoryRatio() {
long processUsedMemory = getProcessUsedMemory();
- long totalPhysicalMemorySize = sunOsMXBean.getTotalPhysicalMemorySize();
+ long totalPhysicalMemorySize = sunOsMxBean.getTotalPhysicalMemorySize();
return (double) processUsedMemory / (double) totalPhysicalMemorySize * 100;
}
}
diff --git a/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java b/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
index 7bb2b77a8a..7d14b5d9b3 100644
--- a/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
+++ b/server/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.iotdb.db.service.metrics;
import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil;
@@ -47,17 +48,17 @@ import java.util.concurrent.TimeUnit;
public class SystemMetrics implements IMetricSet {
private static final Logger logger = LoggerFactory.getLogger(SystemMetrics.class);
- private com.sun.management.OperatingSystemMXBean osMXBean;
+ private final com.sun.management.OperatingSystemMXBean osMxBean;
private Future<?> currentServiceFuture;
private final ScheduledExecutorService service = Executors.newSingleThreadScheduledExecutor();
private final Set<FileStore> fileStores = new HashSet<>();
- private boolean isDataNode = false;
+ private final boolean isDataNode;
private long systemDiskTotalSpace = 0L;
private long systemDiskFreeSpace = 0L;
public SystemMetrics(boolean isDataNode) {
this.isDataNode = isDataNode;
- this.osMXBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
+ this.osMxBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
}
@Override
@@ -99,15 +100,15 @@ public class SystemMetrics implements IMetricSet {
metricService.createAutoGauge(
Metric.SYS_CPU_LOAD.toString(),
MetricLevel.CORE,
- osMXBean,
- a -> (long) (osMXBean.getSystemCpuLoad() * 100),
+ osMxBean,
+ a -> (long) (osMxBean.getSystemCpuLoad() * 100),
Tag.NAME.toString(),
"system");
metricService
.getOrCreateGauge(
Metric.SYS_CPU_CORES.toString(), MetricLevel.CORE, Tag.NAME.toString(), "system")
- .set(osMXBean.getAvailableProcessors());
+ .set(osMxBean.getAvailableProcessors());
}
private void removeSystemCpuInfo(AbstractMetricService metricService) {
@@ -125,33 +126,33 @@ public class SystemMetrics implements IMetricSet {
MetricLevel.CORE,
Tag.NAME.toString(),
"system")
- .set(osMXBean.getTotalPhysicalMemorySize());
+ .set(osMxBean.getTotalPhysicalMemorySize());
metricService.createAutoGauge(
Metric.SYS_FREE_PHYSICAL_MEMORY_SIZE.toString(),
MetricLevel.CORE,
- osMXBean,
- a -> osMXBean.getFreePhysicalMemorySize(),
+ osMxBean,
+ a -> osMxBean.getFreePhysicalMemorySize(),
Tag.NAME.toString(),
"system");
metricService.createAutoGauge(
Metric.SYS_TOTAL_SWAP_SPACE_SIZE.toString(),
MetricLevel.CORE,
- osMXBean,
- a -> osMXBean.getTotalSwapSpaceSize(),
+ osMxBean,
+ a -> osMxBean.getTotalSwapSpaceSize(),
Tag.NAME.toString(),
"system");
metricService.createAutoGauge(
Metric.SYS_FREE_SWAP_SPACE_SIZE.toString(),
MetricLevel.CORE,
- osMXBean,
- a -> osMXBean.getFreeSwapSpaceSize(),
+ osMxBean,
+ a -> osMxBean.getFreeSwapSpaceSize(),
Tag.NAME.toString(),
"system");
metricService.createAutoGauge(
Metric.SYS_COMMITTED_VM_SIZE.toString(),
MetricLevel.CORE,
- osMXBean,
- a -> osMXBean.getCommittedVirtualMemorySize(),
+ osMxBean,
+ a -> osMxBean.getCommittedVirtualMemorySize(),
Tag.NAME.toString(),
"system");
}
@@ -255,15 +256,7 @@ public class SystemMetrics implements IMetricSet {
return systemDiskTotalSpace;
}
- public void setSystemDiskTotalSpace(long systemDiskTotalSpace) {
- this.systemDiskTotalSpace = systemDiskTotalSpace;
- }
-
public long getSystemDiskFreeSpace() {
return systemDiskFreeSpace;
}
-
- public void setSystemDiskFreeSpace(long systemDiskFreeSpace) {
- this.systemDiskFreeSpace = systemDiskFreeSpace;
- }
}