如何在 Rails AMP 页面上禁用 newrelic_rpm

How to disable newrelic_rpm on Rails AMP page

AMP 验证器说 "The tag 'script' is disallowed except in specific forms."。

现在我知道这个标签 'script' 是由 newrelic_rpm 自动创建的。

我的问题是如何在 AMP 页面上禁用 newrelic_rpm。

我的 AMP 页面的 URL 就像 http://example.com/foo/bar.amp

所以我尝试了这样的设置 config/newrelic.yml:

common: &default_settings
  license_key: foobarfoobarfoobarfoobar

  app_name: Foobar

  rules.ignore_url_regexes: ["amp", ".*amp"]

development:
  <<: *default_settings
  app_name: FooBar (Development)

  developer_mode: true

但是没用。

我的项目环境:

我自己解决了

application_controller.rb

class ApplicationController < ActionController::Base
  before_action :before_amp,
                if: -> { request.path_parameters[:format] == 'amp' }

  private

  def before_amp
    NewRelic::Agent.ignore_transaction
    NewRelic::Agent.ignore_apdex
    NewRelic::Agent.ignore_enduser
  end
end

我会把这个问题留给遇到同样情况的人。

我也做了同样的事情。对@Awjecc 的回答进行微调

ApplicationController < ActionController::Base

  before_action :ignore_newrelic, :if => :amp_request?

   ...


  private

  def ignore_newrelic
    NewRelic::Agent.ignore_transaction
    NewRelic::Agent.ignore_apdex
    NewRelic::Agent.ignore_enduser
  end

  def amp_request?
    request.format.try(:amp?)
  end

end