This is an automated email from the ASF dual-hosted git repository. spricoder pushed a commit to branch fix/disk-usage-metric in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit b3f5165dafa45cf4f16cf06bb518f660f70ce2cb Author: spricoder <[email protected]> AuthorDate: Thu Oct 12 12:15:59 2023 +0800 1. Optimize the name of method 2. Add remove metric set when leader change --- .../thrift/impl/DataNodeInternalRPCServiceImpl.java | 2 +- .../compaction/execute/utils/CompactionUtils.java | 2 +- .../metrics/metricsets/system/SystemMetrics.java | 19 +++++++++++++++++++ .../org/apache/iotdb/metrics/utils/SystemMetric.java | 1 + 4 files changed, 22 insertions(+), 2 deletions(-) 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 084662c9f8a..2d5446b286d 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 @@ -1277,7 +1277,7 @@ public class DataNodeInternalRPCServiceImpl implements IDataNodeRPCService.Iface double freeDisk = MetricService.getInstance() .getAutoGauge( - SystemMetric.SYS_DISK_FREE_SPACE.toString(), + SystemMetric.SYS_AVAILABLE_SPACE.toString(), MetricLevel.CORE, Tag.NAME.toString(), SYSTEM) diff --git a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java index 76e4dd4e813..253de9e3d51 100644 --- a/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java +++ b/iotdb-core/datanode/src/main/java/org/apache/iotdb/db/storageengine/dataregion/compaction/execute/utils/CompactionUtils.java @@ -473,7 +473,7 @@ public class CompactionUtils { double freeDisk = MetricService.getInstance() .getAutoGauge( - SystemMetric.SYS_DISK_FREE_SPACE.toString(), + SystemMetric.SYS_AVAILABLE_SPACE.toString(), MetricLevel.CORE, Tag.NAME.toString(), SYSTEM) diff --git a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java index d61b7b71120..478ffd22cc6 100644 --- a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java +++ b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/system/SystemMetrics.java @@ -204,6 +204,13 @@ public class SystemMetrics implements IMetricSet { SystemMetrics::getSystemDiskFreeSpace, SystemTag.NAME.toString(), SYSTEM); + metricService.createAutoGauge( + SystemMetric.SYS_AVAILABLE_SPACE.toString(), + MetricLevel.CORE, + this, + SystemMetrics::getSystemAvailableSpace, + SystemTag.NAME.toString(), + SYSTEM); } private void removeSystemDiskInfo(AbstractMetricService metricService) { @@ -235,6 +242,18 @@ public class SystemMetrics implements IMetricSet { } public long getSystemDiskFreeSpace() { + long sysFreeSpace = 0L; + for (FileStore fileStore : fileStores) { + try { + sysFreeSpace += fileStore.getUnallocatedSpace(); + } catch (IOException e) { + logger.error("Failed to statistic the size of {}, because", fileStore, e); + } + } + return sysFreeSpace; + } + + public long getSystemAvailableSpace() { long sysFreeSpace = 0L; for (FileStore fileStore : fileStores) { try { 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 index e04586c0f11..5fb24da489e 100644 --- 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 @@ -58,6 +58,7 @@ public enum SystemMetric { SYS_COMMITTED_VM_SIZE("sys_committed_vm_size"), SYS_DISK_TOTAL_SPACE("sys_disk_total_space"), SYS_DISK_FREE_SPACE("sys_disk_free_space"), + SYS_AVAILABLE_SPACE("sys_available_space"), // cpu related MODULE_CPU_USAGE("module_cpu_usage"), POOL_CPU_USAGE("pool_cpu_usage"),
