Skip to content

Commit 33b05a4

Browse files
author
Pankaj Agrawal
committed
fix: donot capture traces for sam local
1 parent f73570a commit 33b05a4

File tree

3 files changed

+11
-4
lines changed

3 files changed

+11
-4
lines changed

powertools-core/src/main/java/software/amazon/lambda/powertools/core/internal/LambdaHandlerProcessor.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -78,4 +78,8 @@ public static boolean isColdStart() {
7878
public static void coldStartDone() {
7979
IS_COLD_START = false;
8080
}
81+
82+
public static boolean isSamLocal() {
83+
return "true".equals(System.getenv("AWS_SAM_LOCAL"));
84+
}
8185
}

powertools-tracing/src/main/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspect.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.coldStartDone;
2525
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isColdStart;
2626
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isHandlerMethod;
27+
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.isSamLocal;
2728
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.placedOnRequestHandler;
2829
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.placedOnStreamHandler;
2930
import static software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor.serviceName;
@@ -62,7 +63,9 @@ public Object around(ProceedingJoinPoint pjp,
6263
}
6364
throw e;
6465
} finally {
65-
AWSXRay.endSubsegment();
66+
if (!isSamLocal()) {
67+
AWSXRay.endSubsegment();
68+
}
6669
}
6770
}
6871

powertools-tracing/src/test/java/software/amazon/lambda/powertools/tracing/internal/LambdaTracingAspectTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,20 +25,20 @@
2525
import org.junit.jupiter.api.BeforeEach;
2626
import org.junit.jupiter.api.Test;
2727
import org.mockito.Mock;
28+
import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor;
2829
import software.amazon.lambda.powertools.tracing.handlers.PowerToolDisabled;
2930
import software.amazon.lambda.powertools.tracing.handlers.PowerToolDisabledForStream;
3031
import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabled;
3132
import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledForStream;
3233
import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledForStreamWithNoMetaData;
3334
import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledWithException;
3435
import software.amazon.lambda.powertools.tracing.handlers.PowerTracerToolEnabledWithNoMetaData;
35-
import software.amazon.lambda.powertools.core.internal.LambdaHandlerProcessor;
3636

3737
import static org.apache.commons.lang3.reflect.FieldUtils.writeStaticField;
3838
import static org.assertj.core.api.Assertions.assertThat;
3939
import static org.assertj.core.api.Assertions.catchThrowable;
4040
import static org.mockito.Mockito.when;
41-
import static org.mockito.MockitoAnnotations.initMocks;
41+
import static org.mockito.MockitoAnnotations.openMocks;
4242

4343
class LambdaTracingAspectTest {
4444
private RequestHandler<Object, Object> requestHandler;
@@ -49,7 +49,7 @@ class LambdaTracingAspectTest {
4949

5050
@BeforeEach
5151
void setUp() throws IllegalAccessException {
52-
initMocks(this);
52+
openMocks(this);
5353
writeStaticField(LambdaHandlerProcessor.class, "IS_COLD_START", null, true);
5454
setupContext();
5555
requestHandler = new PowerTracerToolEnabled();

0 commit comments

Comments
 (0)