最近,我们将tomcat/spring应用程序转换为spring boot。除了新的遗物外,一切都很好。有没有一种方法,我可以很容易地配置新的遗物与spring boot项目。我不想硬编码新的relic代理jar路径的位置,然后使用该路径运行spring boot项目。
编辑: Spring boot项目是用maven编写的
发布于 2015-01-01 06:37:30
您可以包含Maven依赖项并使用maven-dependency-plugin将其解压到您的target/classes目录中,这使得NewRelic可以将其包含到最终的Jar文件中。然后,您必须在清单文件中添加Premain-Class属性,并且可以使用您的应用程序jar作为-javaagent源。您可以在my blog post上找到详细信息
发布于 2016-11-03 01:52:09
循序渐进的说明
从您的application.
使用选项javaagent
-javaagent选项必须在-jar之前,这样代理才能启动
发布于 2022-01-14 05:57:25
我也遇到了同样的问题,这是我想出来的。我为我的应用程序实现了第二种方法。有3种方法可以将New Relic与Spring Boot应用程序集成--
使用由New Relic提供的Java代理的
1.使用New Relic提供的Java代理进行配置
java -javagent:<path to your new relic jar>\newrelic.jar -jar <path to your application jar>\<you rapplication jar name>.jarto root path您已经解压了新的Java代理。
要查看应用程序指标-

使用New Relic的微米依赖的
是实现这一点的首选方法。
2.使用New Relic的微米依赖进行配置
<dependency>
<groupId>com.newrelic.telemetry</groupId>
<artifactId>micrometer-registry-new-relic</artifactId>
<version>0.7.0</version>
</dependency>MicrometerConfig.java类以添加您的API键和应用程序名称。import java.net.InetAddress;
import java.net.UnknownHostException;
import org.springframework.boot.actuate.autoconfigure.metrics.CompositeMeterRegistryAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.MetricsAutoConfiguration;
import org.springframework.boot.actuate.autoconfigure.metrics.export.simple.SimpleMetricsExportAutoConfiguration;
import org.springframework.boot.autoconfigure.AutoConfigureAfter;
import org.springframework.boot.autoconfigure.AutoConfigureBefore;
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.newrelic.telemetry.Attributes;
import com.newrelic.telemetry.micrometer.NewRelicRegistry;
import com.newrelic.telemetry.micrometer.NewRelicRegistryConfig;
import java.time.Duration;
import io.micrometer.core.instrument.config.MeterFilter;
import io.micrometer.core.instrument.util.NamedThreadFactory;
@Configuration
@AutoConfigureBefore({ CompositeMeterRegistryAutoConfiguration.class, SimpleMetricsExportAutoConfiguration.class })
@AutoConfigureAfter(MetricsAutoConfiguration.class)
@ConditionalOnClass(NewRelicRegistry.class)
public class MicrometerConfig {
@Bean
public NewRelicRegistryConfig newRelicConfig() {
return new NewRelicRegistryConfig() {
@Override
public String get(String key) {
return null;
}
@Override
public String apiKey() {
return "your_api_key"; // for production purposes take it from config file
}
@Override
public Duration step() {
return Duration.ofSeconds(5);
}
@Override
public String serviceName() {
return "your_service_name"; // take it from config file
}
};
}
@Bean
public NewRelicRegistry newRelicMeterRegistry(NewRelicRegistryConfig config) throws UnknownHostException {
NewRelicRegistry newRelicRegistry = NewRelicRegistry.builder(config)
.commonAttributes(new Attributes().put("host", InetAddress.getLocalHost().getHostName())).build();
newRelicRegistry.config().meterFilter(MeterFilter.ignoreTags("plz_ignore_me"));
newRelicRegistry.config().meterFilter(MeterFilter.denyNameStartsWith("jvm.threads"));
newRelicRegistry.start(new NamedThreadFactory("newrelic.micrometer.registry"));
return newRelicRegistry;
}
}运行application.的
要查看应用程序指标-

这是我的原始question的链接。
https://stackoverflow.com/questions/26901959
复制相似问题