【问题标题】:How do I differentiate between GET & PUT request transaction in New relic, when URL is same?当 URL 相同时,如何区分 New relic 中的 GET 和 PUT 请求事务?
【发布时间】:2023-03-14 07:55:01
【问题描述】:

我正在使用 New Relic Java 代理 2.18.0 监控我在 Tomcat 7 上运行的 Web 应用程序(CXF、Spring、Hibernate)。

我的服务具有端点 URL,因此它们对于 GET 和 PUT 请求是相同的,只有 HTTP 方法不同,但是当我查看“Web 事务”时,我只看到 1 个 URL 而不是单独方法的单独 URL,因此我找不到 GET 请求是慢还是 PUT 请求。是否有任何配置/hack 可以让我通过 HTTP 方法进一步划分事务,而不仅仅是 URL 字符串?

【问题讨论】:

  • 有关系吗?我严重怀疑任何缓慢都是由于 HTTP 方法造成的。
  • 我的意思是说 GET 请求的平均时间与 PUT 的平均时间不同,因为它们在内部执行不同的代码,但由于它将两种类型的事务合并在一起,平均时间是 GET & PUT 请求时间。因此,很难理解哪一个拉起平均时间
  • 我还是不太明白。但是在您使用的框架中必须有一些 servlet 充当过滤器。您是否考虑过扩展它并编写一些东西来记录不同的请求类型?
  • 我使用 CXF,它确实在日志中为不同的方法写了不同的东西,但这里我不是在谈论日志,我说的是 New Relic 控制台,其中事务由 url 显示,而不是 URL+HTTP 方法并且 AFAIK New Relic 应该能够在我不更改代码的情况下做到这一点。
  • 我想我误解了。我不知道该怎么做:)

标签: java tomcat monitoring newrelic


【解决方案1】:

不幸的是,最好的办法是调用 API 将事务名称设置为您想要的。

https://newrelic.com/docs/java/naming-web-transactions

如果您认为自动添加方法是一项有价值的功能,我建议向 New Relic 支持提交功能请求。

【讨论】:

  • 尝试在 NewRelic 控制台中获得更好的“Web Transaction”指标,参考:newrelic.com/docs/java/naming-web-transactions
  • 这不仅限于java btw。我发现它是 New Relic 的一个非常糟糕的限制。我有一个类似的问题。我的 GET 调用远不如我的 PUT 问题,因为我的 PUT 正在编写数据库并进行其他计算。 GET 要简单得多,因此通常花费的时间要少得多。我曾经使用 AppDynamics,您可以轻松地分别报告每种方法。 New Relic 似乎没有,除非您将其实际添加到您的代码中并以不同的方式命名交易。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-10
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多