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"),

Reply via email to