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 el...@apache.org on 2019/04/02 12:31:13 UTC

[hadoop] branch trunk updated: HDDS-1153. Make tracing instrumentation configurable

This is an automated email from the ASF dual-hosted git repository.

elek pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new aeb43df  HDDS-1153. Make tracing instrumentation configurable
aeb43df is described below

commit aeb43dfba35caf965f16c1d5d52e920e2bf3c2f6
Author: Kitti Nanasi <kn...@cloudera.com>
AuthorDate: Tue Apr 2 13:47:18 2019 +0200

    HDDS-1153. Make tracing instrumentation configurable
    
    Closes #673
---
 .../main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java  |  4 ++++
 .../java/org/apache/hadoop/hdds/tracing/TracingUtil.java     | 12 +++++++++++-
 hadoop-hdds/common/src/main/resources/ozone-default.xml      |  8 ++++++++
 .../src/main/java/org/apache/hadoop/hdds/scm/cli/SCMCLI.java |  2 +-
 .../java/org/apache/hadoop/ozone/client/ObjectStore.java     |  2 +-
 .../java/org/apache/hadoop/ozone/client/rpc/RpcClient.java   |  3 ++-
 .../OzoneManagerProtocolClientSideTranslatorPB.java          |  2 +-
 .../hadoop/hdfs/server/datanode/ObjectStoreHandler.java      |  8 ++++----
 .../main/java/org/apache/hadoop/ozone/om/OzoneManager.java   |  5 +++--
 9 files changed, 35 insertions(+), 11 deletions(-)

diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
index 3b45b89..b097321 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/scm/ScmConfigKeys.java
@@ -372,6 +372,10 @@ public final class ScmConfigKeys {
       "ozone.scm.network.topology.schema.file";
   public static final String OZONE_SCM_NETWORK_TOPOLOGY_SCHEMA_FILE_DEFAULT =
       "network-topology-default.xml";
+
+  public static final String HDDS_TRACING_ENABLED = "hdds.tracing.enabled";
+  public static final boolean HDDS_TRACING_ENABLED_DEFAULT = true;
+
   /**
    * Never constructed.
    */
diff --git a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java
index 4f285f7..c274625 100644
--- a/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java
+++ b/hadoop-hdds/common/src/main/java/org/apache/hadoop/hdds/tracing/TracingUtil.java
@@ -27,6 +27,8 @@ import io.opentracing.SpanContext;
 import io.opentracing.Tracer;
 import io.opentracing.util.GlobalTracer;
 
+import org.apache.hadoop.hdds.scm.ScmConfigKeys;
+
 /**
  * Utility class to collect all the tracing helper methods.
  */
@@ -112,11 +114,19 @@ public final class TracingUtil {
    * @param delegate the original class instance
    * @param interfce the interface which should be implemented by the proxy
    * @param <T> the type of the interface
+   * @param conf configuration
    *
    * @return A new interface which implements interfce but delegate all the
    * calls to the delegate and also enables tracing.
    */
-  public static <T> T createProxy(T delegate, Class<T> interfce) {
+  public static <T> T createProxy(T delegate, Class<T> interfce,
+                                  org.apache.hadoop.conf.Configuration conf) {
+    boolean isTracingEnabled = conf.getBoolean(
+        ScmConfigKeys.HDDS_TRACING_ENABLED,
+        ScmConfigKeys.HDDS_TRACING_ENABLED_DEFAULT);
+    if (!isTracingEnabled) {
+      return delegate;
+    }
     Class<?> aClass = delegate.getClass();
     return  (T) Proxy.newProxyInstance(aClass.getClassLoader(),
         new Class<?>[] {interfce},
diff --git a/hadoop-hdds/common/src/main/resources/ozone-default.xml b/hadoop-hdds/common/src/main/resources/ozone-default.xml
index 9fd4ef3..cbd249a 100644
--- a/hadoop-hdds/common/src/main/resources/ozone-default.xml
+++ b/hadoop-hdds/common/src/main/resources/ozone-default.xml
@@ -2377,4 +2377,12 @@
       to datanodes. After this timeout the command will be retried.
     </description>
   </property>
+  <property>
+    <name>hdds.tracing.enabled</name>
+    <value>true</value>
+    <tag>OZONE, HDDS</tag>
+    <description>
+      If enabled, tracing information is sent to tracing server.
+    </description>
+  </property>
 </configuration>
diff --git a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SCMCLI.java b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SCMCLI.java
index 4e2b384..c722f2b 100644
--- a/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SCMCLI.java
+++ b/hadoop-hdds/tools/src/main/java/org/apache/hadoop/hdds/scm/cli/SCMCLI.java
@@ -143,7 +143,7 @@ public class SCMCLI extends GenericCli {
                 scmAddress, UserGroupInformation.getCurrentUser(), ozoneConf,
                 NetUtils.getDefaultSocketFactory(ozoneConf),
                 Client.getRpcTimeout(ozoneConf))),
-            StorageContainerLocationProtocol.class);
+            StorageContainerLocationProtocol.class, ozoneConf);
     return new ContainerOperationClient(
         client, new XceiverClientManager(ozoneConf));
   }
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
index 5ac44ed..c5e3210 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/ObjectStore.java
@@ -66,7 +66,7 @@ public class ObjectStore {
    * @param proxy ClientProtocol proxy.
    */
   public ObjectStore(Configuration conf, ClientProtocol proxy) {
-    this.proxy = TracingUtil.createProxy(proxy, ClientProtocol.class);
+    this.proxy = TracingUtil.createProxy(proxy, ClientProtocol.class, conf);
     this.listCacheSize = HddsClientUtils.getListCacheSize(conf);
   }
 
diff --git a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
index 6b60f96..e81cca7 100644
--- a/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
+++ b/hadoop-ozone/client/src/main/java/org/apache/hadoop/ozone/client/rpc/RpcClient.java
@@ -156,7 +156,8 @@ public class RpcClient implements ClientProtocol, KeyProviderTokenIssuer {
                 scmAddress, ugi, conf, NetUtils.getDefaultSocketFactory(conf),
                 Client.getRpcTimeout(conf)));
     this.storageContainerLocationClient =
-        TracingUtil.createProxy(client, StorageContainerLocationProtocol.class);
+        TracingUtil.createProxy(client, StorageContainerLocationProtocol.class,
+            conf);
     this.xceiverClientManager = new XceiverClientManager(conf);
 
     int configuredChunkSize = (int) conf
diff --git a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
index 968ff39..7e3b33f 100644
--- a/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
+++ b/hadoop-ozone/common/src/main/java/org/apache/hadoop/ozone/om/protocolPB/OzoneManagerProtocolClientSideTranslatorPB.java
@@ -189,7 +189,7 @@ public final class OzoneManagerProtocolClientSideTranslatorPB
     this.rpcProxy = TracingUtil.createProxy(
         createRetryProxy(omFailoverProxyProvider, maxRetries, maxFailovers,
             sleepBase, sleepMax),
-        OzoneManagerProtocolPB.class);
+        OzoneManagerProtocolPB.class, conf);
     this.clientID = clientId;
   }
 
