heroku – 在事务名称已被冻结后尝试将事务重命名为“…”

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

Attempted to rename transaction to Controller/sessions/new after transaction name was already frozen.

我使用Ruby 2.0.0p195,Rails 4.0.0.rc,Unicorn 4.6.2和RPM 3.6.2.96在Heroku上运行Cedar.我已经跟踪了以下文件的异常(第108行),但我不确定该怎么做才能修复:

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

最佳答案 我在New Relic工作.

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

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

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

>在代码序列中更早地重命名您的事务 – 最好在内容生成结束之前(在获得输出之前,但在某些情况下更快)
>关闭此应用程序的浏览器监视,然后您可以在执行中的任何位置重命名事务

请注意,考虑到我们的turbolinks支持状态,建议1可能无效.我们会尽快得到支持 – 当然在今年的某个时候.不幸的是,我们不承诺时间表,我们只提供功能,所以我不能更具体地说明时间.

点赞