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