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 543c9e79dd HDDS-9235. ReplicationManager metrics not collected after
restart. (#6280)
543c9e79dd is described below
commit 543c9e79dd634557a62cdc8cb24da82cbe572e17
Author: Aswin Shakil Balasubramanian <[email protected]>
AuthorDate: Wed Feb 28 03:16:37 2024 -0800
HDDS-9235. ReplicationManager metrics not collected after restart. (#6280)
---
hadoop-hdds/server-scm/dev-support/findbugsExcludeFile.xml | 5 +++++
.../hdds/scm/container/replication/ReplicationManager.java | 1 +
.../container/replication/ReplicationManagerMetrics.java | 13 +++++++++----
.../replication/TestContainerReplicaPendingOps.java | 8 ++++++++
.../replication/TestECUnderReplicationHandler.java | 8 ++++++++
.../scm/container/replication/TestReplicationManager.java | 8 ++++++++
6 files changed, 39 insertions(+), 4 deletions(-)
diff --git a/hadoop-hdds/server-scm/dev-support/findbugsExcludeFile.xml
b/hadoop-hdds/server-scm/dev-support/findbugsExcludeFile.xml
index 50f3491860..dc08720c96 100644
--- a/hadoop-hdds/server-scm/dev-support/findbugsExcludeFile.xml
+++ b/hadoop-hdds/server-scm/dev-support/findbugsExcludeFile.xml
@@ -51,4 +51,9 @@
<Class
name="org.apache.hadoop.hdds.scm.metadata.TestSCMTransactionInfoCodec"/>
<Bug pattern="NP_NULL_PARAM_DEREF_ALL_TARGETS_DANGEROUS" />
</Match>
+ <Match>
+ <Class
name="org.apache.hadoop.hdds.scm.container.replication.ReplicationManager"/>
+ <Field name="metrics" />
+ <Bug pattern="IS2_INCONSISTENT_SYNC" />
+ </Match>
</FindBugsFilter>
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
index a3661243be..32310ef9e7 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManager.java
@@ -294,6 +294,7 @@ public class ReplicationManager implements SCMService {
if (!isRunning()) {
LOG.info("Starting Replication Monitor Thread.");
running = true;
+ metrics = ReplicationManagerMetrics.create(this);
if (rmConf.isLegacyEnabled()) {
legacyReplicationManager.setMetrics(metrics);
}
diff --git
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManagerMetrics.java
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManagerMetrics.java
index 5c3ee4e29a..eb75db9bd5 100644
---
a/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManagerMetrics.java
+++
b/hadoop-hdds/server-scm/src/main/java/org/apache/hadoop/hdds/scm/container/replication/ReplicationManagerMetrics.java
@@ -235,10 +235,15 @@ public final class ReplicationManagerMetrics implements
MetricsSource {
}
public static ReplicationManagerMetrics create(ReplicationManager manager) {
- return DefaultMetricsSystem.instance().register(METRICS_SOURCE_NAME,
- "SCM Replication manager (closed container replication) related "
- + "metrics",
- new ReplicationManagerMetrics(manager));
+ ReplicationManagerMetrics replicationManagerMetrics =
(ReplicationManagerMetrics)
+ DefaultMetricsSystem.instance().getSource(METRICS_SOURCE_NAME);
+ if (replicationManagerMetrics == null) {
+ return DefaultMetricsSystem.instance().register(METRICS_SOURCE_NAME,
+ "SCM Replication manager (closed container replication) related "
+ + "metrics",
+ new ReplicationManagerMetrics(manager));
+ }
+ return replicationManagerMetrics;
}
@Override
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestContainerReplicaPendingOps.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestContainerReplicaPendingOps.java
index a97cdbddb8..3775531d30 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestContainerReplicaPendingOps.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestContainerReplicaPendingOps.java
@@ -24,6 +24,7 @@ import org.apache.hadoop.hdds.protocol.DatanodeDetails;
import org.apache.hadoop.hdds.protocol.MockDatanodeDetails;
import org.apache.hadoop.hdds.scm.container.ContainerID;
import org.apache.ozone.test.TestClock;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
@@ -74,6 +75,13 @@ public class TestContainerReplicaPendingOps {
dn3 = MockDatanodeDetails.randomDatanodeDetails();
}
+ @AfterEach
+ void cleanup() {
+ if (metrics != null) {
+ metrics.unRegister();
+ }
+ }
+
@Test
public void testGetPendingOpsReturnsEmptyList() {
List<ContainerReplicaOp> ops =
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
index 22c3630e0c..f698221293 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestECUnderReplicationHandler.java
@@ -47,6 +47,7 @@ import
org.apache.hadoop.ozone.protocol.commands.ReplicateContainerCommand;
import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
import org.apache.ratis.protocol.exceptions.NotLeaderException;
import org.assertj.core.util.Lists;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.io.TempDir;
@@ -174,6 +175,13 @@ public class TestECUnderReplicationHandler {
.thenReturn(new ContainerPlacementStatusDefault(2, 2, 3));
}
+ @AfterEach
+ void cleanup() {
+ if (metrics != null) {
+ metrics.unRegister();
+ }
+ }
+
@ParameterizedTest
@ValueSource(strings = {"rs-6-3-1024k", "rs-10-4-1024k"})
void defersNonCriticalPartialReconstruction(String rep) throws IOException {
diff --git
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
index 47844f32fb..ecb3ce4b03 100644
---
a/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
+++
b/hadoop-hdds/server-scm/src/test/java/org/apache/hadoop/hdds/scm/container/replication/TestReplicationManager.java
@@ -55,6 +55,7 @@ import org.apache.hadoop.ozone.protocol.commands.SCMCommand;
import org.apache.hadoop.util.Lists;
import org.apache.ozone.test.TestClock;
import org.apache.ratis.protocol.exceptions.NotLeaderException;
+import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
import org.junit.jupiter.params.ParameterizedTest;
@@ -190,6 +191,13 @@ public class TestReplicationManager {
when(scmContext.getScm()).thenReturn(scm);
}
+ @AfterEach
+ void cleanup() {
+ if (replicationManager.getMetrics() != null) {
+ replicationManager.getMetrics().unRegister();
+ }
+ }
+
private ReplicationManager createReplicationManager() throws IOException {
return new ReplicationManager(
configuration,
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]