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

adoroszlai pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ozone.git


The following commit(s) were added to refs/heads/master by this push:
     new 11fe8d93d0 HDDS-6878. Only export span if Ozone tracer init (#3509)
11fe8d93d0 is described below

commit 11fe8d93d0bea4ad43bb1cd6cfb334dea9ae0087
Author: Symious <[email protected]>
AuthorDate: Tue Jun 14 14:40:32 2022 +0800

    HDDS-6878. Only export span if Ozone tracer init (#3509)
---
 .../org/apache/hadoop/hdds/tracing/TracingUtil.java |  5 ++++-
 .../apache/hadoop/hdds/tracing/TestTracingUtil.java | 21 ++++++++++++++++++++-
 2 files changed, 24 insertions(+), 2 deletions(-)

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 4588f69430..4985c6f281 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
@@ -40,6 +40,8 @@ public final class TracingUtil {
 
   private static final String NULL_SPAN_AS_STRING = "";
 
+  private static volatile boolean isInit = false;
+
   private TracingUtil() {
   }
 
@@ -55,6 +57,7 @@ public final class TracingUtil {
           .registerInjector(StringCodec.FORMAT, new StringCodec())
           .build();
       GlobalTracer.registerIfAbsent(tracer);
+      isInit = true;
     }
   }
 
@@ -73,7 +76,7 @@ public final class TracingUtil {
    * @return encoded tracing context.
    */
   public static String exportSpan(Span span) {
-    if (span != null) {
+    if (span != null && isInit) {
       StringBuilder builder = new StringBuilder();
       GlobalTracer.get().inject(span.context(), StringCodec.FORMAT, builder);
       return builder.toString();
diff --git 
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/tracing/TestTracingUtil.java
 
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/tracing/TestTracingUtil.java
index 378ac6d4df..8d5c56fc0d 100644
--- 
a/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/tracing/TestTracingUtil.java
+++ 
b/hadoop-hdds/common/src/test/java/org/apache/hadoop/hdds/tracing/TestTracingUtil.java
@@ -17,15 +17,21 @@
  */
 package org.apache.hadoop.hdds.tracing;
 
+import io.jaegertracing.Configuration;
+import io.jaegertracing.internal.JaegerTracer;
+import io.opentracing.util.GlobalTracer;
 import org.apache.hadoop.hdds.conf.InMemoryConfiguration;
 import org.apache.hadoop.hdds.conf.MutableConfigurationSource;
 import org.apache.hadoop.hdds.scm.ScmConfigKeys;
 import org.apache.hadoop.hdds.tracing.TestTraceAllMethod.Service;
 import org.apache.hadoop.hdds.tracing.TestTraceAllMethod.ServiceImpl;
-import org.junit.jupiter.api.Test;
 
 import static org.apache.hadoop.hdds.tracing.TracingUtil.createProxy;
+import static org.apache.hadoop.hdds.tracing.TracingUtil.exportCurrentSpan;
 import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.fail;
+
+import org.junit.jupiter.api.Test;
 
 /**
  * Test for {@link TracingUtil}.
@@ -40,6 +46,19 @@ public class TestTracingUtil {
     assertEquals("Hello default", subject.defaultMethod());
   }
 
+  @Test
+  public void testInitTracing() {
+    Configuration config = Configuration.fromEnv("testInitTracing");
+    JaegerTracer tracer = config.getTracerBuilder().build();
+    GlobalTracer.registerIfAbsent(tracer);
+    try (AutoCloseable scope = TracingUtil
+        .createActivatedSpan("initTracing")) {
+      exportCurrentSpan();
+    } catch (Exception e) {
+      fail("Should not get exception");
+    }
+  }
+
   private static MutableConfigurationSource tracingEnabled() {
     MutableConfigurationSource config = new InMemoryConfiguration();
     config.setBoolean(ScmConfigKeys.HDDS_TRACING_ENABLED, true);


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to