【问题标题】:NewRelic monitoring for Spring Boot application not tracking endpoints correctly对 Spring Boot 应用程序的 NewRelic 监控未正确跟踪端点
【发布时间】:2016-12-01 19:19:18
【问题描述】:

我们有一个由 New Relic APM 监控的基于 Spring boot (v1.3.8) 的应用程序,它使用 Spring Data 和 Spring Data Rest 等项目。 New Relic 配置为 agentlib。

在这个应用程序中,我们有某些端点,例如

/Employee/12345
/Employee/search/findEmployeesByDeptId?DeptId=12345

此端点绑定到基于 Spring Data 的“CRUDRepository”。

我遇到的问题是,在 New Relic 下,当它报告长时间运行的事务时,它将所有这些端点聚合到以下端点之一

/RepositoryEntityController/getCollectionResource
/RepositoryEntityController/getItemResource
/RepositorySearchController/executeSearch

是否有任何调整使得上述聚合报告一些有意义的 URL 而不是上述程序?

【问题讨论】:

    标签: java spring-boot spring-data spring-data-rest newrelic


    【解决方案1】:

    默认情况下,New Relic 代理将使用控制器名称加上方法作为事务名称。

    您可以尝试disabling auto transaction naming 看看结果是否适合您。请注意该页面上的警告。

    另一种方法是使用Java agent API。尽管在这种情况下,您需要向每个端点添加一行代码。或者在你的 servlet 中做一些魔法。

    // see https://newrelic.github.io/java-agent-api/javadoc/index.html?com/newrelic/api/agent/NewRelic.html
    NewRelic.setTransactionName("/Employee/" + employeeId);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-18
      • 2020-05-21
      • 2016-02-02
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-08-10
      相关资源
      最近更新 更多