Skip to content

Commit 07ba5f8

Browse files
committed
mongo-3.7
1 parent f44456e commit 07ba5f8

File tree

3 files changed

+24
-10
lines changed

3 files changed

+24
-10
lines changed

instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/BaseClusterInstrumentation.java

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

@@ -41,10 +43,11 @@ public void transform(TypeTransformer transformer) {
4143
@SuppressWarnings("unused")
4244
public static class SingleResultCallbackArg1Advice {
4345

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

instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/InternalStreamConnectionInstrumentation.java

Lines changed: 10 additions & 6 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,20 +48,22 @@ 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
}

instrumentation/mongo/mongo-3.7/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/mongo/v3_7/MongoClientInstrumentationModule.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 MongoClientInstrumentationModule extends InstrumentationModule {
19+
public class MongoClientInstrumentationModule extends InstrumentationModule
20+
implements ExperimentalInstrumentationModule {
1921

2022
public MongoClientInstrumentationModule() {
2123
super("mongo", "mongo-3.7");
@@ -34,4 +36,9 @@ public List<TypeInstrumentation> typeInstrumentations() {
3436
new InternalStreamConnectionInstrumentation(),
3537
new BaseClusterInstrumentation());
3638
}
39+
40+
@Override
41+
public boolean isIndyReady() {
42+
return true;
43+
}
3744
}

0 commit comments

Comments
 (0)