在交易名称已经冻结之后,尝试将交易重命名为“...”

时间:2013-05-21 05:45:32

标签: heroku newrelic

我在每次请求时收到以下警告:

  

在事务名称已被冻结后,尝试将事务重命名为Controller / sessions / new。

我使用Ruby 2.0.0p195Rails 4.0.0.rcUnicorn 4.6.2RPM 3.6.2.96在Heroku上的Cedar上运行。我跟踪了以下文件的例外情况(第108行),但我不确定该怎么做才能修复:

https://github.com/newrelic/rpm/blob/master/lib/new_relic/agent/transaction.rb

1 个答案:

答案 0 :(得分:2)

我在New Relic工作。

当您收到这样的消息时,这是由于我们的应用程序组件称为真实用户监控(RUM),它试图在客户的浏览器中监控页面加载时间。为什么这会影响您重命名交易的能力?我们将用户浏览器中的计时捕获基于事务ID(与服务器上的事务名称相关联),并且此信息将进入我们为您的网页创建的页脚。当我们创建该页脚时,无论事务名称是什么,在事务结束时都将继续如此。如果您的页面加载速度与慢速应用服务器事务相对应并且我们捕获了两条跟踪,那么在我们的UI中您可以在两者之间单击(慢速页面加载来自特定的慢速交易。)

如果您正在使用turbolink功能,那么Rails 4会更加困难。我们很快就会对此做出明确的支持,但就目前而言,turbolinks基本上阻止了RUM在第一页加载后工作(如果你的应用程序中有自己的链接,无论如何)。

因此,您修复它的选项是:

  1. 在代码序列中更早地重命名您的事务 - 最好在内容生成结束之前(在获得输出之前,但在某些情况下更快),
  2. 关闭此应用的浏览器监控,因为您可以在执行中的任意位置重命名交易
  3. 请注意,考虑到我们的turbolinks支持状态,建议1可能无效。我们会尽快得到支持 - 当然在今年的某个时候。不幸的是,我们不承诺时间表,我们只提供功能,所以我不能更具体地说明时间。