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 ?

gefragt vor 4 Jahren1308 Aufrufe
1 Antwort
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
beantwortet vor 4 Jahren

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen