当前位置: 首页 > 知识库问答 >
问题:

Spring靴的新遗迹

章建木
2023-03-14

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

编辑:Spring boot项目使用maven

共有3个答案

昌琪
2023-03-14

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

  1. 使用New Relic提供的Java代理
  2. 使用New Relic的测微计相关性
  3. Michormeter的New Relic依赖项
  1. 从此URL下载Java代理-https://docs.newrelic.com/docs/release-notes/agent-release-notes/java-release-notes/
  1. 登录您的新遗迹帐户。
  2. 转到资源管理器选项卡。
  3. 点击服务-APM
  4. 您可以在那里看到您的应用程序的名称(您在newrelic.yml文件中提到过)。
  5. 单击应用程序名称。
  6. 仪表板应该看起来像这样。

使用New Relic的千分尺依赖是首选方法。

  1. 添加此依赖项
<dependency>
        <groupId>com.newrelic.telemetry</groupId>
        <artifactId>micrometer-registry-new-relic</artifactId>
        <version>0.7.0</version>
    </dependency>
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;
    }
}
  1. 登录到您的New Relic帐户

这是我最初问题的链接。

杜辰龙
2023-03-14

逐步说明

  • 从新的java代理存档中提取文件。
  • 在应用程序的根目录中创建一个名为newrelic的目录。
  • 将存档中的newrelic.jar放在上面创建的newreics文件夹中
  • 将newrelic.ymlYAML配置文件放在上面创建的newreics文件夹中。
  • 如下更新newrelic.yml中的值。
    • license_key:'您的许可证密钥'
    • app_name:'您的应用程序名称'
    • java-javaagent:新遗物\newrelic.jar-jaryourapplication.jar

    -javaagent选项必须在-jar之前,以便代理可以启动

孙永嘉
2023-03-14

您可以包含NewRelic Maven dependency,并使用Maven dependency插件将其解压缩到您的目标/类目录中,这样Maven就可以将其包含到最终的Jar文件中。然后,您必须将Premain类的属性添加到清单文件中,并且可以将应用程序jar用作javaagent源。你可以在我的博客上找到详细信息

 类似资料:
  • 我甚至不使用新的遗物,我得到错误的他们。只是突然发生了。 我使用的是最新的Android Studio版本(0.61)。甚至我的主分支也有同样的错误。在我的机器上有其他的项目使用新的遗迹,但没有这一个。这个项目不使用新的遗迹在任何方式,更多的是一个任性的梯度依赖。 我试着清理我的gradle缓存,重新下载所有的第三方库,没有工作。 编辑 该项目现在根据用户建议在Build.Gradle中导入新的遗

  • 我正在用Thymeleaf构建一个Spring Boot应用程序。我的模板(视图)和静态文件夹都在src/main/Resources/静态和src/main/Resources/tem板下。当我通过main方法(使用eclipse)运行应用程序时,一切都很好。但是,我已经按照说明创建了一个war文件,当我将其部署到Tomcat 7时——静态内容丢失了,只显示了Thymeleaf html模板。

  • 我甚至不使用新的遗迹,我得到了他们的错误。事情就这么突然发生了。 我使用的是最新的Android Studio构建(0.61)。就连我的主分支也有同样的错误。我的机器上有其他项目使用新的遗迹,但不是这个。这个项目没有使用新的遗迹在任何方式,与其说是一个任性的梯度依赖。 项目的build.gradle: 编辑 该项目现在在建筑中导入新的遗迹。根据用户的建议。这解决了这个问题,但我仍在探索为什么,因为

  • 我在Maven集成测试中使用New relic,有时在VM-javaagent上使用confirugraiton运行集成测试和代理时使用/path/to/newrelic。jar正在运行,我收到此异常 有人知道这个问题吗? 当做

  • 作为一个新的Web应用程序项目的一部分,我计划学习Spring。我开始通读Spring框架参考。当我在谷歌上搜索时,我遇到了Spring boot。我所理解的是,Spring boot通过减少配置帮助构建应用程序的速度比Spring快得多。现在我有点困惑,我应该继续学习Spring还是跳转到Spring boot。我的目的是了解Spring作为一个框架是如何工作的,而不是一些特性。所以请让我知道,

  • 我是Spring Boot和MongoDb的新手。尝试使用Mongo存储库和Spring Boot的一些示例。但在浏览了一些文档后发现,Mongo模板是一个更好的选择。无法使用Mongo模板示例获得正确的Spring Boot。 > 有人能帮我举个同样的例子吗? 在尝试Mongo模板时,我们是否需要创建用户定义的存储库界面并扩展存储库或CRUD存储库?