Ruby における ページ読み込みタイミング

ページ読み込みタイミング(別名、リアルユーザー監視、RUM)を Ruby エージェント上で使うには、エージェントが最新リリースであること確認してください。UI上でページの読み込みタイミングを有効にするには、ブラウザの設定をご覧ください。そして、ページの読み込みタイミングの設定手順は、以下をご覧ください。

要件

Ruby エージェントでページ読み込みタイミングを使うには、以下の要件を満たしている必要があります。

自動計測

自動計測には、Rackを使います。そのため、Rails のバージョンは、2.3 以上が必須となります。

エンドユーザーの監視スクリプトによって自動的にページを計測するエージェントとなるように設定するために、newrelic.ymlで以下のフラグを追加または編集します。

    browser_monitoring:
      auto_instrument: true

これが、エンドユーザーをモニターするもっとも簡単な方法です。エージェントは、アプリケーションの各ページを調べて、自動的にヘッダーにJavaScriptを挿入します。自動計測は、Rack をサポートする環境で動作します。パフォーマンス上の理由から、ヘッダー計測ポイントとしてアプリケーションのレスポンスの最初の 50K のみスキャンします。X-UA-Compatible メタタグが存在し、<head> タグが 50K 以上の場合は、自動計測に失敗します。

自動計測は、X-UA-Compatible メタタグを探し、JavaScript をその後に挿入します。自動計測が X-UA-Compatible メタタグを見つけられない場合は、head タグの後に挿入します。それに失敗した場合は、body タグの後に挿入します。これらのタグのいずれかが条件文やコメントで囲まれている場合、自動計測は失敗する可能性が高くなります。

アプリケーションのページの自動計測に失敗した場合は、次のセクションで説明する手動計測を試す必要があります。

手動計測

Rails 2.1 から 2.2 を使っている場合は、自動計測は使えません。その場合は、ページに適切なスクリプトを含めることにより、手動でエンドユーザの監視が可能となります。New Relic エージェントの専用の API を使って、ページにスクリプトを埋め込みます。

例えば、以下のようにして、エージェントを呼び出すようにアプリケーションのテンプレートを修正します。

    <head>
    <%= ::NewRelic::Agent.browser_timing_header rescue "" %>
    ... existing template code ...
    </head>

トラブルシューティング

報告されているはずのページ読み込みタイミングが表示されない場合は、HTMLソースや HTML head に以下のようなスクリプトのブロックが2つないか確認してください。

<script type="text/javascript">window.NREUM||(NREUM={});...</script>

ない場合は、自動計測設定を確認するか、手動計測に置き換えてください。

3.7.0より前のRubyのエージェントのバージョンでは、<%=::NewRelic::Agent.browser_timing_footer rescue "" %> は、可能な限り文書の最後の近くに置く必要がありました。3.7.0 からは、必要なすべてのスクリプトは browser_timing_header に含まれます。 browser_timing_footer は、互換性のために空の文字列を返します。

自動計測の無効化

auto-instrument のデフォルト値は、true です。指定していない場合も、true です。無効にするには、false としてください。

特定のコントローラーやコントローラーのアクションの自動計測を無効にするには、newrelic_ignore_enduserを使います。サーバー側の計測がこの呼び出しの影響を受けることはありません。

関連情報

関連する情報は以下のとおりです。