交易名称已被冻结后尝试将交易重命名为“...”

Kev*_*tre 5 heroku newrelic

我对每个请求都会收到以下警告:

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

我正在 Heroku 上的 Cedar 上运行,带有Ruby 2.0.0p195Rails 4.0.0.rcUnicorn 4.6.2RPM 3.6.2.96。我已追踪到以下文件(第 108 行)的异常,但我不确定如何修复:

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

foo*_*ool 3

我在新遗迹工作。

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

如果您使用 Turbolink 功能,Rails 4 会使这变得相当困难。我们很快就会致力于明确支持这一点,但就目前情况而言,涡轮链接基本上会阻止 RUM 在第一页加载后工作(无论如何,如果您的应用程序中有指向自身的链接)。

因此,修复它的选项是:

  1. 在代码序列的较早位置重命名您的事务 - 最好在内容生成结束之前很久(必须在获取输出之前,但在某些情况下会更早)
  2. 关闭此应用程序的浏览器监控,因为您可以在执行过程中的任何时刻重命名事务

请注意,考虑到我们的 Turbolinks 支持状态,建议 1 可能不起作用。我们将尽快获得支持——当然是在今年的某个时候。不幸的是,我们不承诺时间表,我们只是提供功能,所以我无法更具体地说明时间。