This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/master by this push:
new d786774701c [IOTDB-5926] Fix Metric Module Code Smell (#10365)
d786774701c is described below
commit d786774701c4644eb426b4fa57ec5363ab1932b5
Author: ZhangHongYin <[email protected]>
AuthorDate: Thu Jun 29 12:42:01 2023 +0800
[IOTDB-5926] Fix Metric Module Code Smell (#10365)
---
.../dropwizard/DropwizardMetricManager.java | 21 +++++++++++
.../dropwizard/DropwizardMetricNameTool.java | 9 +++--
.../type/DropwizardHistogramSnapshot.java | 2 +-
.../metrics/dropwizard/type/DropwizardRate.java | 2 +-
.../iotdb/metrics/AbstractMetricManager.java | 21 +++++------
.../iotdb/metrics/AbstractMetricService.java | 6 ++--
.../apache/iotdb/metrics/config/MetricConfig.java | 18 ++++++++--
.../metrics/config/MetricConfigDescriptor.java | 7 ++--
.../iotdb/metrics/metricsets/UpTimeMetrics.java | 2 +-
.../iotdb/metrics/metricsets/jvm/JvmGcMetrics.java | 42 ++++++++--------------
.../metrics/metricsets/jvm/JvmMemoryMetrics.java | 6 ++--
.../metrics/metricsets/jvm/JvmThreadMetrics.java | 6 ++--
.../iotdb/metrics/metricsets/jvm/JvmUtils.java | 5 +++
.../metrics/metricsets/logback/LogbackMetrics.java | 12 ++++---
.../reporter/iotdb/IoTDBSessionReporter.java | 5 +--
.../iotdb/metrics/utils/IoTDBMetricsUtils.java | 2 +-
.../iotdb/metrics/config/MetricConfigTest.java | 5 +--
.../micrometer/MicrometerMetricManager.java | 21 +++++++++++
.../{JmxConfig.java => MicrometerJmxConfig.java} | 4 +--
.../micrometer/reporter/MicrometerJmxReporter.java | 8 ++---
.../type/MicrometerTimerHistogramSnapshot.java | 1 +
21 files changed, 129 insertions(+), 76 deletions(-)
diff --git
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java
index 5fa25f3a452..6eb42770d4b 100644
---
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java
+++
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricManager.java
@@ -38,6 +38,7 @@ import org.apache.iotdb.metrics.utils.MetricType;
import com.codahale.metrics.MetricFilter;
import com.codahale.metrics.MetricRegistry;
+import java.util.Objects;
import java.util.function.ToDoubleFunction;
/**
@@ -105,4 +106,24 @@ public class DropwizardMetricManager extends
AbstractMetricManager {
metricRegistry.removeMatching(MetricFilter.ALL);
return true;
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ if (!super.equals(o)) {
+ return false;
+ }
+ DropwizardMetricManager that = (DropwizardMetricManager) o;
+ return Objects.equals(metricRegistry, that.metricRegistry);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), metricRegistry);
+ }
}
diff --git
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
index d8d62b978eb..a3c0bacff21 100644
---
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
+++
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/DropwizardMetricNameTool.java
@@ -28,6 +28,10 @@ import java.util.stream.Collectors;
public class DropwizardMetricNameTool {
private static final String TAG_SEPARATOR = ".";
+ private DropwizardMetricNameTool() {
+ // util class
+ }
+
/**
* Transform flat string and metric type to metricInfo.
*
@@ -62,7 +66,7 @@ public class DropwizardMetricNameTool {
public static String toFlatString(MetricInfo metricInfo) {
String name = metricInfo.getName();
Map<String, String> tags = metricInfo.getTags();
- return name.replaceAll("\\{|\\}", "")
+ return name.replace("{", "").replace("}", "")
+ "{"
+ tags.entrySet().stream()
.map(
@@ -71,7 +75,8 @@ public class DropwizardMetricNameTool {
+ TAG_SEPARATOR
+ t.getValue().replace(TAG_SEPARATOR, ""))
.collect(Collectors.joining(TAG_SEPARATOR))
- .replaceAll("\\{|\\}", "")
+ .replace("{", "")
+ .replace("}", "")
+ "}";
}
}
diff --git
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardHistogramSnapshot.java
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardHistogramSnapshot.java
index 732c3321b85..4e7487293dd 100644
---
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardHistogramSnapshot.java
+++
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardHistogramSnapshot.java
@@ -48,7 +48,7 @@ public class DropwizardHistogramSnapshot implements
HistogramSnapshot {
@Override
public double getMax() {
- return (double) snapshot.getMax();
+ return snapshot.getMax();
}
@Override
diff --git
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardRate.java
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardRate.java
index b58b886da65..fbf3c7d40dc 100644
---
a/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardRate.java
+++
b/iotdb-core/metrics/dropwizard-metrics/src/main/java/org/apache/iotdb/metrics/dropwizard/type/DropwizardRate.java
@@ -25,7 +25,7 @@ import com.codahale.metrics.Meter;
public class DropwizardRate implements Rate {
Meter meter;
- /** read-only meter */
+ /** read-only meter. */
com.codahale.metrics.Timer timer;
public DropwizardRate(Meter meter) {
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
index e077598ba30..66c4fae54d1 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricManager.java
@@ -46,12 +46,13 @@ import java.util.function.ToDoubleFunction;
public abstract class AbstractMetricManager {
protected static final MetricConfig METRIC_CONFIG =
MetricConfigDescriptor.getInstance().getMetricConfig();
+ private static final String ALREADY_EXISTS = " is already used for a
different type of name";
/** The map from metric name to metric metaInfo. */
protected Map<String, MetricInfo.MetaInfo> nameToMetaInfo;
/** The map from metricInfo to metric. */
protected Map<MetricInfo, IMetric> metrics;
- public AbstractMetricManager() {
+ protected AbstractMetricManager() {
nameToMetaInfo = new ConcurrentHashMap<>();
metrics = new ConcurrentHashMap<>();
}
@@ -80,8 +81,7 @@ public abstract class AbstractMetricManager {
if (metric instanceof Counter) {
return (Counter) metric;
}
- throw new IllegalArgumentException(
- metricInfo + " is already used for a different type of name");
+ throw new IllegalArgumentException(metricInfo + ALREADY_EXISTS);
}
protected abstract Counter createCounter(MetricInfo metricInfo);
@@ -138,8 +138,7 @@ public abstract class AbstractMetricManager {
} else if (metric instanceof AutoGauge) {
return (AutoGauge) metric;
}
- throw new IllegalArgumentException(
- metricInfo + " is already used for a different type of name");
+ throw new IllegalArgumentException(metricInfo + ALREADY_EXISTS);
}
/**
@@ -166,8 +165,7 @@ public abstract class AbstractMetricManager {
if (metric instanceof Gauge) {
return (Gauge) metric;
}
- throw new IllegalArgumentException(
- metricInfo + " is already used for a different type of name");
+ throw new IllegalArgumentException(metricInfo + ALREADY_EXISTS);
}
/**
@@ -201,8 +199,7 @@ public abstract class AbstractMetricManager {
if (metric instanceof Rate) {
return (Rate) metric;
}
- throw new IllegalArgumentException(
- metricInfo + " is already used for a different type of name");
+ throw new IllegalArgumentException(metricInfo + ALREADY_EXISTS);
}
/**
@@ -236,8 +233,7 @@ public abstract class AbstractMetricManager {
if (metric instanceof Histogram) {
return (Histogram) metric;
}
- throw new IllegalArgumentException(
- metricInfo + " is already used for a different type of name");
+ throw new IllegalArgumentException(metricInfo + ALREADY_EXISTS);
}
/**
@@ -271,8 +267,7 @@ public abstract class AbstractMetricManager {
if (metric instanceof Timer) {
return (Timer) metric;
}
- throw new IllegalArgumentException(
- metricInfo + " is already used for a different type of name");
+ throw new IllegalArgumentException(metricInfo + ALREADY_EXISTS);
}
/**
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
index 31e1e352ed1..5ac5a3737f2 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/AbstractMetricService.java
@@ -70,7 +70,7 @@ public abstract class AbstractMetricService {
/** The list of metric sets. */
protected Set<IMetricSet> metricSets = new HashSet<>();
- public AbstractMetricService() {
+ protected AbstractMetricService() {
// empty constructor
}
@@ -169,7 +169,7 @@ public abstract class AbstractMetricService {
reporter = new IoTDBSessionReporter(metricManager);
break;
default:
- continue;
+ break;
}
if (reporter == null) {
LOGGER.warn("Failed to load reporter which type is {}", reporterType);
@@ -324,7 +324,7 @@ public abstract class AbstractMetricService {
metricManager.count(delta, metric, metricLevel, tags), metric, tags);
}
- /** Gauge value with internal report */
+ /** Gauge value with internal report. */
public void gaugeWithInternalReportAsync(
long value, String metric, MetricLevel metricLevel, String... tags) {
internalReporter.writeMetricToIoTDB(
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
index 8be699eb106..5ca7d7a4324 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfig.java
@@ -134,7 +134,7 @@ public class MetricConfig {
this.prometheusReporterPort = prometheusReporterPort;
}
- public IoTDBReporterConfig getIotdbReporterConfig() {
+ public IoTDBReporterConfig getIoTDBReporterConfig() {
return iotdbReporterConfig;
}
@@ -187,7 +187,7 @@ public class MetricConfig {
prometheusReporterPort = newMetricConfig.getPrometheusReporterPort();
internalReporterType = newMetricConfig.getInternalReportType();
- iotdbReporterConfig.copy(newMetricConfig.getIotdbReporterConfig());
+ iotdbReporterConfig.copy(newMetricConfig.getIoTDBReporterConfig());
}
@Override
@@ -201,10 +201,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());
}
+ @Override
+ public int hashCode() {
+ return Objects.hash(
+ metricFrameType,
+ metricReporterList,
+ metricLevel,
+ asyncCollectPeriodInSecond,
+ prometheusReporterPort,
+ iotdbReporterConfig,
+ internalReporterType);
+ }
+
public static class IoTDBReporterConfig {
/** The host of iotdb that store metric value. */
private String host = "127.0.0.1";
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
index 9125ca3683b..9da5759930b 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/config/MetricConfigDescriptor.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.metrics.config;
+import org.apache.iotdb.metrics.config.MetricConfig.IoTDBReporterConfig;
import org.apache.iotdb.metrics.utils.InternalReporterType;
import org.apache.iotdb.metrics.utils.MetricFrameType;
import org.apache.iotdb.metrics.utils.MetricLevel;
@@ -30,10 +31,10 @@ import java.util.stream.Collectors;
/** The utils class to load properties. */
public class MetricConfigDescriptor {
/** The metric config of metric service. */
- private final MetricConfig metricConfig;
+ private static final MetricConfig metricConfig = new MetricConfig();
private MetricConfigDescriptor() {
- metricConfig = new MetricConfig();
+ // empty constructor
}
/** Load properties into metric config. */
@@ -110,7 +111,7 @@ public class MetricConfigDescriptor {
String.valueOf(loadConfig.getPrometheusReporterPort()),
properties)));
- MetricConfig.IoTDBReporterConfig reporterConfig =
loadConfig.getIotdbReporterConfig();
+ IoTDBReporterConfig reporterConfig = loadConfig.getIoTDBReporterConfig();
reporterConfig.setHost(
getProperty("metric_iotdb_reporter_host", reporterConfig.getHost(),
properties));
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/UpTimeMetrics.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/UpTimeMetrics.java
index 2955723250e..0f442100413 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/UpTimeMetrics.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/UpTimeMetrics.java
@@ -34,7 +34,7 @@ public class UpTimeMetrics implements IMetricSet {
"up_time",
MetricLevel.CORE,
metricConfig,
- (config) -> System.nanoTime() - config.getUpTimeInNs());
+ config -> System.nanoTime() - config.getUpTimeInNs());
}
@Override
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
index 857fc2ecfaa..77264c868a9 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmGcMetrics.java
@@ -44,7 +44,6 @@ import java.lang.management.MemoryUsage;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import java.util.Optional;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicLong;
@@ -255,7 +254,8 @@ public class JvmGcMetrics implements IMetricSet,
AutoCloseable {
private boolean preCheck() {
if (ManagementFactory.getMemoryPoolMXBeans().isEmpty()) {
logger.warn(
- "GC notifications will not be available because MemoryPoolMXBeans
are not provided by the JVM");
+ "GC notifications will not be available because MemoryPoolMXBeans "
+ + "are not provided by the JVM");
return false;
}
@@ -264,7 +264,7 @@ public class JvmGcMetrics implements IMetricSet,
AutoCloseable {
"com.sun.management.GarbageCollectionNotificationInfo",
false,
MemoryPoolMXBean.class.getClassLoader());
- } catch (Throwable e) {
+ } catch (Exception e) {
// We are operating in a JVM without access to this level of detail
logger.warn(
"GC notifications will not be available because "
@@ -299,32 +299,24 @@ public class JvmGcMetrics implements IMetricSet,
AutoCloseable {
YOUNG,
UNKNOWN;
- private static Map<String, GcGenerationAge> knownCollectors =
- new HashMap<String, GcGenerationAge>() {
- {
- put("ConcurrentMarkSweep", OLD);
- put("Copy", YOUNG);
- put("G1 Old Generation", OLD);
- put("G1 Young Generation", YOUNG);
- put("MarkSweepCompact", OLD);
- put("PS MarkSweep", OLD);
- put("PS Scavenge", YOUNG);
- put("ParNew", YOUNG);
- }
- };
+ private static Map<String, GcGenerationAge> knownCollectors = new
HashMap<>();
+
+ static {
+ knownCollectors.put("ConcurrentMarkSweep", OLD);
+ knownCollectors.put("Copy", YOUNG);
+ knownCollectors.put("G1 Old Generation", OLD);
+ knownCollectors.put("G1 Young Generation", YOUNG);
+ knownCollectors.put("MarkSweepCompact", OLD);
+ knownCollectors.put("PS MarkSweep", OLD);
+ knownCollectors.put("PS Scavenge", YOUNG);
+ knownCollectors.put("ParNew", YOUNG);
+ }
static GcGenerationAge fromName(String name) {
return knownCollectors.getOrDefault(name, UNKNOWN);
}
}
- private static Optional<MemoryPoolMXBean> getLongLivedHeapPool() {
- return
ManagementFactory.getPlatformMXBeans(MemoryPoolMXBean.class).stream()
- .filter(JvmGcMetrics::isHeap)
- .filter(mem -> isOldGenPool(mem.getName()) ||
isNonGenerationalHeapPool(mem.getName()))
- .findAny();
- }
-
private static boolean isConcurrentPhase(String cause, String name) {
return "No GC".equals(cause) || "Shenandoah Cycles".equals(name);
}
@@ -340,8 +332,4 @@ public class JvmGcMetrics implements IMetricSet,
AutoCloseable {
private static boolean isNonGenerationalHeapPool(String name) {
return "Shenandoah".equals(name) || "ZHeap".equals(name);
}
-
- private static boolean isHeap(MemoryPoolMXBean memoryPoolBean) {
- return MemoryType.HEAP.equals(memoryPoolBean.getType());
- }
}
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMemoryMetrics.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMemoryMetrics.java
index efef8aae98f..bf23121dfaa 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMemoryMetrics.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmMemoryMetrics.java
@@ -69,7 +69,7 @@ public class JvmMemoryMetrics implements IMetricSet {
"jvm_memory_used_bytes",
MetricLevel.CORE,
memoryPoolBean,
- (mem) -> JvmUtils.getUsageValue(mem, MemoryUsage::getUsed),
+ mem -> JvmUtils.getUsageValue(mem, MemoryUsage::getUsed),
"id",
memoryPoolBean.getName(),
"area",
@@ -79,7 +79,7 @@ public class JvmMemoryMetrics implements IMetricSet {
"jvm_memory_committed_bytes",
MetricLevel.CORE,
memoryPoolBean,
- (mem) -> JvmUtils.getUsageValue(mem, MemoryUsage::getCommitted),
+ mem -> JvmUtils.getUsageValue(mem, MemoryUsage::getCommitted),
"id",
memoryPoolBean.getName(),
"area",
@@ -89,7 +89,7 @@ public class JvmMemoryMetrics implements IMetricSet {
"jvm_memory_max_bytes",
MetricLevel.CORE,
memoryPoolBean,
- (mem) -> JvmUtils.getUsageValue(mem, MemoryUsage::getMax),
+ mem -> JvmUtils.getUsageValue(mem, MemoryUsage::getMax),
"id",
memoryPoolBean.getName(),
"area",
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
index 6a6643fbf7e..1dbc5600cc9 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmThreadMetrics.java
@@ -62,11 +62,11 @@ public class JvmThreadMetrics implements IMetricSet {
"jvm_threads_states_threads",
MetricLevel.CORE,
threadBean,
- (bean) -> getThreadStateCount(bean, state),
+ bean -> getThreadStateCount(bean, state),
"state",
getStateTagValue(state));
}
- } catch (Error error) {
+ } catch (Exception exception) {
// An error will be thrown for unsupported operations
// e.g. SubstrateVM does not support getAllThreadIds
}
@@ -86,7 +86,7 @@ public class JvmThreadMetrics implements IMetricSet {
metricService.remove(
MetricType.AUTO_GAUGE, "jvm_threads_states_threads", "state",
getStateTagValue(state));
}
- } catch (Error error) {
+ } catch (Exception exception) {
// An error will be thrown for unsupported operations
// e.g. SubstrateVM does not support getAllThreadIds
}
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
index 4455e2d61e7..8b91e01ce53 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmUtils.java
@@ -24,6 +24,11 @@ import java.lang.management.MemoryUsage;
import java.util.function.ToLongFunction;
public class JvmUtils {
+
+ private JvmUtils() {
+ // util class
+ }
+
static double getUsageValue(
MemoryPoolMXBean memoryPoolMxBean, ToLongFunction<MemoryUsage> getter) {
MemoryUsage usage = getUsage(memoryPoolMxBean);
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
index 852ad6c28b1..e7766e944f2 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/logback/LogbackMetrics.java
@@ -35,6 +35,8 @@ import java.util.Map;
/** This file is modified from
io.micrometer.core.instrument.binder.logging.LogbackMetrics */
public class LogbackMetrics implements IMetricSet {
private static final org.slf4j.Logger logger =
LoggerFactory.getLogger(LogbackMetrics.class);
+ private static final String LEVEL = "level";
+ private static final String METRIC_NAME = "logback_events";
static ThreadLocal<Boolean> ignoreMetrics = new ThreadLocal<>();
private final LoggerContext loggerContext = (LoggerContext)
LoggerFactory.getILoggerFactory();
private final Map<AbstractMetricService, MetricsTurboFilter>
metricsTurboFilters =
@@ -91,11 +93,11 @@ public class LogbackMetrics implements IMetricSet {
for (MetricsTurboFilter addMetricsTurboFilter :
metricsTurboFilters.values()) {
loggerContext.getTurboFilterList().remove(addMetricsTurboFilter);
}
- metricService.remove(MetricType.COUNTER, "logback_events", "level",
"error");
- metricService.remove(MetricType.COUNTER, "logback_events", "level",
"warn");
- metricService.remove(MetricType.COUNTER, "logback_events", "level",
"info");
- metricService.remove(MetricType.COUNTER, "logback_events", "level",
"debug");
- metricService.remove(MetricType.COUNTER, "logback_events", "level",
"trace");
+ metricService.remove(MetricType.COUNTER, METRIC_NAME, LEVEL, "error");
+ metricService.remove(MetricType.COUNTER, METRIC_NAME, LEVEL, "warn");
+ metricService.remove(MetricType.COUNTER, METRIC_NAME, LEVEL, "info");
+ metricService.remove(MetricType.COUNTER, METRIC_NAME, LEVEL, "debug");
+ metricService.remove(MetricType.COUNTER, METRIC_NAME, LEVEL, "trace");
}
} catch (Exception e) {
logger.warn("Failed to remove logBackMetrics, because ", e);
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
index af5a0529f78..a90fde3ca00 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/reporter/iotdb/IoTDBSessionReporter.java
@@ -22,6 +22,7 @@ package org.apache.iotdb.metrics.reporter.iotdb;
import org.apache.iotdb.isession.pool.SessionDataSetWrapper;
import org.apache.iotdb.metrics.AbstractMetricManager;
import org.apache.iotdb.metrics.config.MetricConfig;
+import org.apache.iotdb.metrics.config.MetricConfig.IoTDBReporterConfig;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.type.IMetric;
import org.apache.iotdb.metrics.utils.IoTDBMetricsUtils;
@@ -48,8 +49,8 @@ public class IoTDBSessionReporter extends IoTDBReporter {
private static final Logger LOGGER =
LoggerFactory.getLogger(IoTDBSessionReporter.class);
private static final MetricConfig metricConfig =
MetricConfigDescriptor.getInstance().getMetricConfig();
- private static final MetricConfig.IoTDBReporterConfig ioTDBReporterConfig =
-
MetricConfigDescriptor.getInstance().getMetricConfig().getIotdbReporterConfig();
+ private static final IoTDBReporterConfig ioTDBReporterConfig =
+
MetricConfigDescriptor.getInstance().getMetricConfig().getIoTDBReporterConfig();
private Future<?> currentServiceFuture;
private final ScheduledExecutorService service =
Executors.newSingleThreadScheduledExecutor();
diff --git
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
index 632d27345d3..96a22caa488 100644
---
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
+++
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/IoTDBMetricsUtils.java
@@ -72,7 +72,7 @@ public class IoTDBMetricsUtils {
stringBuilder
.append(METRIC_CONFIG.getInternalDatabase())
.append(".")
- .append(METRIC_CONFIG.getIotdbReporterConfig().getLocation())
+ .append(METRIC_CONFIG.getIoTDBReporterConfig().getLocation())
.append(".`")
.append(METRIC_CONFIG.getClusterName())
.append("`.")
diff --git
a/iotdb-core/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
b/iotdb-core/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
index dacc733db91..68f8f2f61d4 100644
---
a/iotdb-core/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
+++
b/iotdb-core/metrics/interface/src/test/java/org/apache/iotdb/metrics/config/MetricConfigTest.java
@@ -19,6 +19,7 @@
package org.apache.iotdb.metrics.config;
+import org.apache.iotdb.metrics.config.MetricConfig.IoTDBReporterConfig;
import org.apache.iotdb.metrics.utils.InternalReporterType;
import org.apache.iotdb.metrics.utils.MetricFrameType;
import org.apache.iotdb.metrics.utils.MetricLevel;
@@ -58,7 +59,7 @@ public class MetricConfigTest {
assertEquals(10, (int) metricConfig.getAsyncCollectPeriodInSecond());
assertEquals(9090, (int) metricConfig.getPrometheusReporterPort());
- MetricConfig.IoTDBReporterConfig reporterConfig =
metricConfig.getIotdbReporterConfig();
+ IoTDBReporterConfig reporterConfig = metricConfig.getIoTDBReporterConfig();
assertEquals("0.0.0.0", reporterConfig.getHost());
assertEquals(6669, (int) reporterConfig.getPort());
assertEquals("user", reporterConfig.getUsername());
@@ -97,7 +98,7 @@ public class MetricConfigTest {
assertEquals(10, (int) metricConfig.getAsyncCollectPeriodInSecond());
assertEquals(9090, (int) metricConfig.getPrometheusReporterPort());
- MetricConfig.IoTDBReporterConfig reporterConfig =
metricConfig.getIotdbReporterConfig();
+ IoTDBReporterConfig reporterConfig = metricConfig.getIoTDBReporterConfig();
assertEquals("0.0.0.0", reporterConfig.getHost());
assertEquals(6669, (int) reporterConfig.getPort());
assertEquals("user", reporterConfig.getUsername());
diff --git
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java
index 3575b70e259..03f23b9b2b0 100644
---
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java
+++
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/MicrometerMetricManager.java
@@ -40,6 +40,7 @@ import io.micrometer.core.instrument.Metrics;
import io.micrometer.core.instrument.Tags;
import io.micrometer.core.instrument.simple.SimpleMeterRegistry;
+import java.util.Objects;
import java.util.concurrent.atomic.AtomicLong;
import java.util.function.ToDoubleFunction;
@@ -129,4 +130,24 @@ public class MicrometerMetricManager extends
AbstractMetricManager {
return Meter.Type.OTHER;
}
}
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ }
+ if (o == null || getClass() != o.getClass()) {
+ return false;
+ }
+ if (!super.equals(o)) {
+ return false;
+ }
+ MicrometerMetricManager that = (MicrometerMetricManager) o;
+ return Objects.equals(meterRegistry, that.meterRegistry);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(super.hashCode(), meterRegistry);
+ }
}
diff --git
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/JmxConfig.java
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxConfig.java
similarity index 88%
rename from
iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/JmxConfig.java
rename to
iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxConfig.java
index 5e98a35a502..6b5e867dd22 100644
---
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/JmxConfig.java
+++
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxConfig.java
@@ -19,8 +19,8 @@
package org.apache.iotdb.metrics.micrometer.reporter;
-public interface JmxConfig extends io.micrometer.jmx.JmxConfig {
- JmxConfig DEFAULT = k -> null;
+public interface MicrometerJmxConfig extends io.micrometer.jmx.JmxConfig {
+ MicrometerJmxConfig DEFAULT = k -> null;
@Override
default String domain() {
diff --git
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
index 6aaf75ca29d..929527b8cce 100644
---
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
+++
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/reporter/MicrometerJmxReporter.java
@@ -41,13 +41,13 @@ public class MicrometerJmxReporter implements JmxReporter {
try {
Set<MeterRegistry> meterRegistrySet =
Metrics.globalRegistry.getRegistries().stream()
- .filter(reporter -> reporter instanceof JmxMeterRegistry)
+ .filter(JmxMeterRegistry.class::isInstance)
.collect(Collectors.toSet());
- if (meterRegistrySet.size() != 0) {
+ if (!meterRegistrySet.isEmpty()) {
LOGGER.warn("Micrometer JmxReporter already start!");
return false;
}
- Metrics.addRegistry(new JmxMeterRegistry(JmxConfig.DEFAULT,
Clock.SYSTEM));
+ Metrics.addRegistry(new JmxMeterRegistry(MicrometerJmxConfig.DEFAULT,
Clock.SYSTEM));
} catch (Exception e) {
LOGGER.warn("Micrometer JmxReporter failed to start, because ", e);
return false;
@@ -61,7 +61,7 @@ public class MicrometerJmxReporter implements JmxReporter {
try {
Set<MeterRegistry> meterRegistrySet =
Metrics.globalRegistry.getRegistries().stream()
- .filter(reporter -> reporter instanceof JmxMeterRegistry)
+ .filter(JmxMeterRegistry.class::isInstance)
.collect(Collectors.toSet());
for (MeterRegistry meterRegistry : meterRegistrySet) {
if (!meterRegistry.isClosed()) {
diff --git
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimerHistogramSnapshot.java
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimerHistogramSnapshot.java
index cf80737fdb3..5ebfdc2af8d 100644
---
a/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimerHistogramSnapshot.java
+++
b/iotdb-core/metrics/micrometer-metrics/src/main/java/org/apache/iotdb/metrics/micrometer/type/MicrometerTimerHistogramSnapshot.java
@@ -16,6 +16,7 @@
* specific language governing permissions and limitations
* under the License.
*/
+
package org.apache.iotdb.metrics.micrometer.type;
import org.apache.iotdb.metrics.type.HistogramSnapshot;