Skip to content

Commit 07605d7

Browse files
authored
make hystrix indy-ready (#15079)
1 parent 2dfa1b0 commit 07605d7

File tree

2 files changed

+17
-8
lines changed

2 files changed

+17
-8
lines changed

instrumentation/hystrix-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hystrix/HystrixCommandInstrumentation.java

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,9 @@
1616
import io.opentelemetry.instrumentation.rxjava.v1_0.TracedOnSubscribe;
1717
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1818
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
19+
import javax.annotation.Nullable;
1920
import net.bytebuddy.asm.Advice;
21+
import net.bytebuddy.asm.Advice.AssignReturned;
2022
import net.bytebuddy.description.type.TypeDescription;
2123
import net.bytebuddy.matcher.ElementMatcher;
2224
import rx.Observable;
@@ -48,28 +50,30 @@ public void transform(TypeTransformer transformer) {
4850
@SuppressWarnings("unused")
4951
public static class ExecuteAdvice {
5052

53+
@AssignReturned.ToReturned
5154
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
52-
public static void stopSpan(
55+
public static Observable<?> stopSpan(
5356
@Advice.This HystrixInvokableInfo<?> command,
54-
@Advice.Return(readOnly = false) Observable<?> result,
55-
@Advice.Thrown Throwable throwable) {
57+
@Advice.Return @Nullable Observable<?> result,
58+
@Advice.Thrown @Nullable Throwable throwable) {
5659

5760
HystrixRequest request = HystrixRequest.create(command, "execute");
58-
result = Observable.create(new TracedOnSubscribe<>(result, instrumenter(), request));
61+
return Observable.create(new TracedOnSubscribe<>(result, instrumenter(), request));
5962
}
6063
}
6164

6265
@SuppressWarnings("unused")
6366
public static class FallbackAdvice {
6467

68+
@AssignReturned.ToReturned
6569
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
66-
public static void stopSpan(
70+
public static Observable<?> stopSpan(
6771
@Advice.This HystrixInvokableInfo<?> command,
68-
@Advice.Return(readOnly = false) Observable<?> result,
69-
@Advice.Thrown Throwable throwable) {
72+
@Advice.Return @Nullable Observable<?> result,
73+
@Advice.Thrown @Nullable Throwable throwable) {
7074

7175
HystrixRequest request = HystrixRequest.create(command, "fallback");
72-
result = Observable.create(new TracedOnSubscribe<>(result, instrumenter(), request));
76+
return Observable.create(new TracedOnSubscribe<>(result, instrumenter(), request));
7377
}
7478
}
7579
}

instrumentation/hystrix-1.4/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/hystrix/HystrixInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,9 @@ public List<TypeInstrumentation> typeInstrumentations() {
3535
public List<String> injectedClassNames() {
3636
return singletonList("rx.OpenTelemetryTracingUtil");
3737
}
38+
39+
@Override
40+
public boolean isIndyReady() {
41+
return true;
42+
}
3843
}

0 commit comments

Comments
 (0)