LoginSignup
10
7

More than 5 years have passed since last update.

AMP対応したページにNewRelicのscriptが埋め込まれてしまう件

Last updated at Posted at 2016-07-12

概要

AMPに対応するページには基本的にはjavascriptを入れることができませんが、New Relicを利用していると、自動的にモニタリング用scriptがhtml内に埋め込まれてしまいます。
そのままだとAMPのvalidatorを通らないので、以下のような対応をしました。というメモです

対応

調べると公式ドキュメントに対応方法が書いてありました。
(NewRelicはよく使われているので、同じようなトラブルに遭遇した人が結構いたんですね…)

NewRelicの使い方によって対応は違うようですが、要は特定ページでNewRelicを無効化する処理を入れろ、と。
今回はPHPを使ったプロダクトなので、下記関数を使うことで無効化できるようです

newrelic_disable_autorum()

PHP agent API | New Relic Documentation

何故かPhalconを使っているので、以下のように対応してみました

if (extension_loaded('newrelic')) {
    $eventsManager->attach('dispatch', function ($event, $dispatcher) {
        if ($dispatcher->getDI()->get('request')->get('amp') == 1) {
            //ampのときはnewrelic無効化
            newrelic_disable_autorum();
            return;
        }
        $controller = $dispatcher->getControllerName();
        $action = $dispatcher->getActionName();
        newrelic_name_transaction($controller . '/' . $action);
    });
}

所感

  • NewRelicを開発環境に入れてないので、ステージングでようやく気付きました…
  • AMP対応つらい
10
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
7