Spring Boot部署NewRelic的Java探针记录

来源:互联网 发布:java后端需要学node吗 编辑:程序博客网 时间:2024/06/17 22:11

一、需求

  • 在Spring Boot项目中加入NewRelic的Java探针
  • 环境:Mac OS
  • IDE:IDEA
  • 构建工具:maven

二、pom.xml

pom文件修改如下:

  1. 增加NewRelic Agent依赖
  2. 在spring-boot-maven-plugin中注明main class
  3. 把NewRelic Agent jar打包进最终jar
  4. 在manifest中增加Premain-Class等属性
<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0"  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  <modelVersion>4.0.0</modelVersion>....  <dependencies>    <dependency>      <groupId>com.newrelic.agent.java</groupId>      <artifactId>newrelic-agent</artifactId>      <version>3.41.0</version>      <scope>provided</scope>    </dependency>....  </dependencies>  <build>    <plugins>      <plugin>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-maven-plugin</artifactId>          <configuration>              <mainClass>com.xxx.SpringBootNewRelicApplication</mainClass>          </configuration>      </plugin>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-dependency-plugin</artifactId>            <version>2.10</version>            <executions>                <execution>                    <phase>prepare-package</phase>                    <goals>                        <goal>unpack-dependencies</goal>                    </goals>                    <configuration>                        <includeArtifactIds>newrelic-agent</includeArtifactIds>                        <outputDirectory>${project.build.outputDirectory}</outputDirectory>                    </configuration>                </execution>            </executions>        </plugin>        <plugin>            <groupId>org.apache.maven.plugins</groupId>            <artifactId>maven-jar-plugin</artifactId>            <configuration>                <archive>                    <manifestEntries>                        <Premain-Class>com.newrelic.bootstrap.BootstrapAgent</Premain-Class>                        <Can-Redefine-Classes>true</Can-Redefine-Classes>                        <Can-Retransform-Classes>true</Can-Retransform-Classes>                    </manifestEntries>                </archive>            </configuration>        </plugin>    </plugins>  </build>  ....</project>

三、启动

// 打包mvn package// 启动java -javaagent:/path/to/newrelic/newrelic.jar -jar target/YourApp.jar
原创粉丝点击