当前位置: 首页 > 知识库问答 >
问题:

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

司马耘豪
2023-03-14

我正在寻找在java应用程序中禁用AWS X射线的选项,这样它就不会创建/记录任何片段。Java应用程序是在spring boot中构建的,并部署在EC2上

与全局记录器类似,它可以禁用采样并对所有传入请求进行检测。背后的原因是,我们的应用程序有时会部署到客户机AWS环境中,他们不希望启用跟踪。

我可以看到有选项可以禁用Xray为python(AWS_XRAY_SDK_ENABLEDhttps://docs.aws.amazon.com/xray/latest/devguide/xray-sdk-python-configuration.html)这样做,但我找不到类似的java选项。

共有2个答案

萧宣
2023-03-14

您可以在具有X射线配置的类中使用Spring@ConditionalOnProperty注释:

@Configuration
@ConditionalOnProperty(
    value = "AWS_XRAY_SDK_ENABLED",
    havingValue = "true",
    matchIfMissing = false)
public class XRayConfig { ... }

@Aspect
@Component
@ConditionalOnProperty(
    value = "AWS_XRAY_SDK_ENABLED",
    havingValue = "true",
    matchIfMissing = false)
public class XRayInspector extends AbstractXRayInterceptor { ... }

这允许您根据配置属性的存在和值有条件地创建bean

马浩淼
2023-03-14

不幸的是,使用X-Ray SDK for Java无法直接禁用跟踪。在我们的积压工作中,我们需要为Java SDK实现类似类型的环境变量。虽然很枯燥,但我看到客户实现变通方法的最佳方式是根据您自己的环境/系统变量来确定他们的检测逻辑。例如:

AmazonDynamoDB client = AmazonDynamoDBClientBuilder.standard();

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

client.build();

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

 类似资料:
  • 问题内容: 我有一个配置了Spring Security的Spring Boot Web应用程序。我想暂时禁用身份验证(直到需要)。 我将此添加到: 这是我的一部分 但是我仍然包括一个基本的安全性:启动时会生成一个默认的安全性密码,并且我仍会收到HTTP身份验证提示框。 我的pom.xml: 在WebSecurityConfig.java中配置了安全性(我已注释了注释以将其禁用): 问题答案: 使

  • 如何在使用调试配置时自动禁用应用程序洞察并仅在发布时启用它? 是否可以在不创建另一个仅用于调试的检测密钥的情况下执行此操作? 语句散布在整个代码中,将它们封闭在调试预处理器检查中不是理想的解决方案。 我当前的解决方案是将文件的设置为,这样它就不会复制到项目的输出目录中,但这不是一个可以根据活动生成配置自动完成的过程。 有一个开发人员模式,但需要手动更改(如果有条件地设置配置文件是可能的,那么清空i

  • 我已经用“graphiql-spring-boot-starter-5 . 0 . 2 . jar”依赖关系在graphiql playground的spring boot应用程序中添加了pom依赖关系。 现在我想禁用正式生产环境的操场。 并且尝试了如下的spring boot应用程序,但是这些选项都无法禁用GraphiQLendpoint。 graphiql.enabled=false dgs.

  • 我尝试在JAVA代码中调用MessageBoxA函数。以下方法有什么问题,以至于我的程序抛出了很多错误? 1-st: run:线程“main”java.lang.ClassFormatError:java.lang.ClassLoader的类文件加载/库/MessageBox中的本机或抽象方法中的代码属性。java.lang.ClassLoader.defineClass(ClassLoader.

  • 我在spring boot应用程序上开发了rest API。API只接受GET和POST,但在使用OPTIONS方法请求时,API响应200状态(而不是405)。我搜索了这个问题,但是没有一个解决方案是基于springboot的。 答复: 需要禁用OPTIONS方法。

  • 你好,我是camunda的新手,现在我正在将camunda从3.4迁移到7.14,我想禁用DbHistoryEventHandler,这样它就不会写到历史表(https://docs.camunda.org/manual/7.14/update/minor/712-to-713/#Changed-Behavior-for-Custom-HistoryEventHandler),但问题是我找不到sp