diff --git a/hadoop-ozone/objectstore-service/src/main/java/org/apache/hadoop/hdfs/server/datanode/ObjectStoreHandler.java b/hadoop-ozone/objectstore-service/src/main/java/org/apache/hadoop/hdfs/server/datanode/ObjectStoreHandler.java
index 4872240..a2ee6d9 100644
--- a/hadoop-ozone/objectstore-service/src/main/java/org/apache/hadoop/hdfs/server/datanode/ObjectStoreHandler.java
+++ b/hadoop-ozone/objectstore-service/src/main/java/org/apache/hadoop/hdfs/server/datanode/ObjectStoreHandler.java
@@ -104,7 +104,7 @@ public final class ObjectStoreHandler implements Closeable {
                     scmAddress, UserGroupInformation.getCurrentUser(), conf,
                     NetUtils.getDefaultSocketFactory(conf),
                     Client.getRpcTimeout(conf))),
-            StorageContainerLocationProtocol.class);
+            StorageContainerLocationProtocol.class, conf);
 
     InetSocketAddress scmBlockAddress =
         getScmAddressForBlockClients(conf);
@@ -115,7 +115,7 @@ public final class ObjectStoreHandler implements Closeable {
                     scmBlockAddress, UserGroupInformation.getCurrentUser(),
                     conf, NetUtils.getDefaultSocketFactory(conf),
                     Client.getRpcTimeout(conf))),
-            ScmBlockLocationProtocol.class);
+            ScmBlockLocationProtocol.class, conf);
 
     RPC.setProtocolEngine(conf, OzoneManagerProtocolPB.class,
         ProtobufRpcEngine.class);
@@ -129,12 +129,12 @@ public final class ObjectStoreHandler implements Closeable {
                     omAddress, UserGroupInformation.getCurrentUser(), conf,
                     NetUtils.getDefaultSocketFactory(conf),
                     Client.getRpcTimeout(conf)), clientId.toString()),
-            OzoneManagerProtocol.class);
+            OzoneManagerProtocol.class, conf);
 
     storageHandler = new DistributedStorageHandler(
         new OzoneConfiguration(conf),
         TracingUtil.createProxy(storageContainerLocationClient,
-            StorageContainerLocationProtocol.class),
+            StorageContainerLocationProtocol.class, conf),
         this.ozoneManagerClient);
     ApplicationAdapter aa =
         new ApplicationAdapter(new ObjectStoreApplication());
diff --git a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
index c8fdef4..549e6bd 100644
--- a/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
+++ b/hadoop-ozone/ozone-manager/src/main/java/org/apache/hadoop/ozone/om/OzoneManager.java
@@ -760,7 +760,8 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
                 NetUtils.getDefaultSocketFactory(conf),
                 Client.getRpcTimeout(conf)));
     return TracingUtil
-        .createProxy(scmBlockLocationClient, ScmBlockLocationProtocol.class);
+        .createProxy(scmBlockLocationClient, ScmBlockLocationProtocol.class,
+            conf);
   }
 
   /**
@@ -807,7 +808,7 @@ public final class OzoneManager extends ServiceRuntimeInfoImpl
                 scmAddr, UserGroupInformation.getCurrentUser(), conf,
                 NetUtils.getDefaultSocketFactory(conf),
                 Client.getRpcTimeout(conf))),
-            StorageContainerLocationProtocol.class);
+            StorageContainerLocationProtocol.class, conf);
     return scmContainerClient;
   }
 


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org