Skip to content

Commit 8929ba1

Browse files
authored
Improve context propagation for rxjava1 observables (#7686)
1 parent 043adb2 commit 8929ba1

File tree

1 file changed

+5
-15
lines changed
  • dd-java-agent/instrumentation/rxjava-1/src/main/java/datadog/trace/instrumentation/rxjava

1 file changed

+5
-15
lines changed

dd-java-agent/instrumentation/rxjava-1/src/main/java/datadog/trace/instrumentation/rxjava/TracedOnSubscribe.java

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

33
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activateSpan;
4-
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.capture;
4+
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.activeSpan;
55
import static datadog.trace.bootstrap.instrumentation.api.AgentTracer.startSpan;
66

77
import datadog.trace.bootstrap.instrumentation.api.AgentScope;
@@ -15,7 +15,7 @@ public class TracedOnSubscribe<T> implements Observable.OnSubscribe<T> {
1515

1616
private final Observable.OnSubscribe<?> delegate;
1717
private final CharSequence operationName;
18-
private final AgentScope.Continuation continuation;
18+
private final AgentSpan parent;
1919
private final BaseDecorator decorator;
2020

2121
public TracedOnSubscribe(
@@ -25,25 +25,15 @@ public TracedOnSubscribe(
2525
delegate = DDTracingUtil.extractOnSubscribe(originalObservable);
2626
this.operationName = operationName;
2727
this.decorator = decorator;
28-
29-
continuation = capture();
28+
this.parent = activeSpan();
3029
}
3130

3231
@Override
3332
public void call(final Subscriber<? super T> subscriber) {
34-
final AgentSpan span; // span finished by TracedSubscriber
35-
if (continuation != null) {
36-
try (final AgentScope scope = continuation.activate()) {
37-
span = startSpan(operationName);
38-
}
39-
} else {
40-
span = startSpan(operationName);
41-
}
42-
33+
final AgentSpan span = startSpan(operationName, parent != null ? parent.context() : null);
4334
afterStart(span);
4435

45-
try (final AgentScope scope = activateSpan(span)) {
46-
scope.setAsyncPropagation(true);
36+
try (final AgentScope scope = activateSpan(span, true)) {
4737
delegate.call(new TracedSubscriber(span, subscriber, decorator));
4838
}
4939
}

0 commit comments

Comments
 (0)