Skip to content

Commit 9febe27

Browse files
committed
redisson-3.0 + reformat
1 parent d87ab9a commit 9febe27

File tree

6 files changed

+74
-47
lines changed

6 files changed

+74
-47
lines changed

instrumentation/redisson/redisson-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/v3_0/RedisCommandDataInstrumentation.java

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,8 @@
1515
import io.opentelemetry.javaagent.instrumentation.redisson.CompletableFutureWrapper;
1616
import java.util.concurrent.CompletableFuture;
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
import org.redisson.misc.RPromise;
@@ -42,19 +44,21 @@ public void transform(TypeTransformer transformer) {
4244
@SuppressWarnings("unused")
4345
public static class WrapPromiseAdvice {
4446

47+
@AssignReturned.ToArguments(@ToArgument(0))
4548
@Advice.OnMethodEnter(suppress = Throwable.class)
46-
public static void onEnter(@Advice.Argument(value = 0, readOnly = false) RPromise<?> promise) {
47-
promise = RedissonPromiseWrapper.wrap(promise);
49+
public static RPromise<?> onEnter(@Advice.Argument(0) RPromise<?> promise) {
50+
return RedissonPromiseWrapper.wrap(promise);
4851
}
4952
}
5053

5154
@SuppressWarnings("unused")
5255
public static class WrapCompletableFutureAdvice {
5356

57+
@AssignReturned.ToArguments(@ToArgument(0))
5458
@Advice.OnMethodEnter(suppress = Throwable.class)
55-
public static void onEnter(
56-
@Advice.Argument(value = 0, readOnly = false) CompletableFuture<?> completableFuture) {
57-
completableFuture = CompletableFutureWrapper.wrap(completableFuture);
59+
public static CompletableFuture<?> onEnter(
60+
@Advice.Argument(0) CompletableFuture<?> completableFuture) {
61+
return CompletableFutureWrapper.wrap(completableFuture);
5862
}
5963
}
6064
}

instrumentation/redisson/redisson-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/v3_0/RedisConnectionInstrumentation.java

Lines changed: 48 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
import io.opentelemetry.javaagent.instrumentation.redisson.PromiseWrapper;
1919
import io.opentelemetry.javaagent.instrumentation.redisson.RedissonRequest;
2020
import java.net.InetSocketAddress;
21+
import javax.annotation.Nullable;
2122
import net.bytebuddy.asm.Advice;
2223
import net.bytebuddy.description.type.TypeDescription;
2324
import net.bytebuddy.matcher.ElementMatcher;
@@ -38,47 +39,63 @@ public void transform(TypeTransformer transformer) {
3839
@SuppressWarnings("unused")
3940
public static class SendAdvice {
4041

41-
@Advice.OnMethodEnter(suppress = Throwable.class)
42-
public static void onEnter(
43-
@Advice.This RedisConnection connection,
44-
@Advice.Argument(0) Object arg,
45-
@Advice.Local("otelRequest") RedissonRequest request,
46-
@Advice.Local("otelContext") Context context,
47-
@Advice.Local("otelScope") Scope scope) {
42+
public static class AdviceScope {
43+
private final RedissonRequest request;
44+
private final Context context;
45+
private final Scope scope;
4846

49-
Context parentContext = currentContext();
50-
InetSocketAddress remoteAddress = (InetSocketAddress) connection.getChannel().remoteAddress();
51-
request = RedissonRequest.create(remoteAddress, arg);
52-
PromiseWrapper<?> promise = request.getPromiseWrapper();
53-
if (promise == null) {
54-
return;
47+
public AdviceScope(RedissonRequest request, Context context, Scope scope) {
48+
this.request = request;
49+
this.context = context;
50+
this.scope = scope;
5551
}
56-
if (!instrumenter().shouldStart(parentContext, request)) {
57-
return;
52+
53+
@Nullable
54+
public static AdviceScope start(RedisConnection connection, Object arg) {
55+
InetSocketAddress remoteAddress =
56+
(InetSocketAddress) connection.getChannel().remoteAddress();
57+
RedissonRequest request = RedissonRequest.create(remoteAddress, arg);
58+
PromiseWrapper<?> promise = request.getPromiseWrapper();
59+
if (promise == null) {
60+
return null;
61+
}
62+
Context parentContext = currentContext();
63+
if (!instrumenter().shouldStart(parentContext, request)) {
64+
return null;
65+
}
66+
67+
Context context = instrumenter().start(parentContext, request);
68+
Scope scope = context.makeCurrent();
69+
70+
promise.setEndOperationListener(
71+
new EndOperationListener<>(instrumenter(), context, request));
72+
return new AdviceScope(request, context, scope);
5873
}
5974

60-
context = instrumenter().start(parentContext, request);
61-
scope = context.makeCurrent();
75+
public void end(@Nullable Throwable throwable) {
76+
scope.close();
6277

63-
promise.setEndOperationListener(new EndOperationListener<>(instrumenter(), context, request));
78+
if (throwable != null) {
79+
instrumenter().end(context, request, null, throwable);
80+
}
81+
// span ended in EndOperationListener
82+
}
83+
}
84+
85+
@Nullable
86+
@Advice.OnMethodEnter(suppress = Throwable.class)
87+
public static AdviceScope onEnter(
88+
@Advice.This RedisConnection connection, @Advice.Argument(0) Object arg) {
89+
return AdviceScope.start(connection, arg);
6490
}
6591

6692
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)
6793
public static void stopSpan(
68-
@Advice.Thrown Throwable throwable,
69-
@Advice.Local("otelRequest") RedissonRequest request,
70-
@Advice.Local("otelContext") Context context,
71-
@Advice.Local("otelScope") Scope scope) {
72-
73-
if (scope == null) {
74-
return;
75-
}
76-
scope.close();
77-
78-
if (throwable != null) {
79-
instrumenter().end(context, request, null, throwable);
94+
@Advice.Thrown @Nullable Throwable throwable,
95+
@Advice.Enter @Nullable AdviceScope adviceScope) {
96+
if (adviceScope != null) {
97+
adviceScope.end(throwable);
8098
}
81-
// span ended in EndOperationListener
8299
}
83100
}
84101
}

instrumentation/redisson/redisson-3.0/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/v3_0/RedissonInstrumentationModule.java

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

1819
@AutoService(InstrumentationModule.class)
19-
public class RedissonInstrumentationModule extends InstrumentationModule {
20+
public class RedissonInstrumentationModule extends InstrumentationModule
21+
implements ExperimentalInstrumentationModule {
2022

2123
public RedissonInstrumentationModule() {
2224
super("redisson", "redisson-3.0");
@@ -31,4 +33,9 @@ public ElementMatcher.Junction<ClassLoader> classLoaderMatcher() {
3133
public List<TypeInstrumentation> typeInstrumentations() {
3234
return asList(new RedisConnectionInstrumentation(), new RedisCommandDataInstrumentation());
3335
}
36+
37+
@Override
38+
public boolean isIndyReady() {
39+
return true;
40+
}
3441
}

instrumentation/redisson/redisson-3.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/v3_17/RedisCommandDataInstrumentation.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,10 +14,10 @@
1414
import io.opentelemetry.javaagent.instrumentation.redisson.CompletableFutureWrapper;
1515
import java.util.concurrent.CompletableFuture;
1616
import net.bytebuddy.asm.Advice;
17-
import net.bytebuddy.description.type.TypeDescription;
18-
import net.bytebuddy.matcher.ElementMatcher;
1917
import net.bytebuddy.asm.Advice.AssignReturned;
2018
import net.bytebuddy.asm.Advice.AssignReturned.ToArguments.ToArgument;
19+
import net.bytebuddy.description.type.TypeDescription;
20+
import net.bytebuddy.matcher.ElementMatcher;
2121

2222
public class RedisCommandDataInstrumentation implements TypeInstrumentation {
2323

instrumentation/redisson/redisson-3.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/v3_17/RedisConnectionInstrumentation.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,11 @@
1818
import io.opentelemetry.javaagent.instrumentation.redisson.PromiseWrapper;
1919
import io.opentelemetry.javaagent.instrumentation.redisson.RedissonRequest;
2020
import java.net.InetSocketAddress;
21+
import javax.annotation.Nullable;
2122
import net.bytebuddy.asm.Advice;
2223
import net.bytebuddy.description.type.TypeDescription;
2324
import net.bytebuddy.matcher.ElementMatcher;
2425
import org.redisson.client.RedisConnection;
25-
import javax.annotation.Nullable;
2626

2727
public class RedisConnectionInstrumentation implements TypeInstrumentation {
2828
@Override
@@ -53,8 +53,8 @@ public AdviceScope(RedissonRequest request, Context context, Scope scope) {
5353
@Nullable
5454
public static AdviceScope start(RedisConnection connection, Object arg) {
5555
Context parentContext = currentContext();
56-
InetSocketAddress remoteAddress = (InetSocketAddress) connection.getChannel()
57-
.remoteAddress();
56+
InetSocketAddress remoteAddress =
57+
(InetSocketAddress) connection.getChannel().remoteAddress();
5858
RedissonRequest request = RedissonRequest.create(remoteAddress, arg);
5959
PromiseWrapper<?> promise = request.getPromiseWrapper();
6060
if (promise == null) {
@@ -84,10 +84,8 @@ public void end(@Nullable Throwable throwable) {
8484
@Nullable
8585
@Advice.OnMethodEnter(suppress = Throwable.class)
8686
public static AdviceScope onEnter(
87-
@Advice.This RedisConnection connection,
88-
@Advice.Argument(0) Object arg) {
87+
@Advice.This RedisConnection connection, @Advice.Argument(0) Object arg) {
8988
return AdviceScope.start(connection, arg);
90-
9189
}
9290

9391
@Advice.OnMethodExit(onThrowable = Throwable.class, suppress = Throwable.class)

instrumentation/redisson/redisson-3.17/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/redisson/v3_17/RedissonInstrumentationModule.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +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 java.util.List;
1514
import io.opentelemetry.javaagent.extension.instrumentation.internal.ExperimentalInstrumentationModule;
15+
import java.util.List;
1616
import net.bytebuddy.matcher.ElementMatcher;
1717

1818
@AutoService(InstrumentationModule.class)
19-
public class RedissonInstrumentationModule extends InstrumentationModule implements ExperimentalInstrumentationModule {
19+
public class RedissonInstrumentationModule extends InstrumentationModule
20+
implements ExperimentalInstrumentationModule {
2021

2122
public RedissonInstrumentationModule() {
2223
super("redisson", "redisson-3.17");

0 commit comments

Comments
 (0)