gpt4 book ai didi

java - Spring boot 容器应用程序上的 Datadog 检测 - 未找到类

转载 作者:行者123 更新时间:2023-12-01 17:56:04 26 4
gpt4 key购买 nike

我目前正在将 Spring Boot 应用程序作为容器运行到 kubernetes 集群中。Datadog 代理作为容器在集群上运行。

我已修改容器镜像构建,以在运行应用程序之前包含 datadog 代理:

CMD ["/bin/sh","-c","java -javaagent:dd-java-agent.jar -Ddd.trace.config=datadog.properties -Dlogging.config=/logback.xml -jar service.jar"]

我还设置了环境变量,以通过部署文件指示容器的代理主机 IP。

现在的问题是我在应用程序启动时遇到此类未找到异常:

java.lang.NoClassDefFoundError: datadog/trace/instrumentation/springscheduling/SpringSchedulingInstrumentation
at java.lang.Class.getDeclaringClass0(Native Method)
at java.lang.Class.getDeclaringClass(Class.java:1235)
at java.lang.Class.getEnclosingClass(Class.java:1277)
at org.springframework.core.annotation.AnnotationsScanner.processClassHierarchy(AnnotationsScanner.java:233)
at org.springframework.core.annotation.AnnotationsScanner.processClassHierarchy(AnnotationsScanner.java:194)
at org.springframework.core.annotation.AnnotationsScanner.processClass(AnnotationsScanner.java:128)
at org.springframework.core.annotation.AnnotationsScanner.process(AnnotationsScanner.java:107)
at org.springframework.core.annotation.AnnotationsScanner.scan(AnnotationsScanner.java:97)
at org.springframework.core.annotation.AnnotationsScanner.scan(AnnotationsScanner.java:78)
at org.springframework.core.annotation.TypeMappedAnnotations.scan(TypeMappedAnnotations.java:242)
at org.springframework.core.annotation.TypeMappedAnnotations.get(TypeMappedAnnotations.java:149)
at org.springframework.core.annotation.TypeMappedAnnotations.get(TypeMappedAnnotations.java:131)
at org.springframework.core.annotation.AnnotationUtils.findAnnotation(AnnotationUtils.java:581)
at org.springframework.cloud.sleuth.DefaultSpanNamer.annotation(DefaultSpanNamer.java:71)
at org.springframework.cloud.sleuth.DefaultSpanNamer.name(DefaultSpanNamer.java:58)
at org.springframework.cloud.sleuth.instrument.async.TraceRunnable.<init>(TraceRunnable.java:59)
at org.springframework.cloud.sleuth.instrument.async.TraceRunnable.<init>(TraceRunnable.java:51)
at org.springframework.cloud.sleuth.instrument.async.LazyTraceThreadPoolTaskScheduler.scheduleWithFixedDelay(LazyTraceThreadPoolTaskScheduler.java:265)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.cloud.sleuth.instrument.async.ExecutorMethodInterceptor.invoke(ExecutorBeanPostProcessor.java:328)

非常直接,我需要将一些依赖项包含到应用程序包中。但我在 datadog 网站和 Maven 中央存储库上找不到任何有用的东西。包括代理本身或 api 库都不能解决任何问题。该类存在于代理上,但位于不同的路径下。

有人知道应用程序的类路径中应该包含哪些依赖项来解决这个问题吗?

最佳答案

Spring 正在扫描您的类路径,该路径似乎不完整。可能和Spring的类加载机制有关。 class in question存在并且似乎是代理的一部分。

您可能使用的是过时版本的代理。

关于java - Spring boot 容器应用程序上的 Datadog 检测 - 未找到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60715172/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com