This is an automated email from the ASF dual-hosted git repository.

sodonnell pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 3d64e2acd8 HDDS-9594. Make the number of containers logged 
configurable in DatanodeAdminMonitorImpl (#5701)
3d64e2acd8 is described below

commit 3d64e2acd8b8a3ddbabd0821e356623ee6aa3d1f
Author: Stephen O'Donnell <[email protected]>
AuthorDate: Thu Nov 30 13:07:19 2023 +0000

    HDDS-9594. Make the number of containers logged configurable in 
DatanodeAdminMonitorImpl (#5701)
---
 .../main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java   |  4 ++++
 hadoop-hdds/common/src/main/resources/ozone-default.xml       | 11 +++++++++++
 .../apache/hadoop/hdds/scm/node/DatanodeAdminMonitorImpl.java | 11 +++++++----
 3 files changed, 22 insertions(+), 4 deletions(-)

diff --git 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
index a2c00d5c21..60d4ac6ae1 100644
--- 
a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
+++ 
b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
@@ -483,6 +483,10 @@ public final class ScmConfigKeys {
       "ozone.scm.datanode.admin.monitor.interval";
   public static final String OZONE_SCM_DATANODE_ADMIN_MONITOR_INTERVAL_DEFAULT 
=
       "30s";
+  public static final String OZONE_SCM_DATANODE_ADMIN_MONITOR_LOGGING_LIMIT =
+      "ozone.scm.datanode.admin.monitor.logging.limit";
+  public static final int
+      OZONE_SCM_DATANODE_ADMIN_MONITOR_LOGGING_LIMIT_DEFAULT = 1000;
 
   public static final String OZONE_SCM_INFO_WAIT_DURATION =
       "ozone.scm.info.wait.duration";
diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml 
b/hadoop-hdds/common/src/main/resources/ozone-default.xml
index 257fcbb77e..3eaba5a5c6 100644
--- a/hadoop-hdds/common/src/main/resources/ozone-default.xml
+++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml
@@ -3218,6 +3218,17 @@
       if they have completed.
     </description>
   </property>
+  <property>
+    <name>ozone.scm.datanode.admin.monitor.logging.limit</name>
+    <value>1000</value>
+    <tag>SCM</tag>
+    <description>
+      When a node is checked for decommission or maintenance, this setting
+      controls how many degraded containers are logged on each pass. The limit
+      is applied separately for each type of container, ie under-replicated and
+      unhealthy will each have their own limit.
+    </description>
+  </property>
   <property>
     <name>ozone.client.list.trash.keys.max</name>
     <value>1000</value>
diff --git 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DatanodeAdminMonitorImpl.java
 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DatanodeAdminMonitorImpl.java
index 59948c0ce8..693a3474de 100644
--- 
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DatanodeAdminMonitorImpl.java
+++ 
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/node/DatanodeAdminMonitorImpl.java
@@ -21,6 +21,7 @@ import org.apache.hadoop.hdds.conf.OzoneConfiguration;
 import org.apache.hadoop.hdds.protocol.DatanodeDetails;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
 import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState;
+import org.apache.hadoop.hdds.scm.ScmConfigKeys;
 import org.apache.hadoop.hdds.scm.container.ContainerID;
 import org.apache.hadoop.hdds.scm.container.ContainerNotFoundException;
 import org.apache.hadoop.hdds.scm.container.ContainerReplica;
@@ -92,7 +93,7 @@ public class DatanodeAdminMonitorImpl implements 
DatanodeAdminMonitor {
       LoggerFactory.getLogger(DatanodeAdminMonitorImpl.class);
   // The number of containers for each of under replicated and unhealthy
   // that will be logged in detail each time a node is checked.
-  private static final int CONTAINER_DETAILS_LOGGING_LIMIT = 5;
+  private final int containerDetailsLoggingLimit;
 
   public DatanodeAdminMonitorImpl(
       OzoneConfiguration conf,
@@ -103,7 +104,9 @@ public class DatanodeAdminMonitorImpl implements 
DatanodeAdminMonitor {
     this.eventQueue = eventQueue;
     this.nodeManager = nodeManager;
     this.replicationManager = replicationManager;
-
+    containerDetailsLoggingLimit = conf.getInt(
+        ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_LOGGING_LIMIT,
+        ScmConfigKeys.OZONE_SCM_DATANODE_ADMIN_MONITOR_LOGGING_LIMIT_DEFAULT);
     containerStateByHost = new HashMap<>();
   }
 
@@ -364,7 +367,7 @@ public class DatanodeAdminMonitorImpl implements 
DatanodeAdminMonitor {
           if (LOG.isDebugEnabled()) {
             underReplicatedIDs.add(cid);
           }
-          if (underReplicated < CONTAINER_DETAILS_LOGGING_LIMIT
+          if (underReplicated < containerDetailsLoggingLimit
               || LOG.isDebugEnabled()) {
             LOG.info("Under Replicated Container {} {}; {}",
                 cid, replicaSet, replicaDetails(replicaSet.getReplicas()));
@@ -389,7 +392,7 @@ public class DatanodeAdminMonitorImpl implements 
DatanodeAdminMonitor {
           if (LOG.isDebugEnabled()) {
             unhealthyIDs.add(cid);
           }
-          if (unhealthy < CONTAINER_DETAILS_LOGGING_LIMIT
+          if (unhealthy < containerDetailsLoggingLimit
               || LOG.isDebugEnabled()) {
             LOG.info("Unhealthy Container {} {}; {}",
                 cid, replicaSet, replicaDetails(replicaSet.getReplicas()));


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to