0

为什么我只希望看到两个 New Relic 图书馆条目?我是否在某处多余地引用了 New Relic 罐子?

我的 pom.xml 中有以下内容

    <dependency>
        <groupId>com.newrelic.agent.java</groupId>
        <artifactId>newrelic-agent</artifactId>
        <version>3.0.1</version>
    </dependency>

    <dependency>
        <groupId>com.newrelic.agent.java</groupId>
        <artifactId>newrelic-api</artifactId>
        <version>3.0.1</version>
    </dependency>  

但是在 Settings -> Environment 页面 ( https://rpm.newrelic.com/accounts/<account_id>/applications/<app_id>/environment) 我看到三个条目:

newrelic-agent  3.0.1
newrelic-api    3.0.1
newrelic        3.0.1

当我的 JVM 指向的 javaagent 与我的 pom.xml 中描述的 on 版本不同时,我第一次看到这一点。看起来我已经在 pom 中定义了两个(我需要编译使用 New Relic API 的 Java 代码)和一个在我启动 JVM 时指向的代理。

4

1 回答 1

1

我为 New Relic 技术支持工作。

我询问了我们的 Java 代理作者这是如何发生的,并得到了以下建议:

1) 你的 CLASSPATH 上不需要除了 newrelic-api.jar 以外的任何东西。如果您有其他东西,例如 newrelic-agent.jar 或 newrelic.jar,则只需将它们指定为 -javaagent: 设置(并且只有其中一个!),而不是在您的类路径中。删除那里的任何引用最终都应该从列表中删除它们(参见#2)。

2) 如果您以前在类路径中对那些不需要的 jar 中的一个有另一个引用,则该环境页面不一定是实时的,并且可能在一段时间内有一些旧的缓存数据。如果您使用不同的 app_name 设置启动您的应用程序,以便为该页面获得一个全新的干净列表,并且在您的 CLASSPATH 上除了 newrelic-api.jar 之外没有任何其他内容,那么应该是唯一显示的内容。我不建议您永久执行此操作,因为您的历史数据将使用旧的应用程序名称,仅作为概念证明。

无论如何,将它们列出应该是无害的,但是如果您无法启动一个新应用程序来证明如果它们不在并且从未在类路径上,我们将看不到它们,这很烦人你,你应该在https://support.newrelic.com上开一张票,这样我们就可以从我们这边调查你的特定应用程序。

于 2013-10-11T17:03:52.780 回答