Skip to content

Commit 176d09b

Browse files
committed
mongo-async-3.3
1 parent 3e3c4af commit 176d09b

File tree

3 files changed

+28
-13
lines changed

3 files changed

+28
-13
lines changed

instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/BaseClusterInstrumentation.java

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1616
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1717
import net.bytebuddy.asm.Advice;
18+
import net.bytebuddy.asm.Advice.AssignReturned;
19+
import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument;
1820
import net.bytebuddy.description.type.TypeDescription;
1921
import net.bytebuddy.matcher.ElementMatcher;
2022

@@ -39,10 +41,11 @@ public void transform(TypeTransformer transformer) {
3941
@SuppressWarnings("unused")
4042
public static class SingleResultCallbackArg1Advice {
4143

44+
@AssignReturned.ToArguments(@ToArgument(1))
4245
@Advice.OnMethodEnter(suppress = Throwable.class)
43-
public static void wrapCallback(
44-
@Advice.Argument(value = 1, readOnly = false) SingleResultCallback<Object> callback) {
45-
callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
46+
public static SingleResultCallback<Object> wrapCallback(
47+
@Advice.Argument(1) SingleResultCallback<Object> callback) {
48+
return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
4649
}
4750
}
4851
}

instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/InternalStreamConnectionInstrumentation.java

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1515
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1616
import net.bytebuddy.asm.Advice;
17+
import net.bytebuddy.asm.Advice.AssignReturned;
18+
import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument;
1719
import net.bytebuddy.description.type.TypeDescription;
1820
import net.bytebuddy.matcher.ElementMatcher;
1921

@@ -46,30 +48,33 @@ public void transform(TypeTransformer transformer) {
4648
@SuppressWarnings("unused")
4749
public static class SingleResultCallbackArg0Advice {
4850

51+
@AssignReturned.ToArguments(@ToArgument(0))
4952
@Advice.OnMethodEnter(suppress = Throwable.class)
50-
public static void wrapCallback(
51-
@Advice.Argument(value = 0, readOnly = false) SingleResultCallback<Object> callback) {
52-
callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
53+
public static SingleResultCallback<Object> wrapCallback(
54+
@Advice.Argument(0) SingleResultCallback<Object> callback) {
55+
return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
5356
}
5457
}
5558

5659
@SuppressWarnings("unused")
5760
public static class SingleResultCallbackArg1Advice {
5861

62+
@AssignReturned.ToArguments(@ToArgument(1))
5963
@Advice.OnMethodEnter(suppress = Throwable.class)
60-
public static void wrapCallback(
61-
@Advice.Argument(value = 1, readOnly = false) SingleResultCallback<Object> callback) {
62-
callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
64+
public static SingleResultCallback<Object> wrapCallback(
65+
@Advice.Argument(1) SingleResultCallback<Object> callback) {
66+
return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
6367
}
6468
}
6569

6670
@SuppressWarnings("unused")
6771
public static class SingleResultCallbackArg2Advice {
6872

73+
@AssignReturned.ToArguments(@ToArgument(2))
6974
@Advice.OnMethodEnter(suppress = Throwable.class)
70-
public static void wrapCallback(
71-
@Advice.Argument(value = 2, readOnly = false) SingleResultCallback<Object> callback) {
72-
callback = new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
75+
public static SingleResultCallback<Object> wrapCallback(
76+
@Advice.Argument(2) SingleResultCallback<Object> callback) {
77+
return new SingleResultCallbackWrapper(Java8BytecodeBridge.currentContext(), callback);
7378
}
7479
}
7580
}

instrumentation/mongo/mongo-async-3.3/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongoasync/v3_3/MongoAsyncClientInstrumentationModule.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,13 @@
1111
import com.google.auto.service.AutoService;
1212
import io.opentelemetry.javaagent.extension.instrumentation.InstrumentationModule;
1313
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
14+
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
1415
import java.util.List;
1516
import net.bytebuddy.matcher.ElementMatcher;
1617

1718
@AutoService(InstrumentationModule.class)
18-
public class MongoAsyncClientInstrumentationModule extends InstrumentationModule {
19+
public class MongoAsyncClientInstrumentationModule extends InstrumentationModule
20+
implements ExperimentalInstrumentationModule {
1921

2022
public MongoAsyncClientInstrumentationModule() {
2123
super("mongo-async", "mongo-async-3.3", "mongo");
@@ -33,4 +35,9 @@ public List<TypeInstrumentation> typeInstrumentations() {
3335
new InternalStreamConnectionInstrumentation(),
3436
new BaseClusterInstrumentation());
3537
}
38+
39+
@Override
40+
public boolean isIndyReady() {
41+
return true;
42+
}
3643
}

0 commit comments

Comments
 (0)