Author: tgraves Date: Mon Jun 25 14:39:01 2012 New Revision: 1353580 URL: http://svn.apache.org/viewvc?rev=1353580&view=rev Log: MAPREDUCE-4361. Fix detailed metrics for protobuf-based RPC on 0.23 (Jason Lowe via tgraves)
Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/ipc/ProtoOverHadoopRpcEngine.java hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/TestRPC.java Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt?rev=1353580&r1=1353579&r2=1353580&view=diff ============================================================================== --- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt (original) +++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/CHANGES.txt Mon Jun 25 14:39:01 2012 @@ -249,6 +249,9 @@ Release 0.23.3 - UNRELEASED MAPREDUCE-4295. RM crashes due to DNS issue (tgraves) + MAPREDUCE-4361. Fix detailed metrics for protobuf-based RPC on 0.23 + (Jason Lowe via tgraves) + Release 0.23.2 - UNRELEASED INCOMPATIBLE CHANGES Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/ipc/ProtoOverHadoopRpcEngine.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/ipc/ProtoOverHadoopRpcEngine.java?rev=1353580&r1=1353579&r2=1353580&view=diff ============================================================================== --- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/ipc/ProtoOverHadoopRpcEngine.java (original) +++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/main/java/org/apache/hadoop/yarn/ipc/ProtoOverHadoopRpcEngine.java Mon Jun 25 14:39:01 2012 @@ -349,7 +349,19 @@ public class ProtoOverHadoopRpcEngine im .mergeFrom(rpcRequest.getRequestProto()).build(); Message result; try { + long startTime = System.currentTimeMillis(); result = service.callBlockingMethod(methodDescriptor, null, param); + int processingTime = (int) (System.currentTimeMillis() - startTime); + int qTime = (int) (startTime-receiveTime); + if (LOG.isDebugEnabled()) { + LOG.debug("Served: " + methodName + + " queueTime= " + qTime + + " procesingTime= " + processingTime); + } + rpcMetrics.addRpcQueueTime(qTime); + rpcMetrics.addRpcProcessingTime(processingTime); + rpcDetailedMetrics.addProcessingTime(methodName, + processingTime); } catch (ServiceException e) { e.printStackTrace(); return handleException(e); Modified: hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/TestRPC.java URL: http://svn.apache.org/viewvc/hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/TestRPC.java?rev=1353580&r1=1353579&r2=1353580&view=diff ============================================================================== --- hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/TestRPC.java (original) +++ hadoop/common/branches/branch-0.23/hadoop-mapreduce-project/hadoop-yarn/hadoop-yarn-common/src/test/java/org/apache/hadoop/yarn/TestRPC.java Mon Jun 25 14:39:01 2012 @@ -18,12 +18,16 @@ package org.apache.hadoop.yarn; +import static org.apache.hadoop.test.MetricsAsserts.getMetrics; +import static org.apache.hadoop.test.MetricsAsserts.assertCounterGt; + import java.net.InetSocketAddress; import junit.framework.Assert; import org.apache.hadoop.ipc.Server; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.metrics2.MetricsRecordBuilder; import org.apache.hadoop.net.NetUtils; import org.apache.hadoop.yarn.api.ClientRMProtocol; import org.apache.hadoop.yarn.api.ContainerManager; @@ -161,6 +165,15 @@ public class TestRPC { } Assert.assertTrue(exception); + //test metrics + MetricsRecordBuilder rpcMetrics = + getMetrics(server.getRpcMetrics().name()); + assertCounterGt("RpcQueueTimeNumOps", 0L, rpcMetrics); + assertCounterGt("RpcProcessingTimeNumOps", 0L, rpcMetrics); + MetricsRecordBuilder rpcDetailedMetrics = + getMetrics(server.getRpcDetailedMetrics().name()); + assertCounterGt("StartContainerNumOps", 0L, rpcDetailedMetrics); + server.stop(); Assert.assertNotNull(status); Assert.assertEquals(ContainerState.RUNNING, status.getState());