java - Spring Boot 与 Datadog 的集成
问题描述
我有一个简单的 springboot 应用程序并尝试将 datadog 代理与其集成,但无法使用 Javaagent 运行该应用程序。已完成以下步骤。
在 pom.xml 中添加了依赖项。
<dependency>
<groupId>com.datadoghq</groupId>
<artifactId>dd-java-agent</artifactId>
<version>0.83.2</version>
</dependency>
解压缩 datadog 依赖项和添加的类 ------------
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<phase>prepare-package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<includeArtifactIds>dd-java-agent</includeArtifactIds>
<outputDirectory>${project.build.outputDirectory}</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
added premain class of datadog agent -----
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.5</version>
<configuration>
<archive>
<manifestEntries>
<Premain-Class>datadog.trace.bootstrap.AgentBootstrap</Premain-Class>
<Can-Redefine-Classes>true</Can-Redefine-Classes>
<Can-Retransform-Classes>true</Can-Retransform-Classes>
</manifestEntries>
</archive>
</configuration>
</plugin>
添加了制作spring repackager插件以查找springboot主类-----------
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.3.4.RELEASE</version>
<configuration>
<mainClass>com.user.info.userInfoApplication</mainClass>
</configuration>
</plugin>
Finally when issuing below command fails
java -javaagent:user-info-0.0.1-SNAPSHOT.jar -jar user-info-0.0.1-SNAPSHOT.jar
Exception in thread "main" java.lang.ClassNotFoundException: datadog.trace.bootstrap.AgentBootstrap
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndStartAgent(InstrumentationImpl.java:431)
at java.instrument/sun.instrument.InstrumentationImpl.loadClassAndCallPremain(InstrumentationImpl.java:525)
FATAL ERROR in native method: processing of -javaagent failed
```````````````````````````````````````````````````````````````````````````````````````````
解决方案
推荐阅读
- ios - 如何使用 Multi_Image_Picker (Flutter) 在照片库中标记所选图像?
- unity3d - 无法在 Unity MLAPI 中正确销毁对象
- python - 通过 Mailgun 将多封电子邮件发送到字典列表
- ios - 将 XCFrameworks 作为具有链依赖关系的二进制目标分发
- linux - 视图中的 Odoo 13 页面无响应消息
- magento - 如果我尝试从 magento repo 安装扩展,Codesniffer installed_paths 失败
- reactjs - React Mapbox 在路由之间持久化映射
- javascript - 使用 NPM 模块和 browserify 与 JS 和浏览器的节点关系
- android - 升级后带有 IkeV2Profile 的 Android VpnManager 不起作用
- android - Google Play Billing Library v4 验证应用内购买