HADOOP-18364. All method metrics related to the RPC protocol should be initialized. (#4624). Contributed by Shuyan Zhang.

Reviewed-by: Erik Krogen <xkrogen@apache.org>
Reviewed-by: Chao Sun <sunchao@apache.org>
Signed-off-by: He Xiaoqiao <hexiaoqiao@apache.org>
This commit is contained in:
zhangshuyan0 2022-08-04 13:00:37 +08:00 committed by GitHub
parent 8eebf40b1a
commit dbf73e16b1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -72,7 +72,7 @@ public void init(Class<?> protocol) {
return;
}
protocolCache.add(protocol);
for (Method method : protocol.getDeclaredMethods()) {
for (Method method : protocol.getMethods()) {
String name = method.getName();
LOG.debug(name);
addMetricIfNotExists(name);

View File

@ -48,6 +48,9 @@
import java.util.EnumSet;
import java.util.List;
import java.util.Random;
import org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer;
import org.apache.hadoop.ipc.metrics.RpcDetailedMetrics;
import org.apache.hadoop.thirdparty.com.google.common.collect.ImmutableList;
import org.slf4j.Logger;
@ -1128,4 +1131,14 @@ public void testEditLogTailing() throws Exception {
}
}
@Test
public void testNNRPCMetricIntegrity() {
RpcDetailedMetrics metrics =
((NameNodeRpcServer) cluster.getNameNode()
.getRpcServer()).getClientRpcServer().getRpcDetailedMetrics();
MetricsRecordBuilder rb = getMetrics(metrics.name());
// CommitBlockSynchronizationNumOps should exist.
assertCounter("CommitBlockSynchronizationNumOps", 0L, rb);
}
}