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]