使用New Relic集成Spring Boot Actuator

3
我正在尝试将New Relic与Spring Boot Actuator集成。大多数教程和StackOverflow中的响应都建议使用New Relic Java代理,但根据Spring Boot 文档的说法,安装Java代理不是必需的(除非我误解了什么),也查看了这里。因此,这是我当前的application.properties
management.metrics.export.newrelic.enabled = true
management.metrics.export.newrelic.api-key = <API_KEY>
management.metrics.export.newrelic.account-id = <ACCOUNT_ID>
logging.level.io.micrometer.newrelic=TRACE
management.metrics.export.newrelic.step=30s

而在日志中我看到

2021-01-11 12:05:18.315 DEBUG 44635 --- [trics-publisher] i.m.n.NewRelicInsightsApiClientProvider  : successfully sent 73 metrics to New Relic.

根据这些日志,看起来它正在发送日志。但我不知道在哪里可以查看这些日志。理想情况下,我希望能够传递应用程序名称,以便我可以通过应用程序名称区分指标,并在以后最好还可以通过环境进行区分。有什么建议吗?
1个回答

1
要将“应用程序名称”和“环境”添加到您的指标中,您只需使用常见标签配置MeterFilter即可:
@Configuration
public class MetricsConfig {

    @Bean
    public MeterFilter commonTagsMeterFilter(@Value("...") appName, @Value("...") env) {
        return MeterFilter.commonTags(Tag.of("app name", appName), Tag.of("env", env);
    }
}

设置以下属性,您应该能够看到发送到NewRelic的指标:
logging.level.io.micrometer.newrelic=TRACE

我已经有了 logging.level.io.micrometer.newrelic=TRACE,但出于某种原因,我只得到了那个日志消息。 - nicholasnet
不...这就是我不确定要查看哪个问题之一。我的意思是,我需要先在NewRelic中创建应用程序还是在Insight中查询。这就是我卡住的地方。顺便感谢您提供的标签建议。 - nicholasnet
2
谢谢。那个链接帮了我很多。我必须说,NewRelic的文档是错误的,因为它声称一旦实体被发送到NewRelic,就可以在列表中看到它,但对我来说并非如此。事实证明,Spring Boot Actuator默认将事件发送为SpringBootSample,因此您需要像这样使用NRQL:SELECT * FROM SpringBootSample SINCE last week in InSight。现在,我仍然需要弄清楚如何使用NRQL制作这些数据的仪表板,这将是我的下一步。但非常感谢您的帮助,我真的很感激。 - nicholasnet
我们需要在本地系统上运行New Relic服务器吗?就像我们为Prometheus所做的那样。我在Docker容器中运行了Prometheus,它能够从我的应用程序中抓取数据并在仪表板中显示。我想使用New Relic做同样的事情。为此,在完成所有配置后,我们需要在本地运行New Relic吗? - Arpan Banerjee
我按照问题中提到的相同配置进行了设置,我也可以看到调试日志显示指标已发送到New Relic。接下来该怎么做?我需要做什么才能在New Relic的仪表板上看到数据,就像我们在Prometheus上看到的那样?请有人帮帮我,我在任何地方都没有找到清晰的说明。 - Arpan Banerjee
显示剩余7条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接