Disable Xray feature on local dev machine(Java Spring boot AOP project)

0

HI,
I have a spring boot application (2.3.1) running in a AWS EC2 instance. I followed AWS documentation for Spring and AOP:https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-java-aop-spring.html
I am able to see the traces and service map after I deploy on my AWS EC2 instance.
But when I run my code on my local machine in dev environment(NOT on EC2), it throws an error.

=================================================================================

2020-08-19 10:22:55.655 [pool-1-thread-1] INFO c.a.x.s.sampling.pollers.RulePoller -Polling sampling rules.
2020-08-19 10:22:56.670 [pool-1-thread-1] ERROR c.a.x.s.sampling.pollers.RulePoller -Encountered error polling GetSamplingRules:
com.amazonaws.SdkClientException: Unable to execute HTTP request: Connect to 127.0.0.1:2000 [/127.0.0.1] failed: Connection refused: connect
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.handleRetryableException(AmazonHttpClient.java:1175)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeHelper(AmazonHttpClient.java:1121)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.doExecute(AmazonHttpClient.java:770)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.executeWithTimer(AmazonHttpClient.java:744)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.execute(AmazonHttpClient.java:726)
at com.amazonaws.http.AmazonHttpClient$RequestExecutor.access$500(AmazonHttpClient.java:686)
at com.amazonaws.http.AmazonHttpClient$RequestExecutionBuilderImpl.execute(AmazonHttpClient.java:668)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:532)
at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:512)
at com.amazonaws.services.xray.AWSXRayClient.doInvoke(AWSXRayClient.java:1257)
at com.amazonaws.services.xray.AWSXRayClient.invoke(AWSXRayClient.java:1226)
at com.amazonaws.services.xray.AWSXRayClient.invoke(AWSXRayClient.java:1215)
at com.amazonaws.services.xray.AWSXRayClient.executeGetSamplingRules(AWSXRayClient.java:568)
at com.amazonaws.services.xray.AWSXRayClient.getSamplingRules(AWSXRayClient.java:539)
at com.amazonaws.xray.strategy.sampling.pollers.RulePoller.pollRule(RulePoller.java:65)
at com.amazonaws.xray.strategy.sampling.pollers.RulePoller.lambda$start$0(RulePoller.java:46)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:834)

=======================================================================================
Questions:
1.) We do not need the traces to be generated and sent to aws. How do we TURN OFF/DISABLE Xray tracing feature on our dev machines ?

asked 4 years ago1294 views
1 Answer
0

Hello,

For context, this is happening because the daemon is not running in your dev environment and so the SDK cannot contact it to retrieve centralized sampling rules. Disabling the SDK a known feature request that we have in our backlog, we hope to add support for an environment variable that can disable the SDK soon: https://github.com/aws/aws-xray-sdk-java/issues/178

As a workaround, you could have your own development environment variable and set the sampling strategy to a no-op strategy using it:

AWSXRayRecorderBuilder builder = AWSXRayRecorderBuilder.standard();
if (inDevEnvironment) {
builder.withSamplingStrategy(new NoSamplingStrategy());
}

AWS
answered 4 years ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions