You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ta...@apache.org on 2023/07/25 14:17:40 UTC
[iotdb] branch rel/1.2 updated: [IOTDB-6082] Improve disk space metrics (#10667) (#10682)
This is an automated email from the ASF dual-hosted git repository.
tanxinyu pushed a commit to branch rel/1.2
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/rel/1.2 by this push:
new 69eeca8b990 [IOTDB-6082] Improve disk space metrics (#10667) (#10682)
69eeca8b990 is described below
commit 69eeca8b9908acdf206a71159f097bb8ff617a3c
Author: Xiangpeng Hu <65...@users.noreply.github.com>
AuthorDate: Tue Jul 25 22:17:34 2023 +0800
[IOTDB-6082] Improve disk space metrics (#10667) (#10682)
---
.../iotdb/confignode/service/ConfigNode.java | 13 +-
.../impl/DataNodeInternalRPCServiceImpl.java | 17 +-
.../db/service/metrics/DataNodeMetricsHelper.java | 16 +-
.../iotdb/db/service/metrics/ProcessMetrics.java | 83 ++++---
.../iotdb/metrics/metricsets/UpTimeMetrics.java | 5 +-
.../metrics/metricsets/cpu/CpuUsageMetrics.java | 48 ++--
.../iotdb/metrics/metricsets/disk/DiskMetrics.java | 269 ++++++++++++++-------
.../metricsets/jvm/JvmClassLoaderMetrics.java | 10 +-
.../metrics/metricsets/jvm/JvmCompileMetrics.java | 11 +-
.../iotdb/metrics/metricsets/jvm/JvmGcMetrics.java | 27 ++-
.../metrics/metricsets/jvm/JvmMemoryMetrics.java | 65 ++---
.../metrics/metricsets/jvm/JvmThreadMetrics.java | 29 ++-
.../metrics/metricsets/logback/LogbackMetrics.java | 17 +-
.../iotdb/metrics/metricsets/net/NetMetrics.java | 76 +++---
.../metrics/metricsets/system}/SystemMetrics.java | 163 ++++++-------
.../apache/iotdb/metrics/utils/SystemMetric.java | 105 ++++++++
.../UpTimeMetrics.java => utils/SystemTag.java} | 38 +--
.../commons/concurrent/ThreadPoolMetrics.java | 74 +++---
.../iotdb/commons/service/metric/enums/Metric.java | 32 +--
19 files changed, 694 insertions(+), 404 deletions(-)
diff --git a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
index edc0435ba15..073a95aa034 100644
--- a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
+++ b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/service/ConfigNode.java
@@ -25,6 +25,7 @@ import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.client.ClientManagerMetrics;
import org.apache.iotdb.commons.concurrent.ThreadModule;
import org.apache.iotdb.commons.concurrent.ThreadName;
+import org.apache.iotdb.commons.concurrent.ThreadPoolMetrics;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.exception.StartupException;
import org.apache.iotdb.commons.service.JMXService;
@@ -44,7 +45,6 @@ import org.apache.iotdb.confignode.rpc.thrift.TConfigNodeRestartReq;
import org.apache.iotdb.confignode.service.thrift.ConfigNodeRPCService;
import org.apache.iotdb.confignode.service.thrift.ConfigNodeRPCServiceProcessor;
import org.apache.iotdb.db.service.metrics.ProcessMetrics;
-import org.apache.iotdb.db.service.metrics.SystemMetrics;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.metricsets.UpTimeMetrics;
import org.apache.iotdb.metrics.metricsets.cpu.CpuUsageMetrics;
@@ -52,6 +52,7 @@ import org.apache.iotdb.metrics.metricsets.disk.DiskMetrics;
import org.apache.iotdb.metrics.metricsets.jvm.JvmMetrics;
import org.apache.iotdb.metrics.metricsets.logback.LogbackMetrics;
import org.apache.iotdb.metrics.metricsets.net.NetMetrics;
+import org.apache.iotdb.metrics.metricsets.system.SystemMetrics;
import org.apache.iotdb.rpc.TSStatusCode;
import org.slf4j.Logger;
@@ -242,11 +243,19 @@ public class ConfigNode implements ConfigNodeMBean {
MetricService.getInstance().addMetricSet(new JvmMetrics());
MetricService.getInstance().addMetricSet(new LogbackMetrics());
MetricService.getInstance().addMetricSet(new ProcessMetrics());
- MetricService.getInstance().addMetricSet(new SystemMetrics(false));
MetricService.getInstance().addMetricSet(new DiskMetrics(IoTDBConstant.CN_ROLE));
MetricService.getInstance().addMetricSet(new NetMetrics(IoTDBConstant.CN_ROLE));
MetricService.getInstance().addMetricSet(ClientManagerMetrics.getInstance());
+ MetricService.getInstance().addMetricSet(ThreadPoolMetrics.getInstance());
initCpuMetrics();
+ initSystemMetrics();
+ }
+
+ private void initSystemMetrics() {
+ ArrayList<String> diskDirs = new ArrayList<>();
+ diskDirs.add(CONF.getSystemDir());
+ diskDirs.add(CONF.getConsensusDir());
+ MetricService.getInstance().addMetricSet(new SystemMetrics(diskDirs));
}
private void initCpuMetrics() {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
index 2aa7d3496a5..33c6cfcee4d 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java
@@ -45,7 +45,6 @@ import org.apache.iotdb.commons.pipe.plugin.meta.PipePluginMeta;
import org.apache.iotdb.commons.pipe.task.meta.PipeMeta;
import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression;
import org.apache.iotdb.commons.service.metric.MetricService;
-import org.apache.iotdb.commons.service.metric.enums.Metric;
import org.apache.iotdb.commons.service.metric.enums.Tag;
import org.apache.iotdb.commons.trigger.TriggerInformation;
import org.apache.iotdb.commons.udf.UDFInformation;
@@ -129,6 +128,7 @@ import org.apache.iotdb.db.utils.ErrorHandlingUtils;
import org.apache.iotdb.db.utils.SetThreadName;
import org.apache.iotdb.metrics.type.AutoGauge;
import org.apache.iotdb.metrics.utils.MetricLevel;
+import org.apache.iotdb.metrics.utils.SystemMetric;
import org.apache.iotdb.mpp.rpc.thrift.IDataNodeRPCService;
import org.apache.iotdb.mpp.rpc.thrift.TActiveTriggerInstanceReq;
import org.apache.iotdb.mpp.rpc.thrift.TAlterViewReq;
@@ -257,6 +257,8 @@ public class DataNodeInternalRPCServiceImpl implements IDataNodeRPCService.Iface
private final DataNodeThrottleQuotaManager throttleQuotaManager =
DataNodeThrottleQuotaManager.getInstance();
+ private static final String SYSTEM = "system";
+
public DataNodeInternalRPCServiceImpl() {
super();
partitionFetcher = ClusterPartitionFetcher.getInstance();
@@ -1134,7 +1136,10 @@ public class DataNodeInternalRPCServiceImpl implements IDataNodeRPCService.Iface
double cpuLoad =
MetricService.getInstance()
.getAutoGauge(
- Metric.SYS_CPU_LOAD.toString(), MetricLevel.CORE, Tag.NAME.toString(), "system")
+ SystemMetric.SYS_CPU_LOAD.toString(),
+ MetricLevel.CORE,
+ Tag.NAME.toString(),
+ SYSTEM)
.value();
if (cpuLoad != 0) {
loadSample.setCpuUsageRate(cpuLoad);
@@ -1244,18 +1249,18 @@ public class DataNodeInternalRPCServiceImpl implements IDataNodeRPCService.Iface
double freeDisk =
MetricService.getInstance()
.getAutoGauge(
- Metric.SYS_DISK_FREE_SPACE.toString(),
+ SystemMetric.SYS_DISK_FREE_SPACE.toString(),
MetricLevel.CORE,
Tag.NAME.toString(),
- "system")
+ SYSTEM)
.value();
double totalDisk =
MetricService.getInstance()
.getAutoGauge(
- Metric.SYS_DISK_TOTAL_SPACE.toString(),
+ SystemMetric.SYS_DISK_TOTAL_SPACE.toString(),
MetricLevel.CORE,
Tag.NAME.toString(),
- "system")
+ SYSTEM)
.value();
if (freeDisk != 0 && totalDisk != 0) {
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
index 022d3fb2d60..cbcba846174 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/DataNodeMetricsHelper.java
@@ -23,9 +23,11 @@ import org.apache.iotdb.commons.client.ClientManagerMetrics;
import org.apache.iotdb.commons.concurrent.ThreadModule;
import org.apache.iotdb.commons.concurrent.ThreadName;
import org.apache.iotdb.commons.concurrent.ThreadPoolMetrics;
+import org.apache.iotdb.commons.conf.CommonDescriptor;
import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.service.metric.MetricService;
import org.apache.iotdb.commons.service.metric.PerformanceOverviewMetrics;
+import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.db.queryengine.metric.DataExchangeCostMetricSet;
import org.apache.iotdb.db.queryengine.metric.DataExchangeCountMetricSet;
import org.apache.iotdb.db.queryengine.metric.DriverSchedulerMetricSet;
@@ -40,6 +42,7 @@ import org.apache.iotdb.metrics.metricsets.disk.DiskMetrics;
import org.apache.iotdb.metrics.metricsets.jvm.JvmMetrics;
import org.apache.iotdb.metrics.metricsets.logback.LogbackMetrics;
import org.apache.iotdb.metrics.metricsets.net.NetMetrics;
+import org.apache.iotdb.metrics.metricsets.system.SystemMetrics;
import java.util.ArrayList;
import java.util.Arrays;
@@ -55,11 +58,11 @@ public class DataNodeMetricsHelper {
MetricService.getInstance().addMetricSet(FileMetrics.getInstance());
MetricService.getInstance().addMetricSet(CompactionMetrics.getInstance());
MetricService.getInstance().addMetricSet(new ProcessMetrics());
- MetricService.getInstance().addMetricSet(new SystemMetrics(true));
MetricService.getInstance().addMetricSet(new DiskMetrics(IoTDBConstant.DN_ROLE));
MetricService.getInstance().addMetricSet(new NetMetrics(IoTDBConstant.DN_ROLE));
MetricService.getInstance().addMetricSet(ClientManagerMetrics.getInstance());
initCpuMetrics();
+ initSystemMetrics();
MetricService.getInstance().addMetricSet(WritingMetrics.getInstance());
// bind query related metrics
@@ -76,6 +79,17 @@ public class DataNodeMetricsHelper {
MetricService.getInstance().addMetricSet(PerformanceOverviewMetrics.getInstance());
}
+ private static void initSystemMetrics() {
+ ArrayList<String> diskDirs = new ArrayList<>();
+ diskDirs.add(IoTDBDescriptor.getInstance().getConfig().getSystemDir());
+ diskDirs.add(IoTDBDescriptor.getInstance().getConfig().getConsensusDir());
+ diskDirs.addAll(Arrays.asList(IoTDBDescriptor.getInstance().getConfig().getDataDirs()));
+ diskDirs.addAll(Arrays.asList(CommonDescriptor.getInstance().getConfig().getWalDirs()));
+ diskDirs.add(CommonDescriptor.getInstance().getConfig().getSyncDir());
+ diskDirs.add(IoTDBDescriptor.getInstance().getConfig().getSortTmpDir());
+ MetricService.getInstance().addMetricSet(new SystemMetrics(diskDirs));
+ }
+
private static void initCpuMetrics() {
List<String> threadModules = new ArrayList<>();
Arrays.stream(ThreadModule.values()).forEach(x -> threadModules.add(x.toString()));
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java
index 0cef3721bba..52aed7d54a9 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java
+++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/ProcessMetrics.java
@@ -19,13 +19,13 @@
package org.apache.iotdb.db.service.metrics;
-import org.apache.iotdb.commons.service.metric.enums.Metric;
import org.apache.iotdb.commons.service.metric.enums.Tag;
import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.MetricConstant;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
import com.sun.management.OperatingSystemMXBean;
@@ -34,6 +34,7 @@ import java.lang.management.ManagementFactory;
public class ProcessMetrics implements IMetricSet {
private final OperatingSystemMXBean sunOsMxBean;
private final Runtime runtime;
+ private static final String PROCESS = "process";
private long lastUpdateTime = 0L;
private volatile long processCpuLoad = 0L;
private volatile long processCpuTime = 0L;
@@ -62,7 +63,7 @@ public class ProcessMetrics implements IMetricSet {
private void collectProcessCpuInfo(AbstractMetricService metricService) {
metricService.createAutoGauge(
- Metric.PROCESS_CPU_LOAD.toString(),
+ SystemMetric.PROCESS_CPU_LOAD.toString(),
MetricLevel.CORE,
sunOsMxBean,
a -> {
@@ -74,10 +75,10 @@ public class ProcessMetrics implements IMetricSet {
return processCpuLoad;
},
Tag.NAME.toString(),
- "process");
+ PROCESS);
metricService.createAutoGauge(
- Metric.PROCESS_CPU_TIME.toString(),
+ SystemMetric.PROCESS_CPU_TIME.toString(),
MetricLevel.CORE,
sunOsMxBean,
bean -> {
@@ -89,102 +90,126 @@ public class ProcessMetrics implements IMetricSet {
return processCpuTime;
},
Tag.NAME.toString(),
- "process");
+ PROCESS);
}
private void removeProcessCpuInfo(AbstractMetricService metricService) {
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_CPU_LOAD.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_CPU_LOAD.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_CPU_TIME.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_CPU_TIME.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
}
private void collectProcessMemInfo(AbstractMetricService metricService) {
Runtime runtime = Runtime.getRuntime();
metricService.createAutoGauge(
- Metric.PROCESS_MAX_MEM.toString(),
+ SystemMetric.PROCESS_MAX_MEM.toString(),
MetricLevel.CORE,
runtime,
a -> runtime.maxMemory(),
Tag.NAME.toString(),
- "process");
+ PROCESS);
metricService.createAutoGauge(
- Metric.PROCESS_TOTAL_MEM.toString(),
+ SystemMetric.PROCESS_TOTAL_MEM.toString(),
MetricLevel.CORE,
runtime,
a -> runtime.totalMemory(),
Tag.NAME.toString(),
- "process");
+ PROCESS);
metricService.createAutoGauge(
- Metric.PROCESS_FREE_MEM.toString(),
+ SystemMetric.PROCESS_FREE_MEM.toString(),
MetricLevel.CORE,
runtime,
a -> runtime.freeMemory(),
Tag.NAME.toString(),
- "process");
+ PROCESS);
// TODO maybe following metrics can be removed
metricService.createAutoGauge(
- Metric.PROCESS_USED_MEM.toString(),
+ SystemMetric.PROCESS_USED_MEM.toString(),
MetricLevel.IMPORTANT,
this,
a -> getProcessUsedMemory(),
Tag.NAME.toString(),
- "process");
+ PROCESS);
metricService.createAutoGauge(
- Metric.PROCESS_MEM_RATIO.toString(),
+ SystemMetric.PROCESS_MEM_RATIO.toString(),
MetricLevel.IMPORTANT,
this,
a -> Math.round(getProcessMemoryRatio()),
Tag.NAME.toString(),
- "process");
+ PROCESS);
}
private void removeProcessMemInfo(AbstractMetricService metricService) {
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_MAX_MEM.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_MAX_MEM.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_TOTAL_MEM.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_TOTAL_MEM.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_FREE_MEM.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_FREE_MEM.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_USED_MEM.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_USED_MEM.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_MEM_RATIO.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_MEM_RATIO.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
}
private void collectThreadInfo(AbstractMetricService metricService) {
// TODO maybe duplicated with thread info in jvm related metrics
metricService.createAutoGauge(
- Metric.PROCESS_THREADS_COUNT.toString(),
+ SystemMetric.PROCESS_THREADS_COUNT.toString(),
MetricLevel.IMPORTANT,
this,
a -> getThreadsCount(),
Tag.NAME.toString(),
- "process");
+ PROCESS);
}
private void removeThreadInfo(AbstractMetricService metricService) {
metricService.remove(
MetricType.AUTO_GAUGE,
- Metric.PROCESS_THREADS_COUNT.toString(),
+ SystemMetric.PROCESS_THREADS_COUNT.toString(),
Tag.NAME.toString(),
- "process");
+ PROCESS);
}
private void collectProcessStatusInfo(AbstractMetricService metricService) {
metricService.createAutoGauge(
- Metric.PROCESS_STATUS.toString(),
+ SystemMetric.PROCESS_STATUS.toString(),
MetricLevel.IMPORTANT,
this,
a -> (getProcessStatus()),
Tag.NAME.toString(),
- "process");
+ PROCESS);
}
private void removeProcessStatusInfo(AbstractMetricService metricService) {
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.PROCESS_STATUS.toString(), Tag.NAME.toString(), "process");
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_STATUS.toString(),
+ Tag.NAME.toString(),
+ PROCESS);
}
private long getProcessUsedMemory() {
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 0f442100413..bd3748f5291 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
@@ -24,6 +24,7 @@ import org.apache.iotdb.metrics.config.MetricConfig;
import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
public class UpTimeMetrics implements IMetricSet {
MetricConfig metricConfig = MetricConfigDescriptor.getInstance().getMetricConfig();
@@ -31,7 +32,7 @@ public class UpTimeMetrics implements IMetricSet {
@Override
public void bindTo(AbstractMetricService metricService) {
metricService.createAutoGauge(
- "up_time",
+ SystemMetric.UP_TIME.toString(),
MetricLevel.CORE,
metricConfig,
config -> System.nanoTime() - config.getUpTimeInNs());
@@ -39,6 +40,6 @@ public class UpTimeMetrics implements IMetricSet {
@Override
public void unbindFrom(AbstractMetricService metricService) {
- metricService.remove(MetricType.AUTO_GAUGE, "up_time");
+ metricService.remove(MetricType.AUTO_GAUGE, SystemMetric.UP_TIME.toString());
}
}
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/cpu/CpuUsageMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/cpu/CpuUsageMetrics.java
index 04f2e52daf9..81a02714bd6 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/cpu/CpuUsageMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/cpu/CpuUsageMetrics.java
@@ -25,6 +25,8 @@ import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.type.AutoGauge;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -43,12 +45,6 @@ import java.util.stream.Collectors;
public class CpuUsageMetrics implements IMetricSet {
private static final Logger logger = LoggerFactory.getLogger(CpuUsageMetrics.class);
- private static final String MODULE_CPU_USAGE = "module_cpu_usage";
- private static final String POOL_CPU_USAGE = "pool_cpu_usage";
- private static final String POOL = "pool";
- private static final String MODULE = "module";
- private static final String MODULE_USER_TIME_PERCENTAGE = "module_user_time_percentage";
- private static final String POOL_USER_TIME_PERCENTAGE = "user_time_percentage";
private final List<String> modules;
private final List<String> pools;
private static final long UPDATE_INTERVAL = 10_000L;
@@ -84,34 +80,34 @@ public class CpuUsageMetrics implements IMetricSet {
this.metricService = metricService;
for (String moduleName : modules) {
metricService.createAutoGauge(
- MODULE_CPU_USAGE,
+ SystemMetric.MODULE_CPU_USAGE.toString(),
MetricLevel.IMPORTANT,
this,
x -> x.getModuleCpuUsage().getOrDefault(moduleName, 0.0),
- MODULE,
+ SystemTag.MODULE.toString(),
moduleName);
metricService.createAutoGauge(
- MODULE_USER_TIME_PERCENTAGE,
+ SystemMetric.MODULE_USER_TIME_PERCENTAGE.toString(),
MetricLevel.IMPORTANT,
this,
x -> x.getModuleUserTimePercentage().getOrDefault(moduleName, 0.0),
- MODULE,
+ SystemTag.MODULE.toString(),
moduleName);
}
for (String poolName : pools) {
metricService.createAutoGauge(
- POOL_CPU_USAGE,
+ SystemMetric.POOL_CPU_USAGE.toString(),
MetricLevel.IMPORTANT,
this,
x -> x.getPoolCpuUsage().getOrDefault(poolName, 0.0),
- POOL,
+ SystemTag.POOL.toString(),
poolName);
metricService.createAutoGauge(
- POOL_USER_TIME_PERCENTAGE,
+ SystemMetric.POOL_USER_TIME_PERCENTAGE.toString(),
MetricLevel.IMPORTANT,
this,
x -> x.getPoolUserCpuPercentage().getOrDefault(poolName, 0.0),
- POOL,
+ SystemTag.POOL.toString(),
poolName);
}
}
@@ -119,12 +115,28 @@ public class CpuUsageMetrics implements IMetricSet {
@Override
public void unbindFrom(AbstractMetricService metricService) {
for (String moduleName : modules) {
- metricService.remove(MetricType.AUTO_GAUGE, MODULE_CPU_USAGE, MODULE, moduleName);
- metricService.remove(MetricType.AUTO_GAUGE, MODULE_USER_TIME_PERCENTAGE, MODULE, moduleName);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.MODULE_CPU_USAGE.toString(),
+ SystemTag.MODULE.toString(),
+ moduleName);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.MODULE_USER_TIME_PERCENTAGE.toString(),
+ SystemTag.MODULE.toString(),
+ moduleName);
}
for (String poolName : pools) {
- metricService.remove(MetricType.AUTO_GAUGE, POOL_CPU_USAGE, POOL, poolName);
- metricService.remove(MetricType.AUTO_GAUGE, POOL_USER_TIME_PERCENTAGE, POOL, poolName);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.POOL_CPU_USAGE.toString(),
+ SystemTag.POOL.toString(),
+ poolName);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.POOL_USER_TIME_PERCENTAGE.toString(),
+ SystemTag.POOL.toString(),
+ poolName);
}
}
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java
index d9ff06f6dd0..c9c2b393cde 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DiskMetrics.java
@@ -23,6 +23,8 @@ import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import java.util.Set;
@@ -41,21 +43,6 @@ public class DiskMetrics implements IMetricSet {
private static final String ATTEMPT_WRITE = "attempt_write";
private static final String ACTUAL_WRITE = "actual_write";
private static final String ACTUAL_READ = "actual_read";
- private static final String TYPE = "type";
- private static final String DISK_ID = "disk_id";
- private static final String NAME = "name";
- private static final String FROM = "from";
-
- private static final String DISK_IO_SIZE = "disk_io_size";
- private static final String DISK_IO_OPS = "disk_io_ops";
- private static final String DISK_IO_TIME = "disk_io_time";
- private static final String DISK_IO_AVG_TIME = "disk_io_avg_time";
- private static final String DISK_IO_AVG_SIZE = "disk_io_avg_size";
- private static final String DISK_IO_BUSY_PERCENTAGE = "disk_io_busy_percentage";
- private static final String DISK_IO_QUEUE_SIZE = "disk_io_avg_queue_size";
-
- private static final String PROCESS_IO_OPS = "process_io_ops";
- private static final String PROCESS_IO_SIZE = "process_io_size";
public DiskMetrics(String processName) {
this.processName = processName;
@@ -67,183 +54,183 @@ public class DiskMetrics implements IMetricSet {
Set<String> diskIDs = diskMetricsManager.getDiskIds();
for (String diskID : diskIDs) {
metricService.createAutoGauge(
- DISK_IO_SIZE,
+ SystemMetric.DISK_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getReadDataSizeForDisk().getOrDefault(diskID, 0.0),
- TYPE,
+ SystemTag.TYPE.toString(),
READ,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_SIZE,
+ SystemMetric.DISK_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getWriteDataSizeForDisk().getOrDefault(diskID, 0.0),
- TYPE,
+ SystemTag.TYPE.toString(),
WRITE,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_OPS,
+ SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getReadOperationCountForDisk().getOrDefault(diskID, 0L),
- TYPE,
+ SystemTag.TYPE.toString(),
READ,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_OPS,
+ SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getWriteOperationCountForDisk().getOrDefault(diskID, 0L),
- TYPE,
+ SystemTag.TYPE.toString(),
WRITE,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_OPS,
+ SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getMergedReadOperationForDisk().getOrDefault(diskID, 0L),
- TYPE,
+ SystemTag.TYPE.toString(),
MERGED_READ,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_OPS,
+ SystemMetric.DISK_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getMergedWriteOperationForDisk().getOrDefault(diskID, 0L),
- TYPE,
+ SystemTag.TYPE.toString(),
MERGED_WRITE,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_TIME,
+ SystemMetric.DISK_IO_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getReadCostTimeForDisk().getOrDefault(diskID, 0L),
- TYPE,
+ SystemTag.TYPE.toString(),
READ,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_TIME,
+ SystemMetric.DISK_IO_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getWriteCostTimeForDisk().getOrDefault(diskID, 0L),
- TYPE,
+ SystemTag.TYPE.toString(),
WRITE,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_AVG_TIME,
+ SystemMetric.DISK_IO_AVG_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgReadCostTimeOfEachOpsForDisk().getOrDefault(diskID, 0.0),
- TYPE,
+ SystemTag.TYPE.toString(),
READ,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_AVG_TIME,
+ SystemMetric.DISK_IO_AVG_TIME.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgWriteCostTimeOfEachOpsForDisk().getOrDefault(diskID, 0.0),
- TYPE,
+ SystemTag.TYPE.toString(),
WRITE,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_AVG_SIZE,
+ SystemMetric.DISK_IO_AVG_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgSizeOfEachReadForDisk().getOrDefault(diskID, 0.0),
- TYPE,
+ SystemTag.TYPE.toString(),
READ,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_AVG_SIZE,
+ SystemMetric.DISK_IO_AVG_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getAvgSizeOfEachWriteForDisk().getOrDefault(diskID, 0.0),
- TYPE,
+ SystemTag.TYPE.toString(),
WRITE,
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_BUSY_PERCENTAGE,
+ SystemMetric.DISK_IO_BUSY_PERCENTAGE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getIoUtilsPercentage().getOrDefault(diskID, 0.0),
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
metricService.createAutoGauge(
- DISK_IO_QUEUE_SIZE,
+ SystemMetric.DISK_IO_AVG_QUEUE_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
x -> x.getQueueSizeForDisk().getOrDefault(diskID, 0.0),
- DISK_ID,
+ SystemTag.DISK.toString(),
diskID);
}
// metrics for datanode and config node
metricService.createAutoGauge(
- PROCESS_IO_OPS,
+ SystemMetric.PROCESS_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getReadOpsCountForProcess,
- FROM,
+ SystemTag.FROM.toString(),
processName,
- NAME,
+ SystemTag.NAME.toString(),
READ);
metricService.createAutoGauge(
- PROCESS_IO_OPS,
+ SystemMetric.PROCESS_IO_OPS.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getWriteOpsCountForProcess,
- FROM,
+ SystemTag.FROM.toString(),
processName,
- NAME,
+ SystemTag.NAME.toString(),
WRITE);
metricService.createAutoGauge(
- PROCESS_IO_SIZE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getActualReadDataSizeForProcess,
- FROM,
+ SystemTag.FROM.toString(),
processName,
- NAME,
+ SystemTag.NAME.toString(),
ACTUAL_READ);
metricService.createAutoGauge(
- PROCESS_IO_SIZE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getActualWriteDataSizeForProcess,
- FROM,
+ SystemTag.FROM.toString(),
processName,
- NAME,
+ SystemTag.NAME.toString(),
ACTUAL_WRITE);
metricService.createAutoGauge(
- PROCESS_IO_SIZE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getAttemptReadSizeForProcess,
- FROM,
+ SystemTag.FROM.toString(),
processName,
- NAME,
+ SystemTag.NAME.toString(),
ATTEMPT_READ);
metricService.createAutoGauge(
- PROCESS_IO_SIZE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
MetricLevel.IMPORTANT,
diskMetricsManager,
IDiskMetricsManager::getAttemptWriteSizeForProcess,
- FROM,
+ SystemTag.FROM.toString(),
processName,
- NAME,
+ SystemTag.NAME.toString(),
ATTEMPT_WRITE);
}
@@ -252,30 +239,130 @@ public class DiskMetrics implements IMetricSet {
// metrics for disks
Set<String> diskIDs = diskMetricsManager.getDiskIds();
for (String diskID : diskIDs) {
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_SIZE, TYPE, READ, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_SIZE, TYPE, WRITE, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_OPS, TYPE, READ, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_OPS, TYPE, WRITE, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_TIME, TYPE, READ, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_TIME, TYPE, WRITE, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_TIME, TYPE, AVG_READ, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_TIME, TYPE, AVG_WRITE, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_AVG_SIZE, TYPE, READ, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_AVG_SIZE, TYPE, WRITE, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_BUSY_PERCENTAGE, NAME, diskID);
- metricService.remove(MetricType.AUTO_GAUGE, DISK_IO_QUEUE_SIZE, NAME, diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_SIZE.toString(),
+ SystemTag.TYPE.toString(),
+ READ,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_SIZE.toString(),
+ SystemTag.TYPE.toString(),
+ WRITE,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_OPS.toString(),
+ SystemTag.TYPE.toString(),
+ READ,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_OPS.toString(),
+ SystemTag.TYPE.toString(),
+ WRITE,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_OPS.toString(),
+ SystemTag.TYPE.toString(),
+ AVG_READ,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_OPS.toString(),
+ SystemTag.TYPE.toString(),
+ AVG_WRITE,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_TIME.toString(),
+ SystemTag.TYPE.toString(),
+ READ,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_TIME.toString(),
+ SystemTag.TYPE.toString(),
+ WRITE,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_AVG_SIZE.toString(),
+ SystemTag.TYPE.toString(),
+ READ,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_AVG_SIZE.toString(),
+ SystemTag.TYPE.toString(),
+ WRITE,
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_BUSY_PERCENTAGE.toString(),
+ SystemTag.DISK.toString(),
+ diskID);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.DISK_IO_AVG_QUEUE_SIZE.toString(),
+ SystemTag.DISK.toString(),
+ diskID);
}
// metrics for datanode and config node
metricService.remove(
- MetricType.AUTO_GAUGE, PROCESS_IO_SIZE, FROM, processName, NAME, ACTUAL_READ);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
+ SystemTag.FROM.toString(),
+ processName,
+ SystemTag.NAME.toString(),
+ ACTUAL_READ);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
+ SystemTag.FROM.toString(),
+ processName,
+ SystemTag.NAME.toString(),
+ ACTUAL_WRITE);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
+ SystemTag.FROM.toString(),
+ processName,
+ SystemTag.NAME.toString(),
+ ATTEMPT_READ);
metricService.remove(
- MetricType.AUTO_GAUGE, PROCESS_IO_SIZE, FROM, processName, NAME, ACTUAL_WRITE);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_IO_SIZE.toString(),
+ SystemTag.FROM.toString(),
+ processName,
+ SystemTag.NAME.toString(),
+ ATTEMPT_WRITE);
metricService.remove(
- MetricType.AUTO_GAUGE, PROCESS_IO_SIZE, FROM, processName, NAME, ATTEMPT_READ);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_IO_OPS.toString(),
+ SystemTag.FROM.toString(),
+ processName,
+ SystemTag.NAME.toString(),
+ READ);
metricService.remove(
- MetricType.AUTO_GAUGE, PROCESS_IO_SIZE, FROM, processName, NAME, ATTEMPT_WRITE);
- metricService.remove(MetricType.AUTO_GAUGE, PROCESS_IO_OPS, FROM, processName, NAME, READ);
- metricService.remove(MetricType.AUTO_GAUGE, PROCESS_IO_OPS, FROM, processName, NAME, WRITE);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.PROCESS_IO_OPS.toString(),
+ SystemTag.FROM.toString(),
+ processName,
+ SystemTag.NAME.toString(),
+ WRITE);
}
}
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmClassLoaderMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmClassLoaderMetrics.java
index 32e5a857104..6a45ee4a461 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmClassLoaderMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmClassLoaderMetrics.java
@@ -23,6 +23,7 @@ import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
import java.lang.management.ClassLoadingMXBean;
import java.lang.management.ManagementFactory;
@@ -33,12 +34,12 @@ public class JvmClassLoaderMetrics implements IMetricSet {
public void bindTo(AbstractMetricService metricService) {
ClassLoadingMXBean classLoadingBean = ManagementFactory.getClassLoadingMXBean();
metricService.createAutoGauge(
- "jvm_classes_loaded_classes",
+ SystemMetric.JVM_CLASSES_LOADED_CLASSES.toString(),
MetricLevel.IMPORTANT,
classLoadingBean,
ClassLoadingMXBean::getLoadedClassCount);
metricService.createAutoGauge(
- "jvm_classes_unloaded_classes",
+ SystemMetric.JVM_CLASSES_UNLOADED_CLASSES.toString(),
MetricLevel.IMPORTANT,
classLoadingBean,
ClassLoadingMXBean::getUnloadedClassCount);
@@ -46,7 +47,8 @@ public class JvmClassLoaderMetrics implements IMetricSet {
@Override
public void unbindFrom(AbstractMetricService metricService) {
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_classes_loaded_classes");
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_classes_unloaded_classes");
+ metricService.remove(MetricType.AUTO_GAUGE, SystemMetric.JVM_CLASSES_LOADED_CLASSES.toString());
+ metricService.remove(
+ MetricType.AUTO_GAUGE, SystemMetric.JVM_CLASSES_UNLOADED_CLASSES.toString());
}
}
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmCompileMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmCompileMetrics.java
index 69e11ba28de..c36776da886 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmCompileMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/jvm/JvmCompileMetrics.java
@@ -23,6 +23,8 @@ import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import java.lang.management.CompilationMXBean;
import java.lang.management.ManagementFactory;
@@ -34,11 +36,11 @@ public class JvmCompileMetrics implements IMetricSet {
CompilationMXBean compilationBean = ManagementFactory.getCompilationMXBean();
if (compilationBean != null && compilationBean.isCompilationTimeMonitoringSupported()) {
metricService.createAutoGauge(
- "jvm_compilation_time_ms",
+ SystemMetric.JVM_COMPILATION_TIME_MS.toString(),
MetricLevel.IMPORTANT,
compilationBean,
CompilationMXBean::getTotalCompilationTime,
- "compiler",
+ SystemTag.COMPILER.toString(),
compilationBean.getName());
}
}
@@ -48,7 +50,10 @@ public class JvmCompileMetrics implements IMetricSet {
CompilationMXBean compilationBean = ManagementFactory.getCompilationMXBean();
if (compilationBean != null && compilationBean.isCompilationTimeMonitoringSupported()) {
metricService.remove(
- MetricType.AUTO_GAUGE, "jvm_compilation_time_ms", "compiler", compilationBean.getName());
+ MetricType.AUTO_GAUGE,
+ SystemMetric.JVM_COMPILATION_TIME_MS.toString(),
+ SystemTag.COMPILER.toString(),
+ compilationBean.getName());
}
}
}
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 77264c868a9..b0d175a0cc0 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
@@ -25,6 +25,7 @@ import org.apache.iotdb.metrics.type.Counter;
import org.apache.iotdb.metrics.type.Timer;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
import com.sun.management.GarbageCollectionNotificationInfo;
import com.sun.management.GcInfo;
@@ -85,19 +86,27 @@ public class JvmGcMetrics implements IMetricSet, AutoCloseable {
AtomicLong maxDataSize = new AtomicLong((long) maxLongLivedPoolBytes);
metricService.createAutoGauge(
- "jvm_gc_max_data_size_bytes", MetricLevel.CORE, maxDataSize, AtomicLong::get);
+ SystemMetric.JVM_GC_MAX_DATA_SIZE_BYTES.toString(),
+ MetricLevel.CORE,
+ maxDataSize,
+ AtomicLong::get);
AtomicLong liveDataSize = new AtomicLong();
metricService.createAutoGauge(
- "jvm_gc_live_data_size_bytes", MetricLevel.CORE, liveDataSize, AtomicLong::get);
+ SystemMetric.JVM_GC_LIVE_DATA_SIZE_BYTES.toString(),
+ MetricLevel.CORE,
+ liveDataSize,
+ AtomicLong::get);
Counter allocatedBytes =
- metricService.getOrCreateCounter("jvm_gc_memory_allocated_bytes", MetricLevel.CORE);
+ metricService.getOrCreateCounter(
+ SystemMetric.JVM_GC_MEMORY_ALLOCATED_BYTES.toString(), MetricLevel.CORE);
Counter promotedBytes =
(oldGenPoolName == null)
? null
- : metricService.getOrCreateCounter("jvm_gc_memory_promoted_bytes", MetricLevel.CORE);
+ : metricService.getOrCreateCounter(
+ SystemMetric.JVM_GC_MEMORY_PROMOTED_BYTES.toString(), MetricLevel.CORE);
// start watching for GC notifications
final AtomicLong heapPoolSizeAfterGc = new AtomicLong();
@@ -203,12 +212,14 @@ public class JvmGcMetrics implements IMetricSet, AutoCloseable {
return;
}
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_gc_max_data_size_bytes");
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_gc_live_data_size_bytes");
- metricService.remove(MetricType.COUNTER, "jvm_gc_memory_allocated_bytes");
+ metricService.remove(MetricType.AUTO_GAUGE, SystemMetric.JVM_GC_MAX_DATA_SIZE_BYTES.toString());
+ metricService.remove(
+ MetricType.AUTO_GAUGE, SystemMetric.JVM_GC_LIVE_DATA_SIZE_BYTES.toString());
+ metricService.remove(MetricType.COUNTER, SystemMetric.JVM_GC_MEMORY_ALLOCATED_BYTES.toString());
if (oldGenPoolName != null) {
- metricService.remove(MetricType.COUNTER, "jvm_gc_memory_promoted_bytes");
+ metricService.remove(
+ MetricType.COUNTER, SystemMetric.JVM_GC_MEMORY_PROMOTED_BYTES.toString());
}
// start watching for GC notifications
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 bf23121dfaa..ab342ad238c 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
@@ -23,6 +23,8 @@ import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import java.lang.management.BufferPoolMXBean;
import java.lang.management.ManagementFactory;
@@ -37,27 +39,27 @@ public class JvmMemoryMetrics implements IMetricSet {
for (BufferPoolMXBean bufferPoolBean :
ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class)) {
metricService.createAutoGauge(
- "jvm_buffer_count_buffers",
+ SystemMetric.JVM_BUFFER_COUNT_BUFFERS.toString(),
MetricLevel.CORE,
bufferPoolBean,
BufferPoolMXBean::getCount,
- "id",
+ SystemTag.ID.toString(),
bufferPoolBean.getName());
metricService.createAutoGauge(
- "jvm_buffer_memory_used_bytes",
+ SystemMetric.JVM_BUFFER_MEMORY_USED_BYTES.toString(),
MetricLevel.CORE,
bufferPoolBean,
BufferPoolMXBean::getMemoryUsed,
- "id",
+ SystemTag.ID.toString(),
bufferPoolBean.getName());
metricService.createAutoGauge(
- "jvm_buffer_total_capacity_bytes",
+ SystemMetric.JVM_BUFFER_TOTAL_CAPACITY_BYTES.toString(),
MetricLevel.CORE,
bufferPoolBean,
BufferPoolMXBean::getTotalCapacity,
- "id",
+ SystemTag.ID.toString(),
bufferPoolBean.getName());
}
@@ -66,33 +68,33 @@ public class JvmMemoryMetrics implements IMetricSet {
String area = MemoryType.HEAP.equals(memoryPoolBean.getType()) ? "heap" : "nonheap";
metricService.createAutoGauge(
- "jvm_memory_used_bytes",
+ SystemMetric.JVM_MEMORY_USED_BYTES.toString(),
MetricLevel.CORE,
memoryPoolBean,
mem -> JvmUtils.getUsageValue(mem, MemoryUsage::getUsed),
- "id",
+ SystemTag.ID.toString(),
memoryPoolBean.getName(),
- "area",
+ SystemTag.AREA.toString(),
area);
metricService.createAutoGauge(
- "jvm_memory_committed_bytes",
+ SystemMetric.JVM_MEMORY_COMMITTED_BYTES.toString(),
MetricLevel.CORE,
memoryPoolBean,
mem -> JvmUtils.getUsageValue(mem, MemoryUsage::getCommitted),
- "id",
+ SystemTag.ID.toString(),
memoryPoolBean.getName(),
- "area",
+ SystemTag.AREA.toString(),
area);
metricService.createAutoGauge(
- "jvm_memory_max_bytes",
+ SystemMetric.JVM_MEMORY_MAX_BYTES.toString(),
MetricLevel.CORE,
memoryPoolBean,
mem -> JvmUtils.getUsageValue(mem, MemoryUsage::getMax),
- "id",
+ SystemTag.ID.toString(),
memoryPoolBean.getName(),
- "area",
+ SystemTag.AREA.toString(),
area);
}
}
@@ -102,13 +104,22 @@ public class JvmMemoryMetrics implements IMetricSet {
for (BufferPoolMXBean bufferPoolBean :
ManagementFactory.getPlatformMXBeans(BufferPoolMXBean.class)) {
metricService.remove(
- MetricType.AUTO_GAUGE, "jvm_buffer_count_buffers", "id", bufferPoolBean.getName());
+ MetricType.AUTO_GAUGE,
+ SystemMetric.JVM_BUFFER_COUNT_BUFFERS.toString(),
+ SystemTag.ID.toString(),
+ bufferPoolBean.getName());
metricService.remove(
- MetricType.AUTO_GAUGE, "jvm_buffer_memory_used_bytes", "id", bufferPoolBean.getName());
+ MetricType.AUTO_GAUGE,
+ SystemMetric.JVM_BUFFER_MEMORY_USED_BYTES.toString(),
+ SystemTag.ID.toString(),
+ bufferPoolBean.getName());
metricService.remove(
- MetricType.AUTO_GAUGE, "jvm_buffer_total_capacity_bytes", "id", bufferPoolBean.getName());
+ MetricType.AUTO_GAUGE,
+ SystemMetric.JVM_BUFFER_TOTAL_CAPACITY_BYTES.toString(),
+ SystemTag.ID.toString(),
+ bufferPoolBean.getName());
}
for (MemoryPoolMXBean memoryPoolBean :
@@ -117,26 +128,26 @@ public class JvmMemoryMetrics implements IMetricSet {
metricService.remove(
MetricType.AUTO_GAUGE,
- "jvm_memory_used_bytes",
- "id",
+ SystemMetric.JVM_MEMORY_USED_BYTES.toString(),
+ SystemTag.ID.toString(),
memoryPoolBean.getName(),
- "area",
+ SystemTag.AREA.toString(),
area);
metricService.remove(
MetricType.AUTO_GAUGE,
- "jvm_memory_committed_bytes",
- "id",
+ SystemMetric.JVM_MEMORY_COMMITTED_BYTES.toString(),
+ SystemTag.ID.toString(),
memoryPoolBean.getName(),
- "area",
+ SystemTag.AREA.toString(),
area);
metricService.remove(
MetricType.AUTO_GAUGE,
- "jvm_memory_max_bytes",
- "id",
+ SystemMetric.JVM_MEMORY_MAX_BYTES.toString(),
+ SystemTag.ID.toString(),
memoryPoolBean.getName(),
- "area",
+ SystemTag.AREA.toString(),
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 1dbc5600cc9..cd8fcbd6cd0 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
@@ -24,6 +24,8 @@ import org.apache.iotdb.metrics.MetricConstant;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import java.lang.management.ManagementFactory;
import java.lang.management.ThreadInfo;
@@ -44,26 +46,32 @@ public class JvmThreadMetrics implements IMetricSet {
ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
metricService.createAutoGauge(
- "jvm_threads_peak_threads", MetricLevel.CORE, threadBean, ThreadMXBean::getPeakThreadCount);
+ SystemMetric.JVM_THREADS_PEAK_THREADS.toString(),
+ MetricLevel.CORE,
+ threadBean,
+ ThreadMXBean::getPeakThreadCount);
metricService.createAutoGauge(
- "jvm_threads_daemon_threads",
+ SystemMetric.JVM_THREADS_DAEMON_THREADS.toString(),
MetricLevel.CORE,
threadBean,
ThreadMXBean::getDaemonThreadCount);
metricService.createAutoGauge(
- "jvm_threads_live_threads", MetricLevel.CORE, threadBean, ThreadMXBean::getThreadCount);
+ SystemMetric.JVM_THREADS_LIVE_THREADS.toString(),
+ MetricLevel.CORE,
+ threadBean,
+ ThreadMXBean::getThreadCount);
try {
threadBean.getAllThreadIds();
for (Thread.State state : Thread.State.values()) {
metricService.createAutoGauge(
- "jvm_threads_states_threads",
+ SystemMetric.JVM_THREADS_STATUS_THREADS.toString(),
MetricLevel.CORE,
threadBean,
bean -> getThreadStateCount(bean, state),
- "state",
+ SystemTag.STATE.toString(),
getStateTagValue(state));
}
} catch (Exception exception) {
@@ -76,15 +84,18 @@ public class JvmThreadMetrics implements IMetricSet {
public void unbindFrom(AbstractMetricService metricService) {
ThreadMXBean threadBean = ManagementFactory.getThreadMXBean();
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_threads_peak_threads");
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_threads_daemon_threads");
- metricService.remove(MetricType.AUTO_GAUGE, "jvm_threads_live_threads");
+ metricService.remove(MetricType.AUTO_GAUGE, SystemMetric.JVM_THREADS_PEAK_THREADS.toString());
+ metricService.remove(MetricType.AUTO_GAUGE, SystemMetric.JVM_THREADS_DAEMON_THREADS.toString());
+ metricService.remove(MetricType.AUTO_GAUGE, SystemMetric.JVM_THREADS_LIVE_THREADS.toString());
try {
threadBean.getAllThreadIds();
for (Thread.State state : Thread.State.values()) {
metricService.remove(
- MetricType.AUTO_GAUGE, "jvm_threads_states_threads", "state", getStateTagValue(state));
+ MetricType.AUTO_GAUGE,
+ SystemMetric.JVM_THREADS_STATUS_THREADS.toString(),
+ SystemTag.STATE.toString(),
+ getStateTagValue(state));
}
} catch (Exception exception) {
// An error will be thrown for unsupported operations
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 e7766e944f2..0d21790c7fc 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
@@ -22,6 +22,7 @@ package org.apache.iotdb.metrics.metricsets.logback;
import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
@@ -36,7 +37,6 @@ import java.util.Map;
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 =
@@ -93,11 +93,16 @@ public class LogbackMetrics implements IMetricSet {
for (MetricsTurboFilter addMetricsTurboFilter : metricsTurboFilters.values()) {
loggerContext.getTurboFilterList().remove(addMetricsTurboFilter);
}
- 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");
+ metricService.remove(
+ MetricType.COUNTER, SystemMetric.LOGBACK_EVENTS.toString(), LEVEL, "error");
+ metricService.remove(
+ MetricType.COUNTER, SystemMetric.LOGBACK_EVENTS.toString(), LEVEL, "warn");
+ metricService.remove(
+ MetricType.COUNTER, SystemMetric.LOGBACK_EVENTS.toString(), LEVEL, "info");
+ metricService.remove(
+ MetricType.COUNTER, SystemMetric.LOGBACK_EVENTS.toString(), LEVEL, "debug");
+ metricService.remove(
+ MetricType.COUNTER, SystemMetric.LOGBACK_EVENTS.toString(), 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/metricsets/net/NetMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java
index 1cf4d6287e3..3561fd7997c 100644
--- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/NetMetrics.java
@@ -23,23 +23,15 @@ import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import java.util.Set;
public class NetMetrics implements IMetricSet {
private final INetMetricManager netMetricManager = INetMetricManager.getNetMetricManager();
-
- private static final String RECEIVED_BYTES = "received_bytes";
- private static final String RECEIVED_PACKETS = "received_packets";
- private static final String TRANSMITTED_BYTES = "transmitted_bytes";
- private static final String TRANSMITTED_PACKETS = "transmitted_packets";
- private static final String CONNECTION_NUM = "connection_num";
-
- private static final String TYPE = "type";
- private static final String IFACE_NAME = "iface_name";
private static final String RECEIVE = "receive";
private static final String TRANSMIT = "transmit";
- private static final String PROCESS_NAME = "process_num";
private final String processName;
@@ -53,48 +45,48 @@ public class NetMetrics implements IMetricSet {
Set<String> ifaceSet = netMetricManager.getIfaceSet();
for (String iface : ifaceSet) {
metricService.createAutoGauge(
- RECEIVED_BYTES,
+ SystemMetric.RECEIVED_BYTES.toString(),
MetricLevel.IMPORTANT,
netMetricManager,
x -> x.getReceivedByte().getOrDefault(iface, 0L).doubleValue(),
- TYPE,
+ SystemTag.TYPE.toString(),
RECEIVE,
- IFACE_NAME,
+ SystemTag.IFACE_NAME.toString(),
iface);
metricService.createAutoGauge(
- TRANSMITTED_BYTES,
+ SystemMetric.TRANSMITTED_BYTES.toString(),
MetricLevel.IMPORTANT,
netMetricManager,
x -> x.getTransmittedBytes().getOrDefault(iface, 0L).doubleValue(),
- TYPE,
+ SystemTag.TYPE.toString(),
TRANSMIT,
- IFACE_NAME,
+ SystemTag.IFACE_NAME.toString(),
iface);
metricService.createAutoGauge(
- RECEIVED_PACKETS,
+ SystemMetric.RECEIVED_PACKETS.toString(),
MetricLevel.IMPORTANT,
netMetricManager,
x -> x.getReceivedPackets().getOrDefault(iface, 0L).doubleValue(),
- TYPE,
+ SystemTag.TYPE.toString(),
RECEIVE,
- IFACE_NAME,
+ SystemTag.IFACE_NAME.toString(),
iface);
metricService.createAutoGauge(
- TRANSMITTED_PACKETS,
+ SystemMetric.TRANSMITTED_PACKETS.toString(),
MetricLevel.IMPORTANT,
netMetricManager,
x -> x.getTransmittedPackets().getOrDefault(iface, 0L).doubleValue(),
- TYPE,
+ SystemTag.TYPE.toString(),
TRANSMIT,
- IFACE_NAME,
+ SystemTag.IFACE_NAME.toString(),
iface);
}
metricService.createAutoGauge(
- CONNECTION_NUM,
+ SystemMetric.CONNECTION_NUM.toString(),
MetricLevel.NORMAL,
netMetricManager,
INetMetricManager::getConnectionNum,
- PROCESS_NAME,
+ SystemTag.PROCESS_NAME.toString(),
this.processName);
}
@@ -102,13 +94,39 @@ public class NetMetrics implements IMetricSet {
public void unbindFrom(AbstractMetricService metricService) {
Set<String> ifaceSet = netMetricManager.getIfaceSet();
for (String iface : ifaceSet) {
- metricService.remove(MetricType.AUTO_GAUGE, RECEIVED_BYTES, TYPE, RECEIVE, IFACE_NAME, iface);
- metricService.remove(MetricType.AUTO_GAUGE, TRANSMIT, TYPE, TRANSMIT, IFACE_NAME, iface);
metricService.remove(
- MetricType.AUTO_GAUGE, RECEIVED_PACKETS, TYPE, RECEIVE, IFACE_NAME, iface);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.RECEIVED_BYTES.toString(),
+ SystemTag.TYPE.toString(),
+ RECEIVE,
+ SystemTag.IFACE_NAME.toString(),
+ iface);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ TRANSMIT,
+ SystemTag.TYPE.toString(),
+ TRANSMIT,
+ SystemTag.IFACE_NAME.toString(),
+ iface);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.RECEIVED_PACKETS.toString(),
+ SystemTag.TYPE.toString(),
+ RECEIVE,
+ SystemTag.IFACE_NAME.toString(),
+ iface);
metricService.remove(
- MetricType.AUTO_GAUGE, TRANSMITTED_PACKETS, TYPE, TRANSMIT, IFACE_NAME, iface);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.TRANSMITTED_PACKETS.toString(),
+ SystemTag.TYPE.toString(),
+ TRANSMIT,
+ SystemTag.IFACE_NAME.toString(),
+ iface);
}
- metricService.remove(MetricType.AUTO_GAUGE, CONNECTION_NUM, PROCESS_NAME, this.processName);
+ metricService.remove(
+ MetricType.AUTO_GAUGE,
+ SystemMetric.CONNECTION_NUM.toString(),
+ SystemTag.PROCESS_NAME.toString(),
+ this.processName);
}
}
diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java
similarity index 58%
rename from iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
rename to iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java
index f85262a12e5..39fd1fe5ad8 100644
--- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/service/metrics/SystemMetrics.java
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java
@@ -17,19 +17,15 @@
* under the License.
*/
-package org.apache.iotdb.db.service.metrics;
+package org.apache.iotdb.metrics.metricsets.system;
-import org.apache.iotdb.commons.concurrent.IoTDBThreadPoolFactory;
-import org.apache.iotdb.commons.concurrent.ThreadName;
-import org.apache.iotdb.commons.concurrent.threadpool.ScheduledExecutorUtil;
-import org.apache.iotdb.commons.service.metric.enums.Metric;
-import org.apache.iotdb.commons.service.metric.enums.Tag;
-import org.apache.iotdb.db.conf.IoTDBDescriptor;
import org.apache.iotdb.metrics.AbstractMetricService;
-import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
+import org.apache.iotdb.tsfile.utils.FSUtils;
import com.sun.management.OperatingSystemMXBean;
import org.slf4j.Logger;
@@ -41,27 +37,19 @@ import java.nio.file.FileStore;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+import java.util.ArrayList;
import java.util.HashSet;
import java.util.Set;
-import java.util.concurrent.Future;
-import java.util.concurrent.ScheduledExecutorService;
-import java.util.concurrent.TimeUnit;
public class SystemMetrics implements IMetricSet {
private static final Logger logger = LoggerFactory.getLogger(SystemMetrics.class);
private static final String SYSTEM = "system";
private final com.sun.management.OperatingSystemMXBean osMxBean;
- private Future<?> currentServiceFuture;
- private final ScheduledExecutorService service =
- IoTDBThreadPoolFactory.newSingleThreadScheduledExecutor(
- ThreadName.SYSTEM_SCHEDULE_METRICS.getName());
private final Set<FileStore> fileStores = new HashSet<>();
- private final boolean isDataNode;
- private long systemDiskTotalSpace = 0L;
- private long systemDiskFreeSpace = 0L;
+ private final ArrayList<String> diskDirs;
- public SystemMetrics(boolean isDataNode) {
- this.isDataNode = isDataNode;
+ public SystemMetrics(ArrayList<String> diskDirs) {
+ this.diskDirs = diskDirs;
this.osMxBean = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
}
@@ -69,130 +57,117 @@ public class SystemMetrics implements IMetricSet {
public void bindTo(AbstractMetricService metricService) {
collectSystemCpuInfo(metricService);
collectSystemMemInfo(metricService);
-
- // register disk related metrics and start to collect the value of metrics in async way
- if (null == currentServiceFuture && isDataNode) {
- collectSystemDiskInfo(metricService);
- currentServiceFuture =
- ScheduledExecutorUtil.safelyScheduleAtFixedRate(
- service,
- this::collectDiskMetrics,
- 1,
- MetricConfigDescriptor.getInstance()
- .getMetricConfig()
- .getAsyncCollectPeriodInSecond(),
- TimeUnit.SECONDS);
- }
+ collectSystemDiskInfo(metricService);
}
@Override
public void unbindFrom(AbstractMetricService metricService) {
- // first stop to update the value of some metrics in async way
- if (currentServiceFuture != null && isDataNode) {
- currentServiceFuture.cancel(true);
- currentServiceFuture = null;
- }
-
removeSystemCpuInfo(metricService);
- if (isDataNode) {
- removeSystemDiskInfo(metricService);
- }
+ removeSystemDiskInfo(metricService);
removeSystemMemInfo(metricService);
}
private void collectSystemCpuInfo(AbstractMetricService metricService) {
metricService.createAutoGauge(
- Metric.SYS_CPU_LOAD.toString(),
+ SystemMetric.SYS_CPU_LOAD.toString(),
MetricLevel.CORE,
osMxBean,
a -> osMxBean.getSystemCpuLoad() * 100,
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService
.getOrCreateGauge(
- Metric.SYS_CPU_CORES.toString(), MetricLevel.CORE, Tag.NAME.toString(), SYSTEM)
+ SystemMetric.SYS_CPU_CORES.toString(),
+ MetricLevel.CORE,
+ SystemTag.NAME.toString(),
+ SYSTEM)
.set(osMxBean.getAvailableProcessors());
}
private void removeSystemCpuInfo(AbstractMetricService metricService) {
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.SYS_CPU_LOAD.toString(), Tag.NAME.toString(), SYSTEM);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.SYS_CPU_LOAD.toString(),
+ SystemTag.NAME.toString(),
+ SYSTEM);
metricService.remove(
- MetricType.GAUGE, Metric.SYS_CPU_CORES.toString(), Tag.NAME.toString(), SYSTEM);
+ MetricType.GAUGE, SystemMetric.SYS_CPU_CORES.toString(), SystemTag.NAME.toString(), SYSTEM);
}
private void collectSystemMemInfo(AbstractMetricService metricService) {
metricService
.getOrCreateGauge(
- Metric.SYS_TOTAL_PHYSICAL_MEMORY_SIZE.toString(),
+ SystemMetric.SYS_TOTAL_PHYSICAL_MEMORY_SIZE.toString(),
MetricLevel.CORE,
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM)
.set(osMxBean.getTotalPhysicalMemorySize());
metricService.createAutoGauge(
- Metric.SYS_FREE_PHYSICAL_MEMORY_SIZE.toString(),
+ SystemMetric.SYS_FREE_PHYSICAL_MEMORY_SIZE.toString(),
MetricLevel.CORE,
osMxBean,
a -> osMxBean.getFreePhysicalMemorySize(),
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.createAutoGauge(
- Metric.SYS_TOTAL_SWAP_SPACE_SIZE.toString(),
+ SystemMetric.SYS_TOTAL_SWAP_SPACE_SIZE.toString(),
MetricLevel.CORE,
osMxBean,
a -> osMxBean.getTotalSwapSpaceSize(),
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.createAutoGauge(
- Metric.SYS_FREE_SWAP_SPACE_SIZE.toString(),
+ SystemMetric.SYS_FREE_SWAP_SPACE_SIZE.toString(),
MetricLevel.CORE,
osMxBean,
a -> osMxBean.getFreeSwapSpaceSize(),
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.createAutoGauge(
- Metric.SYS_COMMITTED_VM_SIZE.toString(),
+ SystemMetric.SYS_COMMITTED_VM_SIZE.toString(),
MetricLevel.CORE,
osMxBean,
a -> osMxBean.getCommittedVirtualMemorySize(),
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
}
private void removeSystemMemInfo(AbstractMetricService metricService) {
metricService.remove(
MetricType.GAUGE,
- Metric.SYS_TOTAL_PHYSICAL_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
+ SystemMetric.SYS_TOTAL_PHYSICAL_MEMORY_SIZE.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.remove(
MetricType.AUTO_GAUGE,
- Metric.SYS_FREE_PHYSICAL_MEMORY_SIZE.toString(),
- Tag.NAME.toString(),
+ SystemMetric.SYS_FREE_PHYSICAL_MEMORY_SIZE.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.remove(
MetricType.AUTO_GAUGE,
- Metric.SYS_TOTAL_SWAP_SPACE_SIZE.toString(),
- Tag.NAME.toString(),
+ SystemMetric.SYS_TOTAL_SWAP_SPACE_SIZE.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.remove(
MetricType.AUTO_GAUGE,
- Metric.SYS_FREE_SWAP_SPACE_SIZE.toString(),
- Tag.NAME.toString(),
+ SystemMetric.SYS_FREE_SWAP_SPACE_SIZE.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.remove(
MetricType.AUTO_GAUGE,
- Metric.SYS_COMMITTED_VM_SIZE.toString(),
- Tag.NAME.toString(),
+ SystemMetric.SYS_COMMITTED_VM_SIZE.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
}
private void collectSystemDiskInfo(AbstractMetricService metricService) {
- String[] dataDirs = IoTDBDescriptor.getInstance().getConfig().getLocalDataDirs();
- for (String dataDir : dataDirs) {
- Path path = Paths.get(dataDir);
+ for (String diskDir : diskDirs) {
+ if (!FSUtils.isLocal(diskDir)) {
+ continue;
+ }
+ Path path = Paths.get(diskDir);
FileStore fileStore = null;
try {
fileStore = Files.getFileStore(path);
@@ -202,7 +177,7 @@ public class SystemMetrics implements IMetricSet {
try {
fileStore = Files.getFileStore(path);
} catch (IOException innerException) {
- logger.error("Failed to get storage path of {}, because", dataDir, innerException);
+ logger.error("Failed to get storage path of {}, because", diskDir, innerException);
}
}
if (null != fileStore) {
@@ -211,50 +186,58 @@ public class SystemMetrics implements IMetricSet {
}
metricService.createAutoGauge(
- Metric.SYS_DISK_TOTAL_SPACE.toString(),
+ SystemMetric.SYS_DISK_TOTAL_SPACE.toString(),
MetricLevel.CORE,
this,
SystemMetrics::getSystemDiskTotalSpace,
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
metricService.createAutoGauge(
- Metric.SYS_DISK_FREE_SPACE.toString(),
+ SystemMetric.SYS_DISK_FREE_SPACE.toString(),
MetricLevel.CORE,
this,
SystemMetrics::getSystemDiskFreeSpace,
- Tag.NAME.toString(),
+ SystemTag.NAME.toString(),
SYSTEM);
}
private void removeSystemDiskInfo(AbstractMetricService metricService) {
- fileStores.clear();
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.SYS_DISK_TOTAL_SPACE.toString(), Tag.NAME.toString(), SYSTEM);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.SYS_DISK_TOTAL_SPACE.toString(),
+ SystemTag.NAME.toString(),
+ SYSTEM);
metricService.remove(
- MetricType.AUTO_GAUGE, Metric.SYS_DISK_FREE_SPACE.toString(), Tag.NAME.toString(), SYSTEM);
+ MetricType.AUTO_GAUGE,
+ SystemMetric.SYS_DISK_FREE_SPACE.toString(),
+ SystemTag.NAME.toString(),
+ SYSTEM);
+
+ diskDirs.clear();
+ fileStores.clear();
}
- private void collectDiskMetrics() {
+ public long getSystemDiskTotalSpace() {
long sysTotalSpace = 0L;
- long sysFreeSpace = 0L;
-
for (FileStore fileStore : fileStores) {
try {
sysTotalSpace += fileStore.getTotalSpace();
- sysFreeSpace += fileStore.getUsableSpace();
} catch (IOException e) {
logger.error("Failed to statistic the size of {}, because", fileStore, e);
}
}
- systemDiskTotalSpace = sysTotalSpace;
- systemDiskFreeSpace = sysFreeSpace;
- }
-
- public long getSystemDiskTotalSpace() {
- return systemDiskTotalSpace;
+ return sysTotalSpace;
}
public long getSystemDiskFreeSpace() {
- return systemDiskFreeSpace;
+ long sysFreeSpace = 0L;
+ for (FileStore fileStore : fileStores) {
+ try {
+ sysFreeSpace += fileStore.getUsableSpace();
+ } catch (IOException e) {
+ logger.error("Failed to statistic the size of {}, because", fileStore, e);
+ }
+ }
+ return sysFreeSpace;
}
}
diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/SystemMetric.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/SystemMetric.java
new file mode 100644
index 00000000000..6898a1dab83
--- /dev/null
+++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/SystemMetric.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.iotdb.metrics.utils;
+
+// universal metric related to system
+public enum SystemMetric {
+ // thread pool related
+ THREAD_POOL_ACTIVE_THREAD_COUNT("thread_pool_active_thread_count"),
+ THREAD_POOL_DONE_TASK_COUNT("thread_pool_done_task_count"),
+ THREAD_POOL_WAITING_TASK_COUNT("thread_pool_waiting_task_count"),
+ THREAD_POOL_CORE_SIZE("thread_pool_core_size"),
+ THREAD_POOL_LARGEST_POOL_SIZE("thread_pool_largest_pool_size"),
+ // disk related
+ DISK_IO_SIZE("disk_io_size"),
+ DISK_IO_OPS("disk_io_ops"),
+ DISK_IO_TIME("disk_io_time"),
+ DISK_IO_AVG_TIME("disk_io_avg_time"),
+ DISK_IO_AVG_SIZE("disk_io_avg_size"),
+ DISK_IO_SECTOR_NUM("disk_io_sector_num"),
+ DISK_IO_BUSY_PERCENTAGE("disk_io_busy_percentage"),
+ DISK_IO_AVG_QUEUE_SIZE("disk_io_avg_queue_size"),
+ // process related
+ PROCESS_IO_SIZE("process_io_size"),
+ PROCESS_IO_OPS("process_io_ops"),
+ PROCESS_CPU_LOAD("process_cpu_load"),
+ PROCESS_CPU_TIME("process_cpu_time"),
+ PROCESS_MAX_MEM("process_max_mem"),
+ PROCESS_USED_MEM("process_used_mem"),
+ PROCESS_TOTAL_MEM("process_total_mem"),
+ PROCESS_FREE_MEM("process_free_mem"),
+ PROCESS_THREADS_COUNT("process_threads_count"),
+ PROCESS_MEM_RATIO("process_mem_ratio"),
+ PROCESS_STATUS("process_status"),
+ // system related
+ SYS_CPU_LOAD("sys_cpu_load"),
+ SYS_CPU_CORES("sys_cpu_cores"),
+ SYS_TOTAL_PHYSICAL_MEMORY_SIZE("sys_total_physical_memory_size"),
+ SYS_FREE_PHYSICAL_MEMORY_SIZE("sys_free_physical_memory_size"),
+ SYS_TOTAL_SWAP_SPACE_SIZE("sys_total_swap_space_size"),
+ SYS_FREE_SWAP_SPACE_SIZE("sys_free_swap_space_size"),
+ SYS_COMMITTED_VM_SIZE("sys_committed_vm_size"),
+ SYS_DISK_TOTAL_SPACE("sys_disk_total_space"),
+ SYS_DISK_FREE_SPACE("sys_disk_free_space"),
+ // cpu related
+ MODULE_CPU_USAGE("module_cpu_usage"),
+ POOL_CPU_USAGE("pool_cpu_usage"),
+ MODULE_USER_TIME_PERCENTAGE("module_user_time_percentage"),
+ POOL_USER_TIME_PERCENTAGE("user_time_percentage"),
+ // jvm related
+ JVM_CLASSES_LOADED_CLASSES("jvm_classes_loaded_classes"),
+ JVM_CLASSES_UNLOADED_CLASSES("jvm_classes_unloaded_classes"),
+ JVM_COMPILATION_TIME_MS("jvm_compilation_time_ms"),
+ JVM_BUFFER_COUNT_BUFFERS("jvm_buffer_count_buffers"),
+ JVM_BUFFER_MEMORY_USED_BYTES("jvm_buffer_memory_used_bytes"),
+ JVM_BUFFER_TOTAL_CAPACITY_BYTES("jvm_buffer_total_capacity_bytes"),
+ JVM_MEMORY_USED_BYTES("jvm_memory_used_bytes"),
+ JVM_MEMORY_COMMITTED_BYTES("jvm_memory_committed_bytes"),
+ JVM_MEMORY_MAX_BYTES("jvm_memory_max_bytes"),
+ JVM_THREADS_PEAK_THREADS("jvm_threads_peak_threads"),
+ JVM_THREADS_DAEMON_THREADS("jvm_threads_daemon_threads"),
+ JVM_THREADS_LIVE_THREADS("jvm_threads_live_threads"),
+ JVM_THREADS_STATUS_THREADS("jvm_threads_states_threads"),
+ JVM_GC_MAX_DATA_SIZE_BYTES("jvm_gc_max_data_size_bytes"),
+ JVM_GC_LIVE_DATA_SIZE_BYTES("jvm_gc_live_data_size_bytes"),
+ JVM_GC_MEMORY_ALLOCATED_BYTES("jvm_gc_memory_allocated_bytes"),
+ JVM_GC_MEMORY_PROMOTED_BYTES("jvm_gc_memory_promoted_bytes"),
+ // net related
+ RECEIVED_BYTES("received_bytes"),
+ RECEIVED_PACKETS("received_packets"),
+ TRANSMITTED_BYTES("transmitted_bytes"),
+ TRANSMITTED_PACKETS("transmitted_packets"),
+ CONNECTION_NUM("connection_num"),
+ // logback related
+ LOGBACK_EVENTS("logback_events"),
+ // uptime related
+ UP_TIME("up_time");
+
+ final String value;
+
+ SystemMetric(String value) {
+ this.value = value;
+ }
+
+ @Override
+ public String toString() {
+ return value;
+ }
+}
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/utils/SystemTag.java
similarity index 50%
copy from iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/UpTimeMetrics.java
copy to iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/SystemTag.java
index 0f442100413..ad909afece0 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/utils/SystemTag.java
@@ -17,28 +17,32 @@
* under the License.
*/
-package org.apache.iotdb.metrics.metricsets;
+package org.apache.iotdb.metrics.utils;
-import org.apache.iotdb.metrics.AbstractMetricService;
-import org.apache.iotdb.metrics.config.MetricConfig;
-import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
-import org.apache.iotdb.metrics.utils.MetricLevel;
-import org.apache.iotdb.metrics.utils.MetricType;
+// universal tag related to system
+public enum SystemTag {
+ TYPE("type"),
+ NAME("name"),
+ FROM("from"),
+ POOL("pool"),
+ POOL_NAME("pool_name"),
+ MODULE("module"),
+ DISK("disk_id"),
+ ID("id"),
+ AREA("area"),
+ COMPILER("compiler"),
+ STATE("state"),
+ IFACE_NAME("iface_name"),
+ PROCESS_NAME("process_num");
-public class UpTimeMetrics implements IMetricSet {
- MetricConfig metricConfig = MetricConfigDescriptor.getInstance().getMetricConfig();
+ final String value;
- @Override
- public void bindTo(AbstractMetricService metricService) {
- metricService.createAutoGauge(
- "up_time",
- MetricLevel.CORE,
- metricConfig,
- config -> System.nanoTime() - config.getUpTimeInNs());
+ SystemTag(String value) {
+ this.value = value;
}
@Override
- public void unbindFrom(AbstractMetricService metricService) {
- metricService.remove(MetricType.AUTO_GAUGE, "up_time");
+ public String toString() {
+ return value;
}
}
diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadPoolMetrics.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadPoolMetrics.java
index ee1b32c5129..67bc150664f 100644
--- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadPoolMetrics.java
+++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/concurrent/ThreadPoolMetrics.java
@@ -24,18 +24,14 @@ import org.apache.iotdb.metrics.AbstractMetricService;
import org.apache.iotdb.metrics.metricsets.IMetricSet;
import org.apache.iotdb.metrics.utils.MetricLevel;
import org.apache.iotdb.metrics.utils.MetricType;
+import org.apache.iotdb.metrics.utils.SystemMetric;
+import org.apache.iotdb.metrics.utils.SystemTag;
import java.util.HashMap;
import java.util.Map;
@SuppressWarnings("java:S6548")
public class ThreadPoolMetrics implements IMetricSet {
- private static final String THREAD_POOL_ACTIVE_THREAD_COUNT = "thread_pool_active_thread_count";
- private static final String THREAD_POOL_DONE_TASK_COUNT = "thread_pool_done_task_count";
- private static final String THREAD_POOL_WAITING_TASK_COUNT = "thread_pool_waiting_task_count";
- private static final String THREAD_POOL_CORE_SIZE = "thread_pool_core_size";
- private static final String THREAD_POOL_LARGEST_POOL_SIZE = "thread_pool_largest_pool_size";
- private static final String POOL_NAME = "pool_name";
private AbstractMetricService metricService;
private Map<String, IThreadPoolMBean> notRegisteredPoolMap = new HashMap<>();
private Map<String, IThreadPoolMBean> registeredPoolMap = new HashMap<>();
@@ -53,39 +49,39 @@ public class ThreadPoolMetrics implements IMetricSet {
} else {
registeredPoolMap.put(name, pool);
metricService.createAutoGauge(
- THREAD_POOL_ACTIVE_THREAD_COUNT,
+ SystemMetric.THREAD_POOL_ACTIVE_THREAD_COUNT.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> registeredPoolMap.get(name).getActiveCount(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
name);
metricService.createAutoGauge(
- THREAD_POOL_CORE_SIZE,
+ SystemMetric.THREAD_POOL_CORE_SIZE.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> registeredPoolMap.get(name).getCorePoolSize(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
name);
metricService.createAutoGauge(
- THREAD_POOL_WAITING_TASK_COUNT,
+ SystemMetric.THREAD_POOL_WAITING_TASK_COUNT.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> registeredPoolMap.get(name).getQueueLength(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
name);
metricService.createAutoGauge(
- THREAD_POOL_DONE_TASK_COUNT,
+ SystemMetric.THREAD_POOL_DONE_TASK_COUNT.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> registeredPoolMap.get(name).getCompletedTaskCount(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
name);
metricService.createAutoGauge(
- THREAD_POOL_LARGEST_POOL_SIZE,
+ SystemMetric.THREAD_POOL_LARGEST_POOL_SIZE.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> registeredPoolMap.get(name).getLargestPoolSize(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
name);
}
}
@@ -97,39 +93,39 @@ public class ThreadPoolMetrics implements IMetricSet {
this.metricService = metricService;
for (Map.Entry<String, IThreadPoolMBean> entry : notRegisteredPoolMap.entrySet()) {
metricService.createAutoGauge(
- THREAD_POOL_ACTIVE_THREAD_COUNT,
+ SystemMetric.THREAD_POOL_ACTIVE_THREAD_COUNT.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> entry.getValue().getActiveCount(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
entry.getKey());
metricService.createAutoGauge(
- THREAD_POOL_CORE_SIZE,
+ SystemMetric.THREAD_POOL_CORE_SIZE.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> entry.getValue().getCorePoolSize(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
entry.getKey());
metricService.createAutoGauge(
- THREAD_POOL_WAITING_TASK_COUNT,
+ SystemMetric.THREAD_POOL_WAITING_TASK_COUNT.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> entry.getValue().getQueue().size(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
entry.getKey());
metricService.createAutoGauge(
- THREAD_POOL_DONE_TASK_COUNT,
+ SystemMetric.THREAD_POOL_DONE_TASK_COUNT.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> entry.getValue().getCompletedTaskCount(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
entry.getKey());
metricService.createAutoGauge(
- THREAD_POOL_LARGEST_POOL_SIZE,
+ SystemMetric.THREAD_POOL_LARGEST_POOL_SIZE.toString(),
MetricLevel.IMPORTANT,
registeredPoolMap,
map -> entry.getValue().getLargestPoolSize(),
- POOL_NAME,
+ SystemTag.POOL_NAME.toString(),
entry.getKey());
}
registeredPoolMap.putAll(notRegisteredPoolMap);
@@ -141,14 +137,30 @@ public class ThreadPoolMetrics implements IMetricSet {
public void unbindFrom(AbstractMetricService metricService) {
for (Map.Entry<String, IThreadPoolMBean> entry : registeredPoolMap.entrySet()) {
metricService.remove(
- MetricType.GAUGE, THREAD_POOL_ACTIVE_THREAD_COUNT, POOL_NAME, entry.getKey());
- metricService.remove(MetricType.GAUGE, THREAD_POOL_CORE_SIZE, POOL_NAME, entry.getKey());
+ MetricType.GAUGE,
+ SystemMetric.THREAD_POOL_ACTIVE_THREAD_COUNT.toString(),
+ SystemTag.POOL_NAME.toString(),
+ entry.getKey());
metricService.remove(
- MetricType.GAUGE, THREAD_POOL_WAITING_TASK_COUNT, POOL_NAME, entry.getKey());
+ MetricType.GAUGE,
+ SystemMetric.THREAD_POOL_CORE_SIZE.toString(),
+ SystemTag.POOL_NAME.toString(),
+ entry.getKey());
metricService.remove(
- MetricType.GAUGE, THREAD_POOL_DONE_TASK_COUNT, POOL_NAME, entry.getKey());
+ MetricType.GAUGE,
+ SystemMetric.THREAD_POOL_WAITING_TASK_COUNT.toString(),
+ SystemTag.POOL_NAME.toString(),
+ entry.getKey());
metricService.remove(
- MetricType.GAUGE, THREAD_POOL_LARGEST_POOL_SIZE, POOL_NAME, entry.getKey());
+ MetricType.GAUGE,
+ SystemMetric.THREAD_POOL_DONE_TASK_COUNT.toString(),
+ SystemTag.POOL_NAME.toString(),
+ entry.getKey());
+ metricService.remove(
+ MetricType.GAUGE,
+ SystemMetric.THREAD_POOL_LARGEST_POOL_SIZE.toString(),
+ SystemTag.POOL_NAME.toString(),
+ entry.getKey());
}
}
diff --git a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
index 9a5c092b080..c377ffbbbcd 100644
--- a/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
+++ b/iotdb-core/node-commons/src/main/java/org/apache/iotdb/commons/service/metric/enums/Metric.java
@@ -90,37 +90,7 @@ public enum Metric {
LOCAL_EXECUTION_PLANNER("local_execution_planner"),
// file related
FILE_SIZE("file_size"),
- FILE_COUNT("file_count"),
- // disk related
- DISK_IO_SIZE("disk_io_size"),
- DISK_IO_OPS("disk_io_ops"),
- DISK_IO_TIME("disk_io_time"),
- DISK_IO_AVG_TIME("disk_io_avg_time"),
- DISK_IO_SECTOR_NUM("disk_io_sector_num"),
- DISK_IO_BUSY_PERCENTAGE("disk_io_busy_percentage"),
- DISK_IO_QUEUE_SIZE("disk_io_queue_size"),
- // process related
- PROCESS_IO_SIZE("process_io_size"),
- PROCESS_IO_OPS("process_io_ops"),
- PROCESS_CPU_LOAD("process_cpu_load"),
- PROCESS_CPU_TIME("process_cpu_time"),
- PROCESS_MAX_MEM("process_max_mem"),
- PROCESS_USED_MEM("process_used_mem"),
- PROCESS_TOTAL_MEM("process_total_mem"),
- PROCESS_FREE_MEM("process_free_mem"),
- PROCESS_THREADS_COUNT("process_threads_count"),
- PROCESS_MEM_RATIO("process_mem_ratio"),
- PROCESS_STATUS("process_status"),
- // system related
- SYS_CPU_LOAD("sys_cpu_load"),
- SYS_CPU_CORES("sys_cpu_cores"),
- SYS_TOTAL_PHYSICAL_MEMORY_SIZE("sys_total_physical_memory_size"),
- SYS_FREE_PHYSICAL_MEMORY_SIZE("sys_free_physical_memory_size"),
- SYS_TOTAL_SWAP_SPACE_SIZE("sys_total_swap_space_size"),
- SYS_FREE_SWAP_SPACE_SIZE("sys_free_swap_space_size"),
- SYS_COMMITTED_VM_SIZE("sys_committed_vm_size"),
- SYS_DISK_TOTAL_SPACE("sys_disk_total_space"),
- SYS_DISK_FREE_SPACE("sys_disk_free_space");
+ FILE_COUNT("file_count");
final String value;