Skip to content

Commit a1a12f6

Browse files
authored
make aws-sdk indy-ready (#14812)
1 parent 52413f3 commit a1a12f6

File tree

7 files changed

+33
-9
lines changed

7 files changed

+33
-9
lines changed

instrumentation/aws-sdk/aws-sdk-1.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v1_11/AbstractAwsSdkInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,11 @@ public List<TypeInstrumentation> typeInstrumentations() {
4747
return singletonList(new ResourceInjectingTypeInstrumentation());
4848
}
4949

50+
@Override
51+
public boolean isIndyReady() {
52+
return true;
53+
}
54+
5055
abstract void doTransform(TypeTransformer transformer);
5156

5257
// A type instrumentation is needed to trigger resource injection.

instrumentation/aws-sdk/aws-sdk-1.11/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v1_11/AwsSdkInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ public String getModuleGroup() {
3030
return "aws-sdk";
3131
}
3232

33+
@Override
34+
public boolean isIndyReady() {
35+
return true;
36+
}
37+
3338
@Override
3439
public List<TypeInstrumentation> typeInstrumentations() {
3540
return asList(

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2/AbstractAwsSdkInstrumentationModule.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,11 @@ public List<TypeInstrumentation> typeInstrumentations() {
4646
return singletonList(new ResourceInjectingTypeInstrumentation());
4747
}
4848

49+
@Override
50+
public boolean isIndyReady() {
51+
return true;
52+
}
53+
4954
abstract void doTransform(TypeTransformer transformer);
5055

5156
// A type instrumentation is needed to trigger resource injection.

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2/AwsAsyncClientHandlerInstrumentation.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1313
import java.util.concurrent.CompletableFuture;
1414
import net.bytebuddy.asm.Advice;
15+
import net.bytebuddy.asm.Advice.AssignReturned;
1516
import net.bytebuddy.description.type.TypeDescription;
1617
import net.bytebuddy.matcher.ElementMatcher;
1718

@@ -35,10 +36,12 @@ public void transform(TypeTransformer transformer) {
3536
@SuppressWarnings("unused")
3637
public static class WrapFutureAdvice {
3738

39+
@AssignReturned.ToReturned
3840
@Advice.OnMethodExit(suppress = Throwable.class)
39-
public static void methodExit(@Advice.Return(readOnly = false) CompletableFuture<?> future) {
41+
public static CompletableFuture<?> methodExit(@Advice.Return CompletableFuture<?> future) {
42+
4043
// propagate context into CompletableFuture returned from aws async client methods
41-
future = CompletableFutureWrapper.wrap(future);
44+
return CompletableFutureWrapper.wrap(future);
4245
}
4346
}
4447
}

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2/DefaultBedrockRuntimeAsyncClientBuilderInstrumentation.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1111
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1212
import net.bytebuddy.asm.Advice;
13+
import net.bytebuddy.asm.Advice.AssignReturned;
1314
import net.bytebuddy.description.type.TypeDescription;
1415
import net.bytebuddy.matcher.ElementMatcher;
1516
import software.amazon.awssdk.services.bedrockruntime.BedrockRuntimeAsyncClient;
@@ -31,10 +32,11 @@ public void transform(TypeTransformer transformer) {
3132
@SuppressWarnings("unused")
3233
public static class BuildClientAdvice {
3334

35+
@AssignReturned.ToReturned
3436
@Advice.OnMethodExit(suppress = Throwable.class)
35-
public static void methodExit(
36-
@Advice.Return(readOnly = false) BedrockRuntimeAsyncClient client) {
37-
client = AwsSdkSingletons.telemetry().wrapBedrockRuntimeClient(client);
37+
public static BedrockRuntimeAsyncClient methodExit(
38+
@Advice.Return BedrockRuntimeAsyncClient client) {
39+
return AwsSdkSingletons.telemetry().wrapBedrockRuntimeClient(client);
3840
}
3941
}
4042
}

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2/DefaultSqsAsyncClientBuilderInstrumentation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1111
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1212
import net.bytebuddy.asm.Advice;
13+
import net.bytebuddy.asm.Advice.AssignReturned;
1314
import net.bytebuddy.description.type.TypeDescription;
1415
import net.bytebuddy.matcher.ElementMatcher;
1516
import software.amazon.awssdk.services.sqs.SqsAsyncClient;
@@ -30,9 +31,10 @@ public void transform(TypeTransformer transformer) {
3031
@SuppressWarnings("unused")
3132
public static class BuildClientAdvice {
3233

34+
@AssignReturned.ToReturned
3335
@Advice.OnMethodExit(suppress = Throwable.class)
34-
public static void methodExit(@Advice.Return(readOnly = false) SqsAsyncClient sqsClient) {
35-
sqsClient = AwsSdkSingletons.telemetry().wrap(sqsClient);
36+
public static SqsAsyncClient methodExit(@Advice.Return SqsAsyncClient sqsClient) {
37+
return AwsSdkSingletons.telemetry().wrap(sqsClient);
3638
}
3739
}
3840
}

instrumentation/aws-sdk/aws-sdk-2.2/javaagent/src/main/java/io/opentelemetry/javaagent/instrumentation/awssdk/v2_2/DefaultSqsClientBuilderInstrumentation.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.opentelemetry.javaagent.extension.instrumentation.TypeInstrumentation;
1111
import io.opentelemetry.javaagent.extension.instrumentation.TypeTransformer;
1212
import net.bytebuddy.asm.Advice;
13+
import net.bytebuddy.asm.Advice.AssignReturned;
1314
import net.bytebuddy.description.type.TypeDescription;
1415
import net.bytebuddy.matcher.ElementMatcher;
1516
import software.amazon.awssdk.services.sqs.SqsClient;
@@ -30,9 +31,10 @@ public void transform(TypeTransformer transformer) {
3031
@SuppressWarnings("unused")
3132
public static class BuildClientAdvice {
3233

34+
@AssignReturned.ToReturned
3335
@Advice.OnMethodExit(suppress = Throwable.class)
34-
public static void methodExit(@Advice.Return(readOnly = false) SqsClient sqsClient) {
35-
sqsClient = AwsSdkSingletons.telemetry().wrap(sqsClient);
36+
public static SqsClient methodExit(@Advice.Return SqsClient sqsClient) {
37+
return AwsSdkSingletons.telemetry().wrap(sqsClient);
3638
}
3739
}
3840
}

0 commit comments

Comments
 (0)