Register TracerBridge in TracerInstaller instead of DDTracer init
This commit is contained in:
parent
e565205d77
commit
9f1d22ea6b
|
@ -1,7 +1,7 @@
|
|||
package datadog.trace.agent.tooling;
|
||||
|
||||
import datadog.opentracing.DDTracer;
|
||||
import io.opentracing.Tracer;
|
||||
import datadog.trace.context.TracerBridge;
|
||||
import io.opentracing.util.GlobalTracer;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
|
@ -10,11 +10,12 @@ public class TracerInstaller {
|
|||
/** Register a global tracer if no global tracer is already registered. */
|
||||
public static synchronized void installGlobalTracer() {
|
||||
if (!GlobalTracer.isRegistered()) {
|
||||
final Tracer resolved = new DDTracer();
|
||||
final DDTracer tracer = new DDTracer();
|
||||
try {
|
||||
GlobalTracer.register(resolved);
|
||||
GlobalTracer.register(tracer);
|
||||
TracerBridge.registerIfAbsent(tracer);
|
||||
} catch (final RuntimeException re) {
|
||||
log.warn("Failed to register tracer '" + resolved + "'", re);
|
||||
log.warn("Failed to register tracer '" + tracer + "'", re);
|
||||
}
|
||||
} else {
|
||||
log.debug("GlobalTracer already registered.");
|
||||
|
|
|
@ -9,6 +9,7 @@ import datadog.trace.agent.tooling.AgentInstaller;
|
|||
import datadog.trace.agent.tooling.Instrumenter;
|
||||
import datadog.trace.common.writer.ListWriter;
|
||||
import datadog.trace.common.writer.Writer;
|
||||
import datadog.trace.context.TracerBridge;
|
||||
import io.opentracing.Tracer;
|
||||
import java.lang.instrument.ClassFileTransformer;
|
||||
import java.lang.instrument.Instrumentation;
|
||||
|
@ -84,6 +85,7 @@ public abstract class AgentTestRunner extends Specification {
|
|||
};
|
||||
TEST_TRACER = new DDTracer(TEST_WRITER);
|
||||
TestUtils.registerOrReplaceGlobalTracer((Tracer) TEST_TRACER);
|
||||
TracerBridge.registerIfAbsent((DDTracer) TEST_TRACER);
|
||||
}
|
||||
|
||||
protected static Tracer getTestTracer() {
|
||||
|
|
|
@ -162,8 +162,6 @@ public class DDTracer implements io.opentracing.Tracer, Closeable, TracerBridge.
|
|||
addDecorator(decorator);
|
||||
}
|
||||
|
||||
TracerBridge.registerIfAbsent(this);
|
||||
|
||||
log.info("New instance: {}", this);
|
||||
}
|
||||
|
||||
|
|
|
@ -147,6 +147,7 @@ class TraceInterceptorTest extends Specification {
|
|||
|
||||
def "register interceptor through bridge" () {
|
||||
setup:
|
||||
TracerBridge.registerIfAbsent(tracer)
|
||||
def interceptor = new TraceInterceptor() {
|
||||
@Override
|
||||
Collection<? extends MutableSpan> onTraceComplete(Collection<? extends MutableSpan> trace) {
|
||||
|
@ -161,5 +162,6 @@ class TraceInterceptorTest extends Specification {
|
|||
|
||||
expect:
|
||||
TracerBridge.addTraceInterceptor(interceptor)
|
||||
tracer.interceptors.contains(interceptor)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue