在NewRelic中看不到详细的Spring Boot事务信息

问题描述 投票:0回答:1

我有一个基于 Java 17 的 Spring Boot 3.1.5 应用程序,在 AKS 上的 Kubernetes 1.27.x 集群中进行了 Docker 化和执行。我使用 New Relic Java 代理 v8.7.0。

我插入了 NewRelic java 代理,并且在 UI 中看到了指标。

当我选择交易时,我可以看到有关外部API调用或数据库查询的详细信息,但我看不到我自己的代码的任何信息。

如何自动检测我的代码?

spring-boot newrelic
1个回答
0
投票

New Relic 的 Java 代理将从它可以识别的库/框架中开箱即用地检测代码。

不幸的是,它无法自动检测其余代码,因为这会导致过多的开销。例如,如果所有 getter 都已检测,它将为每个 getter 添加处理。而且它会在该痕迹中显示所有这些,从而导致那里的噪音太大。

为了提高您自己代码的可见性,您可以通过 annotationsXMLCustom Instrumentation editor 添加自定义检测。

要使用注释来检测您的方法,您需要在项目中添加对

newrelic-api
的依赖项,然后只需向您想要在其中可见的方法添加注释:

@Trace
public String method() {
  // do things
}

对于 XML,您可以创建一个文件并将其添加到与代理 jar 位于同一文件夹中的

extensions
文件夹中。这是此类文件的删节示例:

...
<instrumentation metricPrefix="EXAMPLE">
   <pointcut transactionStartPoint="true">
     <className>full.path.to.MyClass</className>
     <method>
       <name>myMethod</name>
     </method>
   </poincut>
</instrumentation>
...  
© www.soinside.com 2019 - 2024. All rights reserved.