This is an automated email from the ASF dual-hosted git repository.
adoroszlai 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 4ed3ef8 HDDS-6121. DatanodeAdminMonitor should log detailed
information for a limited number of containers (#2932)
4ed3ef8 is described below
commit 4ed3ef800f37cf3e5aaa6e3d8feb640ae8837a04
Author: Stephen O'Donnell <[email protected]>
AuthorDate: Tue Dec 28 07:37:58 2021 +0000
HDDS-6121. DatanodeAdminMonitor should log detailed information for a
limited number of containers (#2932)
---
.../hdds/scm/node/DatanodeAdminMonitorImpl.java | 24 ++++++++++++++++++++++
1 file changed, 24 insertions(+)
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 654b6fa..afb33d9 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
@@ -23,6 +23,7 @@ import org.apache.hadoop.hdds.protocol.proto.HddsProtos;
import org.apache.hadoop.hdds.protocol.proto.HddsProtos.NodeOperationalState;
import org.apache.hadoop.hdds.scm.container.ContainerID;
import org.apache.hadoop.hdds.scm.container.ContainerNotFoundException;
+import org.apache.hadoop.hdds.scm.container.ContainerReplica;
import org.apache.hadoop.hdds.scm.container.ContainerReplicaCount;
import org.apache.hadoop.hdds.scm.container.ReplicationManager;
import org.apache.hadoop.hdds.scm.events.SCMEvents;
@@ -69,6 +70,9 @@ public class DatanodeAdminMonitorImpl implements
DatanodeAdminMonitor {
private static final Logger LOG =
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;
public DatanodeAdminMonitorImpl(
OzoneConfiguration conf,
@@ -290,12 +294,22 @@ public class DatanodeAdminMonitorImpl implements
DatanodeAdminMonitor {
if (LOG.isDebugEnabled()) {
underReplicatedIDs.add(cid);
}
+ if (underReplicated < CONTAINER_DETAILS_LOGGING_LIMIT
+ || LOG.isDebugEnabled()) {
+ LOG.info("Under Replicated Container {} {}; {}",
+ cid, replicaSet, replicaDetails(replicaSet.getReplica()));
+ }
underReplicated++;
}
if (!replicaSet.isHealthy()) {
if (LOG.isDebugEnabled()) {
unhealthyIDs.add(cid);
}
+ if (unhealthy < CONTAINER_DETAILS_LOGGING_LIMIT
+ || LOG.isDebugEnabled()) {
+ LOG.info("Unhealthy Container {} {}; {}",
+ cid, replicaSet, replicaDetails(replicaSet.getReplica()));
+ }
unhealthy++;
}
} catch (ContainerNotFoundException e) {
@@ -318,6 +332,16 @@ public class DatanodeAdminMonitorImpl implements
DatanodeAdminMonitor {
return underReplicated == 0 && unhealthy == 0;
}
+ private String replicaDetails(Set<ContainerReplica> replicas) {
+ StringBuilder sb = new StringBuilder();
+ sb.append("Replicas{");
+ sb.append(replicas.stream()
+ .map(Object::toString)
+ .collect(Collectors.joining(",")));
+ sb.append("}");
+ return sb.toString();
+ }
+
private void completeDecommission(DatanodeDetails dn)
throws NodeNotFoundException {
setNodeOpState(dn, NodeOperationalState.DECOMMISSIONED);
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]