You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by cm...@apache.org on 2014/10/24 04:15:14 UTC
git commit: HDFS-7223. Tracing span description of IPC client is too
long (iwasakims via cmccabe) (cherry picked from commit
5b56ac4c72d69d1b3d6feec9d96c9d62eb02d28c)
Repository: hadoop
Updated Branches:
refs/heads/branch-2 c99d89f2c -> caa658a01
HDFS-7223. Tracing span description of IPC client is too long (iwasakims via cmccabe)
(cherry picked from commit 5b56ac4c72d69d1b3d6feec9d96c9d62eb02d28c)
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/caa658a0
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/caa658a0
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/caa658a0
Branch: refs/heads/branch-2
Commit: caa658a015e22938c345451bd4de46b0e0f08507
Parents: c99d89f
Author: Colin Patrick Mccabe <cm...@cloudera.com>
Authored: Thu Oct 23 19:14:00 2014 -0700
Committer: Colin Patrick Mccabe <cm...@cloudera.com>
Committed: Thu Oct 23 19:15:08 2014 -0700
----------------------------------------------------------------------
.../apache/hadoop/ipc/ProtobufRpcEngine.java | 4 +---
.../org/apache/hadoop/ipc/RpcClientUtil.java | 21 ++++++++++++++++++++
.../apache/hadoop/ipc/WritableRpcEngine.java | 4 +---
hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt | 3 +++
.../org/apache/hadoop/tracing/TestTracing.java | 10 +++++-----
5 files changed, 31 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hadoop/blob/caa658a0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java
index f8c35d9..d8e22c7 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/ProtobufRpcEngine.java
@@ -212,9 +212,7 @@ public class ProtobufRpcEngine implements RpcEngine {
// guard it in the if statement to make sure there isn't
// any extra string manipulation.
if (Trace.isTracing()) {
- traceScope = Trace.startSpan(
- method.getDeclaringClass().getCanonicalName() +
- "." + method.getName());
+ traceScope = Trace.startSpan(RpcClientUtil.methodToTraceString(method));
}
RequestHeaderProto rpcRequestHeader = constructRpcRequestHeader(method);
http://git-wip-us.apache.org/repos/asf/hadoop/blob/caa658a0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RpcClientUtil.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RpcClientUtil.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RpcClientUtil.java
index 2623f9e..d9bd71b 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RpcClientUtil.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/RpcClientUtil.java
@@ -189,4 +189,25 @@ public class RpcClientUtil {
.getProtocolMetaInfoProxy(inv.getConnectionId(), conf,
NetUtils.getDefaultSocketFactory(conf)).getProxy();
}
+
+ /**
+ * Convert an RPC method to a string.
+ * The format we want is 'MethodOuterClassShortName#methodName'.
+ *
+ * For example, if the method is:
+ * org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.
+ * ClientNamenodeProtocol.BlockingInterface.getServerDefaults
+ *
+ * the format we want is:
+ * ClientNamenodeProtocol#getServerDefaults
+ */
+ public static String methodToTraceString(Method method) {
+ Class<?> clazz = method.getDeclaringClass();
+ while (true) {
+ Class<?> next = clazz.getEnclosingClass();
+ if (next == null || next.getEnclosingClass() == null) break;
+ clazz = next;
+ }
+ return clazz.getSimpleName() + "#" + method.getName();
+ }
}
http://git-wip-us.apache.org/repos/asf/hadoop/blob/caa658a0/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/WritableRpcEngine.java
----------------------------------------------------------------------
diff --git a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/WritableRpcEngine.java b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/WritableRpcEngine.java
index 037f006..869a52a 100644
--- a/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/WritableRpcEngine.java
+++ b/hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/ipc/WritableRpcEngine.java
@@ -235,9 +235,7 @@ public class WritableRpcEngine implements RpcEngine {
}
TraceScope traceScope = null;
if (Trace.isTracing()) {
- traceScope = Trace.startSpan(
- method.getDeclaringClass().getCanonicalName() +
- "." + method.getName());
+ traceScope = Trace.startSpan(RpcClientUtil.methodToTraceString(method));
}
ObjectWritable value;
try {
http://git-wip-us.apache.org/repos/asf/hadoop/blob/caa658a0/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
index 0c6c41f..88e9111 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
+++ b/hadoop-hdfs-project/hadoop-hdfs/CHANGES.txt
@@ -44,6 +44,9 @@ Release 2.7.0 - UNRELEASED
HDFS-7257. Add the time of last HA state transition to NN's /jmx page.
(Charles Lamb via wheat9)
+ HDFS-7223. Tracing span description of IPC client is too long (iwasakims
+ via cmccabe)
+
OPTIMIZATIONS
BUG FIXES
http://git-wip-us.apache.org/repos/asf/hadoop/blob/caa658a0/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java
index 5c24500..0f96c6f 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/tracing/TestTracing.java
@@ -83,15 +83,15 @@ public class TestTracing {
String[] expectedSpanNames = {
"testWriteTraceHooks",
"org.apache.hadoop.hdfs.protocol.ClientProtocol.create",
- "org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.ClientNamenodeProtocol.BlockingInterface.create",
+ "ClientNamenodeProtocol#create",
"org.apache.hadoop.hdfs.protocol.ClientProtocol.fsync",
- "org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.ClientNamenodeProtocol.BlockingInterface.fsync",
+ "ClientNamenodeProtocol#fsync",
"org.apache.hadoop.hdfs.protocol.ClientProtocol.complete",
- "org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.ClientNamenodeProtocol.BlockingInterface.complete",
+ "ClientNamenodeProtocol#complete",
"DFSOutputStream",
"OpWriteBlockProto",
"org.apache.hadoop.hdfs.protocol.ClientProtocol.addBlock",
- "org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.ClientNamenodeProtocol.BlockingInterface.addBlock"
+ "ClientNamenodeProtocol#addBlock"
};
assertSpanNamesFound(expectedSpanNames);
@@ -162,7 +162,7 @@ public class TestTracing {
String[] expectedSpanNames = {
"testReadTraceHooks",
"org.apache.hadoop.hdfs.protocol.ClientProtocol.getBlockLocations",
- "org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos.ClientNamenodeProtocol.BlockingInterface.getBlockLocations",
+ "ClientNamenodeProtocol#getBlockLocations",
"OpReadBlockProto"
};
assertSpanNamesFound(expectedSpanNames);