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 3a4c085afee Add OFF level (#11530)
3a4c085afee is described below

commit 3a4c085afee718d42eaaee1497f6220008ffcd9a
Author: ZhangHongYin <[email protected]>
AuthorDate: Mon Nov 13 20:03:12 2023 +0800

    Add OFF level (#11530)
    
    * Add OFF
    
    * Fix comment
---
 .../resources/conf/iotdb-confignode.properties     |  2 +-
 .../resources/conf/iotdb-datanode.properties       |  2 +-
 .../disk/DoNothingDiskMetricsManager.java}         | 28 ++-------------
 .../metricsets/disk/IDiskMetricsManager.java       | 24 +++++++++----
 .../net/DoNothingNetMetricManager.java}            | 28 ++-------------
 .../metrics/metricsets/net/INetMetricManager.java  | 33 ++++++++++++------
 .../metrics/metricsets/system/SystemMetrics.java   | 40 +++++++++++++---------
 .../apache/iotdb/metrics/utils/MetricLevel.java    |  2 +-
 8 files changed, 71 insertions(+), 88 deletions(-)

diff --git 
a/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties 
b/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties
index 7477bb8e1a1..158d9f94670 100644
--- 
a/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties
+++ 
b/iotdb-core/confignode/src/assembly/resources/conf/iotdb-confignode.properties
@@ -125,7 +125,7 @@ cn_seed_config_node=127.0.0.1:10710
 # cn_metric_reporter_list=
 
 # The level of metric module
-# Options: [CORE, IMPORTANT, NORMAL, ALL]
+# Options: [OFF, CORE, IMPORTANT, NORMAL, ALL]
 # Datatype: String
 # cn_metric_level=CORE
 
diff --git 
a/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties 
b/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties
index e15087f1a30..84969f014ec 100644
--- a/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties
+++ b/iotdb-core/datanode/src/assembly/resources/conf/iotdb-datanode.properties
@@ -261,7 +261,7 @@ dn_seed_config_node=127.0.0.1:10710
 # dn_metric_reporter_list=
 
 # The level of metric module
-# Options: [CORE, IMPORTANT, NORMAL, ALL]
+# Options: [OFF, CORE, IMPORTANT, NORMAL, ALL]
 # Datatype: String
 # dn_metric_level=CORE
 
diff --git 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DoNothingDiskMetricsManager.java
similarity index 61%
copy from 
iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
copy to 
iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DoNothingDiskMetricsManager.java
index 70bd3aca4af..a622af9f759 100644
--- 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
+++ 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/DoNothingDiskMetricsManager.java
@@ -7,7 +7,7 @@
  * "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
+ *     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
@@ -17,28 +17,6 @@
  * under the License.
  */
 
-package org.apache.iotdb.metrics.utils;
+package org.apache.iotdb.metrics.metricsets.disk;
 
-public enum MetricLevel {
-  ALL(0),
-  NORMAL(1),
-  IMPORTANT(2),
-  CORE(3),
-  DO_NOTHING(4);
-
-  /** Level of metric service. */
-  final int level;
-
-  MetricLevel(int level) {
-    this.level = level;
-  }
-
-  public static boolean higherOrEqual(MetricLevel level1, MetricLevel level2) {
-    return level1.level >= level2.level;
-  }
-
-  @Override
-  public String toString() {
-    return name();
-  }
-}
+public class DoNothingDiskMetricsManager implements IDiskMetricsManager {}
diff --git 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java
 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java
index 798bfba38d4..67c2007965e 100644
--- 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java
+++ 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/disk/IDiskMetricsManager.java
@@ -19,6 +19,9 @@
 
 package org.apache.iotdb.metrics.metricsets.disk;
 
