From 9c1ad16ec298a864b68a8653ec3fd75a0f559723 Mon Sep 17 00:00:00 2001 From: William Armiros Date: Mon, 9 Nov 2020 14:14:50 -0800 Subject: [PATCH 1/3] improved ForcedSampling support --- .../com/amazonaws/xray/AWSXRayRecorder.java | 8 +++ .../sampling/AllSamplingStrategy.java | 9 +++- .../sampling/CentralizedSamplingStrategy.java | 6 +++ .../sampling/LocalizedSamplingStrategy.java | 6 +++ .../strategy/sampling/NoSamplingStrategy.java | 7 +++ .../strategy/sampling/SamplingStrategy.java | 8 +++ .../amazonaws/xray/AWSXRayRecorderTest.java | 53 +++++++++++-------- 7 files changed, 75 insertions(+), 22 deletions(-) diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java index db70ad24..908cba3e 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java @@ -415,6 +415,14 @@ public Segment beginSegmentWithSampling(String name) { segment.setRuleName(samplingResponse.getRuleName().get()); } + return segment; + } else if (this.getSamplingStrategy().isForcedSamplingSupported()) { + Segment segment = beginSegment(name); + segment.setSampled(false); + if (samplingResponse.getRuleName().isPresent()) { + segment.setRuleName(samplingResponse.getRuleName().get()); + } + return segment; } diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java index 0b3c03c6..2700ca94 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java @@ -20,14 +20,21 @@ * */ public class AllSamplingStrategy implements SamplingStrategy { + private boolean forcedSamplingSupport; + @Override public SamplingResponse shouldTrace(SamplingRequest samplingRequest) { SamplingResponse sampleResponse = new SamplingResponse(true); return sampleResponse; } + @Override + public void setForcedSamplingSupport(boolean support) { + this.forcedSamplingSupport = support; + } + @Override public boolean isForcedSamplingSupported() { - return false; + return forcedSamplingSupport; } } diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java index f7f67f33..164f11bb 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java @@ -34,6 +34,7 @@ public class CentralizedSamplingStrategy implements SamplingStrategy { // Initialize random ClientID. We use the same ClientID for all GetSamplingTargets calls. Conflicts are avoided // because IDs are scoped to a single account. private static final String clientID; + private boolean forcedSamplingSupport; static { SecureRandom rand = new SecureRandom(); @@ -146,6 +147,11 @@ private synchronized void startPoller() { isStarted = true; } + @Override + public void setForcedSamplingSupport(boolean support) { + this.forcedSamplingSupport = support; + } + @Override public boolean isForcedSamplingSupported() { //TODO address this diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java index 888e12d5..d701e1b0 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java @@ -36,6 +36,7 @@ public class LocalizedSamplingStrategy implements SamplingStrategy { LogFactory.getLog(LocalizedSamplingStrategy.class); private static final URL DEFAULT_RULES; + private boolean forcedSamplingSupport; static { URL defaultRules = @@ -180,6 +181,11 @@ private boolean shouldTrace(@Nullable SamplingRule samplingRule) { } } + @Override + public void setForcedSamplingSupport(boolean support) { + this.forcedSamplingSupport = support; + } + @Override public boolean isForcedSamplingSupported() { //TODO address this diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java index 536ff910..46718ac2 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java @@ -21,12 +21,19 @@ * */ public class NoSamplingStrategy implements SamplingStrategy { + private boolean forcedSamplingSupport; + @Override public SamplingResponse shouldTrace(SamplingRequest samplingRequest) { SamplingResponse sampleResponse = new SamplingResponse(false, ""); return sampleResponse; } + @Override + public void setForcedSamplingSupport(boolean support) { + this.forcedSamplingSupport = support; + } + @Override public boolean isForcedSamplingSupported() { return false; diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java index fb64a4ca..df96e8c0 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java @@ -29,6 +29,14 @@ public interface SamplingStrategy { */ boolean isForcedSamplingSupported(); + /** + * Sets whether this strategy supports forced sampling. + * + * @param support - whether or not forced sampling is supported. + */ + default void setForcedSamplingSupport(boolean support) { + } + /** * Shutdown additional resources created by advanced sampling strategies. */ diff --git a/aws-xray-recorder-sdk-core/src/test/java/com/amazonaws/xray/AWSXRayRecorderTest.java b/aws-xray-recorder-sdk-core/src/test/java/com/amazonaws/xray/AWSXRayRecorderTest.java index 01262863..25154758 100644 --- a/aws-xray-recorder-sdk-core/src/test/java/com/amazonaws/xray/AWSXRayRecorderTest.java +++ b/aws-xray-recorder-sdk-core/src/test/java/com/amazonaws/xray/AWSXRayRecorderTest.java @@ -17,6 +17,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; import com.amazonaws.xray.contexts.LambdaSegmentContext; import com.amazonaws.xray.contexts.LambdaSegmentContextResolver; @@ -38,7 +40,6 @@ import com.amazonaws.xray.strategy.LogErrorContextMissingStrategy; import com.amazonaws.xray.strategy.RuntimeErrorContextMissingStrategy; import com.amazonaws.xray.strategy.sampling.LocalizedSamplingStrategy; -import com.amazonaws.xray.strategy.sampling.SamplingRequest; import com.amazonaws.xray.strategy.sampling.SamplingResponse; import com.amazonaws.xray.strategy.sampling.SamplingStrategy; import com.fasterxml.jackson.databind.node.JsonNodeFactory; @@ -68,7 +69,9 @@ import org.junit.runner.RunWith; import org.junit.runners.MethodSorters; import org.mockito.ArgumentCaptor; +import org.mockito.Mock; import org.mockito.Mockito; +import org.mockito.MockitoAnnotations; import org.powermock.api.mockito.PowerMockito; import org.powermock.core.classloader.annotations.PowerMockIgnore; import org.powermock.core.classloader.annotations.PrepareForTest; @@ -86,6 +89,9 @@ public class AWSXRayRecorderTest { private static ExecutorService threadExecutor; + @Mock + private SamplingStrategy mockSamplingStrategy; + @Rule public EnvironmentVariables environmentVariables = new EnvironmentVariables(); @Rule @@ -103,6 +109,7 @@ public static void stopExecutor() { @Before public void setupAWSXRay() { + MockitoAnnotations.initMocks(this); Emitter blankEmitter = Mockito.mock(Emitter.class); LocalizedSamplingStrategy defaultSamplingStrategy = new LocalizedSamplingStrategy(); Mockito.doReturn(true).when(blankEmitter).sendSegment(Mockito.anyObject()); @@ -270,7 +277,7 @@ public void testNotSendingUnsampledSegment() { segment.setSampled(false); recorder.endSegment(); - Mockito.verify(mockEmitter, Mockito.times(0)).sendSegment(Mockito.any()); + Mockito.verify(mockEmitter, Mockito.times(0)).sendSegment(any()); } @Test @@ -283,7 +290,7 @@ public void testSegmentEmitted() { recorder.endSubsegment(); recorder.endSegment(); - Mockito.verify(mockEmitter, Mockito.times(1)).sendSegment(Mockito.any()); + Mockito.verify(mockEmitter, Mockito.times(1)).sendSegment(any()); } @Test @@ -296,7 +303,7 @@ public void testExplicitSubsegmentEmitted() { recorder.endSubsegment(subsegment); recorder.endSegment(); - Mockito.verify(mockEmitter, Mockito.times(1)).sendSegment(Mockito.any()); + Mockito.verify(mockEmitter, Mockito.times(1)).sendSegment(any()); } @Test @@ -309,7 +316,7 @@ public void testDummySegmentNotEmitted() { recorder.endSubsegment(); recorder.endSegment(); - Mockito.verify(mockEmitter, Mockito.times(0)).sendSegment(Mockito.any()); + Mockito.verify(mockEmitter, Mockito.times(0)).sendSegment(any()); } @Test @@ -378,7 +385,7 @@ public void testSubsegmentNotEmittedWithoutExceptionInLambdaInitContext() { recorder.createSubsegment("test", () -> { }); - Mockito.verify(mockEmitter, Mockito.times(0)).sendSubsegment(Mockito.any()); + Mockito.verify(mockEmitter, Mockito.times(0)).sendSubsegment(any()); } @Test @@ -851,7 +858,9 @@ public void noOpSubsegmentWithParent() { @Test public void testBeginSegmentWithSamplingDoesSample() { - AWSXRay.getGlobalRecorder().setSamplingStrategy(new TestSamplingStrategy(true)); + SamplingResponse response = new SamplingResponse(true, "rule"); + when(mockSamplingStrategy.shouldTrace(any())).thenReturn(response); + AWSXRay.getGlobalRecorder().setSamplingStrategy(mockSamplingStrategy); Segment segment = AWSXRay.beginSegmentWithSampling("test"); assertThat(segment.isSampled()).isTrue(); @@ -861,27 +870,29 @@ public void testBeginSegmentWithSamplingDoesSample() { @Test public void testBeginSegmentWithSamplingDoesNotSample() { - AWSXRay.getGlobalRecorder().setSamplingStrategy(new TestSamplingStrategy(false)); + SamplingResponse response = new SamplingResponse(false, "rule"); + when(mockSamplingStrategy.shouldTrace(any())).thenReturn(response); + AWSXRay.getGlobalRecorder().setSamplingStrategy(mockSamplingStrategy); Segment segment = AWSXRay.beginSegmentWithSampling("test"); assertThat(segment.isSampled()).isFalse(); + + segment.setUser("user"); + assertThat(segment.getUser()).isEmpty(); // Loose way to test that segment is a no-op } - private static class TestSamplingStrategy implements SamplingStrategy { - boolean sampled; + @Test + public void testBeginSegmentWithForcedSampling() { + SamplingResponse response = new SamplingResponse(false, "rule"); + when(mockSamplingStrategy.isForcedSamplingSupported()).thenReturn(true); + when(mockSamplingStrategy.shouldTrace(any())).thenReturn(response); + AWSXRay.getGlobalRecorder().setSamplingStrategy(mockSamplingStrategy); - TestSamplingStrategy(boolean sampled) { - this.sampled = sampled; - } + Segment segment = AWSXRay.beginSegmentWithSampling("test"); + assertThat(segment.isSampled()).isFalse(); - @Override - public SamplingResponse shouldTrace(SamplingRequest sampleRequest) { - return new SamplingResponse(sampled, "rule"); - } + segment.setUser("user"); + assertThat(segment.getUser()).isEqualTo("user"); // Loose way to test that segment is real - @Override - public boolean isForcedSamplingSupported() { - return false; - } } } From 5a5eb91a0ff18f6374e95162188c43a8bf428cfd Mon Sep 17 00:00:00 2001 From: William Armiros Date: Mon, 9 Nov 2020 14:37:28 -0800 Subject: [PATCH 2/3] removed setter from all and none strategies --- .../com/amazonaws/xray/AWSXRayRecorder.java | 3 ++- .../sampling/AllSamplingStrategy.java | 9 +------ .../sampling/CentralizedSamplingStrategy.java | 27 +++++++++---------- .../sampling/LocalizedSamplingStrategy.java | 24 ++++++++++------- .../strategy/sampling/NoSamplingStrategy.java | 7 ----- .../strategy/sampling/SamplingStrategy.java | 8 ------ 6 files changed, 31 insertions(+), 47 deletions(-) diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java index 908cba3e..792b9423 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/AWSXRayRecorder.java @@ -989,7 +989,8 @@ public final IdGenerator getIdGenerator() { } /** - * Checks whether the current {@code SamplingStrategy} supports forced sampling. + * Checks whether the current {@code SamplingStrategy} supports forced sampling. Use with caution, since segments sampled in + * this manner will not count towards your sampling statistic counts. * * @return true if forced sampling is supported and the current segment was changed from not sampled to sampled. */ diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java index 2700ca94..0b3c03c6 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/AllSamplingStrategy.java @@ -20,21 +20,14 @@ * */ public class AllSamplingStrategy implements SamplingStrategy { - private boolean forcedSamplingSupport; - @Override public SamplingResponse shouldTrace(SamplingRequest samplingRequest) { SamplingResponse sampleResponse = new SamplingResponse(true); return sampleResponse; } - @Override - public void setForcedSamplingSupport(boolean support) { - this.forcedSamplingSupport = support; - } - @Override public boolean isForcedSamplingSupported() { - return forcedSamplingSupport; + return false; } } diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java index 164f11bb..cf3b9e96 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java @@ -34,7 +34,6 @@ public class CentralizedSamplingStrategy implements SamplingStrategy { // Initialize random ClientID. We use the same ClientID for all GetSamplingTargets calls. Conflicts are avoided // because IDs are scoped to a single account. private static final String clientID; - private boolean forcedSamplingSupport; static { SecureRandom rand = new SecureRandom(); @@ -52,23 +51,29 @@ public class CentralizedSamplingStrategy implements SamplingStrategy { private final LocalizedSamplingStrategy fallback; private final RulePoller rulePoller; private final TargetPoller targetPoller; + private final boolean forcedSamplingSupport; private boolean isStarted = false; public CentralizedSamplingStrategy() { - this.manifest = new CentralizedManifest(); - this.fallback = new LocalizedSamplingStrategy(); - UnsignedXrayClient client = new UnsignedXrayClient(); - this.rulePoller = new RulePoller(client, manifest, Clock.systemUTC()); - this.targetPoller = new TargetPoller(client, manifest, Clock.systemUTC()); + this(LocalizedSamplingStrategy.DEFAULT_RULES, false); + } + + public CentralizedSamplingStrategy(@Nullable URL ruleLocation) { + this(ruleLocation, false); } - public CentralizedSamplingStrategy(URL ruleLocation) { + public CentralizedSamplingStrategy(boolean forcedSamplingSupport) { + this(LocalizedSamplingStrategy.DEFAULT_RULES, forcedSamplingSupport); + } + + public CentralizedSamplingStrategy(@Nullable URL ruleLocation, boolean forcedSamplingSupport) { this.manifest = new CentralizedManifest(); this.fallback = new LocalizedSamplingStrategy(ruleLocation); UnsignedXrayClient client = new UnsignedXrayClient(); this.rulePoller = new RulePoller(client, manifest, Clock.systemUTC()); this.targetPoller = new TargetPoller(client, manifest, Clock.systemUTC()); + this.forcedSamplingSupport = forcedSamplingSupport; } @Nullable @@ -147,15 +152,9 @@ private synchronized void startPoller() { isStarted = true; } - @Override - public void setForcedSamplingSupport(boolean support) { - this.forcedSamplingSupport = support; - } - @Override public boolean isForcedSamplingSupported() { //TODO address this - return false; + return forcedSamplingSupport; } - } diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java index d701e1b0..3112a075 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java @@ -35,8 +35,10 @@ public class LocalizedSamplingStrategy implements SamplingStrategy { private static final Log logger = LogFactory.getLog(LocalizedSamplingStrategy.class); - private static final URL DEFAULT_RULES; - private boolean forcedSamplingSupport; + private final boolean forcedSamplingSupport; + + // Visible for other sampling strategies + static final URL DEFAULT_RULES; static { URL defaultRules = @@ -65,11 +67,20 @@ public class LocalizedSamplingStrategy implements SamplingStrategy { private SamplingRule defaultRule; public LocalizedSamplingStrategy() { - this(DEFAULT_RULES); + this(DEFAULT_RULES, false); } public LocalizedSamplingStrategy(@Nullable URL ruleLocation) { + this(ruleLocation, false); + } + + public LocalizedSamplingStrategy(boolean forcedSamplingSupport) { + this(DEFAULT_RULES, forcedSamplingSupport); + } + + public LocalizedSamplingStrategy(@Nullable URL ruleLocation, boolean forcedSamplingSupport) { this.samplingRulesLocation = ruleLocation; + this.forcedSamplingSupport = forcedSamplingSupport; SamplingRuleManifest manifest = getRuleManifest(ruleLocation); if (manifest != null) { @@ -181,14 +192,9 @@ private boolean shouldTrace(@Nullable SamplingRule samplingRule) { } } - @Override - public void setForcedSamplingSupport(boolean support) { - this.forcedSamplingSupport = support; - } - @Override public boolean isForcedSamplingSupported() { //TODO address this - return false; + return forcedSamplingSupport; } } diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java index 46718ac2..536ff910 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/NoSamplingStrategy.java @@ -21,19 +21,12 @@ * */ public class NoSamplingStrategy implements SamplingStrategy { - private boolean forcedSamplingSupport; - @Override public SamplingResponse shouldTrace(SamplingRequest samplingRequest) { SamplingResponse sampleResponse = new SamplingResponse(false, ""); return sampleResponse; } - @Override - public void setForcedSamplingSupport(boolean support) { - this.forcedSamplingSupport = support; - } - @Override public boolean isForcedSamplingSupported() { return false; diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java index df96e8c0..fb64a4ca 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/SamplingStrategy.java @@ -29,14 +29,6 @@ public interface SamplingStrategy { */ boolean isForcedSamplingSupported(); - /** - * Sets whether this strategy supports forced sampling. - * - * @param support - whether or not forced sampling is supported. - */ - default void setForcedSamplingSupport(boolean support) { - } - /** * Shutdown additional resources created by advanced sampling strategies. */ From 05cb1db74bdcb5b10690940b4cd905cf5d578982 Mon Sep 17 00:00:00 2001 From: William Armiros Date: Mon, 9 Nov 2020 16:03:49 -0800 Subject: [PATCH 3/3] addressed comments (literally) --- .../xray/strategy/sampling/CentralizedSamplingStrategy.java | 1 - .../xray/strategy/sampling/LocalizedSamplingStrategy.java | 1 - 2 files changed, 2 deletions(-) diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java index cf3b9e96..72307f69 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/CentralizedSamplingStrategy.java @@ -154,7 +154,6 @@ private synchronized void startPoller() { @Override public boolean isForcedSamplingSupported() { - //TODO address this return forcedSamplingSupport; } } diff --git a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java index 3112a075..92a44e68 100644 --- a/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java +++ b/aws-xray-recorder-sdk-core/src/main/java/com/amazonaws/xray/strategy/sampling/LocalizedSamplingStrategy.java @@ -194,7 +194,6 @@ private boolean shouldTrace(@Nullable SamplingRule samplingRule) { @Override public boolean isForcedSamplingSupported() { - //TODO address this return forcedSamplingSupport; } }