首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Spring Boot的新遗物

Spring Boot的新遗物
EN

Stack Overflow用户
提问于 2014-11-13 13:30:43
回答 3查看 10.7K关注 0票数 8

最近,我们将tomcat/spring应用程序转换为spring boot。除了新的遗物外,一切都很好。有没有一种方法,我可以很容易地配置新的遗物与spring boot项目。我不想硬编码新的relic代理jar路径的位置,然后使用该路径运行spring boot项目。

编辑: Spring boot项目是用maven编写的

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-01-01 06:37:30

您可以包含Maven依赖项并使用maven-dependency-plugin将其解压到您的target/classes目录中,这使得NewRelic可以将其包含到最终的Jar文件中。然后,您必须在清单文件中添加Premain-Class属性,并且可以使用您的应用程序jar作为-javaagent源。您可以在my blog post上找到详细信息

票数 10
EN

Stack Overflow用户

发布于 2016-11-03 01:52:09

循序渐进的说明

从您的application.

  • Place根目录下的newrelic java代理中提取文件

  • newrelic.jar从上面创建的newrelic文件夹中的归档文件中解压

  • 配置文件放在上面创建的newrelic folder.

  • Update中,如下所示。
  • license_key:'your license key'
  • app_name:‘你的应用程序name’

使用选项javaagent

  • java yourapplication.jar

  • 运行您的应用程序

-javaagent选项必须在-jar之前,这样代理才能启动

票数 7
EN

Stack Overflow用户

发布于 2022-01-14 05:57:25

我也遇到了同样的问题,这是我想出来的。我为我的应用程序实现了第二种方法。有3种方法可以将New Relic与Spring Boot应用程序集成--

使用由New Relic提供的Java代理的

  1. 使用New Relic的微米Dependency
  2. Micormeter's New Relic Dependency

1.使用New Relic提供的Java代理进行配置

  • Extract它。

  • 修改解压文件夹内的newrelic.yml文件以包含您的license_key: app_name:

  • Create a license_key a SpringBoot application with some REST endpoints.

  • Build java -javagent:<path to your new relic jar>\newrelic.jar -jar <path to your application jar>\<you rapplication jar name>.jar

to root path您已经解压了新的Java代理。

  • 输入以下命令

要查看应用程序指标-

  1. 登录到您的新文物帐户。
  2. 转到资源管理器选项卡。
  3. 单击Services-APM
  4. You可以看到此处列出的应用程序名称(您在newrelic.yml文件中提到的)。
  5. 单击应用程序名称。
  6. 仪表板应如下所示。

使用New Relic的微米依赖的

是实现这一点的首选方法。

2.使用New Relic的微米依赖进行配置

  1. Add this dependency

代码语言:javascript
复制
<dependency>
        <groupId>com.newrelic.telemetry</groupId>
        <artifactId>micrometer-registry-new-relic</artifactId>
        <version>0.7.0</version>
    </dependency>

  1. 修改MicrometerConfig.java类以添加您的API键和应用程序名称。

代码语言:javascript
复制
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.的

要查看应用程序指标-

  1. 登录到您的新文物帐户。
  2. 转到资源管理器选项卡。
  3. 单击Services-OpenTelemetry
  4. You可以看到列出的应用程序名称(您在MicrometerConfig文件中提到的名称)。
  5. 单击应用程序名称。
  6. 仪表板应如下所示。

这是我的原始question的链接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26901959

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档