+import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
@@ -110,14 +113,21 @@ public interface IDiskMetricsManager {
 
   /** Return different implementation of DiskMetricsManager according to OS 
type. */
   static IDiskMetricsManager getDiskMetricsManager() {
-    String os = System.getProperty("os.name").toLowerCase();
-
-    if (os.startsWith("windows")) {
-      return new WindowsDiskMetricsManager();
-    } else if (os.startsWith("linux")) {
-      return new LinuxDiskMetricsManager();
+    if (MetricConfigDescriptor.getInstance()
+        .getMetricConfig()
+        .getMetricLevel()
+        .equals(MetricLevel.OFF)) {
+      return new DoNothingDiskMetricsManager();
     } else {
-      return new MacDiskMetricsManager();
+      String os = System.getProperty("os.name").toLowerCase();
+
+      if (os.startsWith("windows")) {
+        return new WindowsDiskMetricsManager();
+      } else if (os.startsWith("linux")) {
+        return new LinuxDiskMetricsManager();
+      } else {
+        return new MacDiskMetricsManager();
+      }
     }
   }
 }
diff --git 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/DoNothingNetMetricManager.java
similarity index 61%
copy from 
iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
copy to 
iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/DoNothingNetMetricManager.java
index 70bd3aca4af..9efb442a542 100644
--- 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
+++ 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/DoNothingNetMetricManager.java
@@ -7,7 +7,7 @@
  * "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
+ *     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
@@ -17,28 +17,6 @@
  * under the License.
  */
 
-package org.apache.iotdb.metrics.utils;
+package org.apache.iotdb.metrics.metricsets.net;
 
-public enum MetricLevel {
-  ALL(0),
-  NORMAL(1),
-  IMPORTANT(2),
-  CORE(3),
-  DO_NOTHING(4);
-
-  /** Level of metric service. */
-  final int level;
-
-  MetricLevel(int level) {
-    this.level = level;
-  }
-
-  public static boolean higherOrEqual(MetricLevel level1, MetricLevel level2) {
-    return level1.level >= level2.level;
-  }
-
-  @Override
-  public String toString() {
-    return name();
-  }
-}
+public class DoNothingNetMetricManager implements INetMetricManager {}
diff --git 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/INetMetricManager.java
 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/INetMetricManager.java
index 35f551e2a5c..67e79296996 100644
--- 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/INetMetricManager.java
+++ 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/metricsets/net/INetMetricManager.java
@@ -19,22 +19,14 @@
 
 package org.apache.iotdb.metrics.metricsets.net;
 
+import org.apache.iotdb.metrics.config.MetricConfigDescriptor;
+import org.apache.iotdb.metrics.utils.MetricLevel;
+
 import java.util.Collections;
 import java.util.Map;
 import java.util.Set;
 
 public interface INetMetricManager {
-  static INetMetricManager getNetMetricManager() {
-    String os = System.getProperty("os.name").toLowerCase();
-
-    if (os.startsWith("windows")) {
-      return new WindowsNetMetricManager();
-    } else if (os.startsWith("linux")) {
-      return new LinuxNetMetricManager();
-    } else {
-      return new MacNetMetricManager();
-    }
-  }
 
   default Map<String, Long> getReceivedByte() {
     return Collections.emptyMap();
@@ -59,4 +51,23 @@ public interface INetMetricManager {
   default int getConnectionNum() {
     return 0;
   }
+
+  static INetMetricManager getNetMetricManager() {
+    if (MetricConfigDescriptor.getInstance()
+        .getMetricConfig()
+        .getMetricLevel()
+        .equals(MetricLevel.OFF)) {
+      return new DoNothingNetMetricManager();
+    } else {
+      String os = System.getProperty("os.name").toLowerCase();
+
+      if (os.startsWith("windows")) {
+        return new WindowsNetMetricManager();
+      } else if (os.startsWith("linux")) {
+        return new LinuxNetMetricManager();
+      } else {
+        return new MacNetMetricManager();
+      }
+    }
+  }
 }
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 dd9054dd9a0..2450057d219 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
@@ -20,6 +20,7 @@
 package org.apache.iotdb.metrics.metricsets.system;
 
 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;
@@ -57,26 +58,31 @@ public class SystemMetrics implements IMetricSet {
   }
 
   public void setDiskDirs(List<String> diskDirs) {
-    this.diskDirs.set(diskDirs);
-    for (String diskDir : this.diskDirs.get()) {
-      if (!FSUtils.isLocal(diskDir)) {
-        continue;
-      }
-      Path path = Paths.get(diskDir);
-      FileStore fileStore = null;
-      try {
-        fileStore = Files.getFileStore(path);
-      } catch (IOException e) {
-        // check parent if path is not exists
-        path = path.getParent();
+    if (!MetricConfigDescriptor.getInstance()
+        .getMetricConfig()
+        .getMetricLevel()
+        .equals(MetricLevel.OFF)) {
+      this.diskDirs.set(diskDirs);
+      for (String diskDir : this.diskDirs.get()) {
+        if (!FSUtils.isLocal(diskDir)) {
+          continue;
+        }
+        Path path = Paths.get(diskDir);
+        FileStore fileStore = null;
         try {
           fileStore = Files.getFileStore(path);
-        } catch (IOException innerException) {
-          logger.error("Failed to get storage path of {}, because", diskDir, 
innerException);
+        } catch (IOException e) {
+          // check parent if path is not exists
+          path = path.getParent();
+          try {
+            fileStore = Files.getFileStore(path);
+          } catch (IOException innerException) {
+            logger.error("Failed to get storage path of {}, because", diskDir, 
innerException);
+          }
+        }
+        if (null != fileStore) {
+          fileStores.add(fileStore);
         }
-      }
-      if (null != fileStore) {
-        fileStores.add(fileStore);
       }
     }
   }
diff --git 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
index 70bd3aca4af..f5da94e362e 100644
--- 
a/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
+++ 
b/iotdb-core/metrics/interface/src/main/java/org/apache/iotdb/metrics/utils/MetricLevel.java
@@ -24,7 +24,7 @@ public enum MetricLevel {
   NORMAL(1),
   IMPORTANT(2),
   CORE(3),
-  DO_NOTHING(4);
+  OFF(4);
 
   /** Level of metric service. */
   final int level;

Reply via email to