2016-03-28 7 views
2

Der AMP-Validator sagt: "Das Tag-Skript ist nur in bestimmten Formularen unzulässig.".So deaktivieren Sie newrelic_rpm auf Rails AMP-Seite

Jetzt weiß ich, dass dieses Tag 'Skript' automatisch von newrelic_rpm erstellt wird.

Mein Problem ist, dass ich newrelic_rpm auf AMP-Seite deaktivieren kann. Die URL meiner AMP-Seite ist wie http://example.com/foo/bar.amp.

So habe ich versucht, Einstellungen wie diese 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 

Aber es funktioniert nicht.

Meine Projektumgebung:

  • Schienen (4.1.8)
  • Rubin (2.2.3)
  • newrelic_rpm (3.14.0.305)

Antwort

6

Ich tat das Gleiche. Kleine Verbesserungen an @ Awjeccs Antwort

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 
+0

Könnte es sich lohnen, Ihren anderen Controllern 'amp_request?' Zu erlauben, obwohl, nein? – coreyward

+0

Andere Controller erben normalerweise von ApplicationController und sollten Zugriff auf diese Methode haben – Swards

+0

'private' Methoden sind nicht zugänglich von erbenden/untergeordneten Klassen. Aus diesem Grund verwenden Sie normalerweise "geschützte" Methoden. – coreyward

4

Ich löste mich.

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 

ich diese Frage beunruhigt für jemanden halten würde mit gleicher Situation.