Skip to content

Commit 9f1d22e

Browse files
author
Andrew Kent
committed
Register TracerBridge in TracerInstaller instead of DDTracer init
1 parent e565205 commit 9f1d22e

4 files changed

Lines changed: 9 additions & 6 deletions

File tree

dd-java-agent/agent-tooling/src/main/java/datadog/trace/agent/tooling/TracerInstaller.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package datadog.trace.agent.tooling;
22

33
import datadog.opentracing.DDTracer;
4-
import io.opentracing.Tracer;
4+
import datadog.trace.context.TracerBridge;
55
import io.opentracing.util.GlobalTracer;
66
import lombok.extern.slf4j.Slf4j;
77

@@ -10,11 +10,12 @@ public class TracerInstaller {
1010
/** Register a global tracer if no global tracer is already registered. */
1111
public static synchronized void installGlobalTracer() {
1212
if (!GlobalTracer.isRegistered()) {
13-
final Tracer resolved = new DDTracer();
13+
final DDTracer tracer = new DDTracer();
1414
try {
15-
GlobalTracer.register(resolved);
15+
GlobalTracer.register(tracer);
16+
TracerBridge.registerIfAbsent(tracer);
1617
} catch (final RuntimeException re) {
17-
log.warn("Failed to register tracer '" + resolved + "'", re);
18+
log.warn("Failed to register tracer '" + tracer + "'", re);
1819
}
1920
} else {
2021
log.debug("GlobalTracer already registered.");

dd-java-agent/testing/src/main/java/datadog/trace/agent/test/AgentTestRunner.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import datadog.trace.agent.tooling.Instrumenter;
1010
import datadog.trace.common.writer.ListWriter;
1111
import datadog.trace.common.writer.Writer;
12+
import datadog.trace.context.TracerBridge;
1213
import io.opentracing.Tracer;
1314
import java.lang.instrument.ClassFileTransformer;
1415
import java.lang.instrument.Instrumentation;
@@ -84,6 +85,7 @@ public boolean add(final List<DDSpan> trace) {
8485
};
8586
TEST_TRACER = new DDTracer(TEST_WRITER);
8687
TestUtils.registerOrReplaceGlobalTracer((Tracer) TEST_TRACER);
88+
TracerBridge.registerIfAbsent((DDTracer) TEST_TRACER);
8789
}
8890

8991
protected static Tracer getTestTracer() {

dd-trace-ot/src/main/java/datadog/opentracing/DDTracer.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -162,8 +162,6 @@ public void run() {
162162
addDecorator(decorator);
163163
}
164164

165-
TracerBridge.registerIfAbsent(this);
166-
167165
log.info("New instance: {}", this);
168166
}
169167

dd-trace-ot/src/test/groovy/datadog/opentracing/TraceInterceptorTest.groovy

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -147,6 +147,7 @@ class TraceInterceptorTest extends Specification {
147147
148148
def "register interceptor through bridge" () {
149149
setup:
150+
TracerBridge.registerIfAbsent(tracer)
150151
def interceptor = new TraceInterceptor() {
151152
@Override
152153
Collection<? extends MutableSpan> onTraceComplete(Collection<? extends MutableSpan> trace) {
@@ -161,5 +162,6 @@ class TraceInterceptorTest extends Specification {
161162
162163
expect:
163164
TracerBridge.addTraceInterceptor(interceptor)
165+
tracer.interceptors.contains(interceptor)
164166
}
165167
}

0 commit comments

Comments
 (0)