在Java应用程序中禁用AWS X-Ray

2020年1月10日 11点热度 0条评论

我正在寻找在我的Java应用程序中禁用AWS X-Ray的选项,因此它不会创建/记录任何段。 Java应用程序是在Spring Boot中构建的,并且已部署在EC2上

像全局记录器一样,禁用采样并检测所有传入请求。
背后的原因是我们的应用程序有时会部署到客户端AWS环境中,并且他们不希望启用跟踪。

我可以看到有可用的选项来禁用Xray for python(AWS_XRAY_SDK_ENABLED https://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-python-configuration.html)来做到这一点,但是我找不到Java的类似选项。

解决方案如下:

不幸的是,没有直接的方法可以使用X-Ray SDK for Java禁用跟踪。在我们的待办事项清单中为Java SDK实现类似类型的环境变量。尽管乏味,但我见过客户实施变通办法的最佳方法是根据自己的环境/系统变量设置其检测逻辑。例如:

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard();

if (myTracingEnvVar == true) {
  client = client.withRequestHandlers(new TracingHandler(AWSXRay.getGlobalRecorder()));
}

client.build();

显然这很不方便。如果您愿意,我们随时可以在
GitHub上拉取请求。