ブラウザ監視の計測

一般的にページ読み込みタイミング(時には リアルユーザー監視(RUM)とも呼ばれる)によって New Relic は、ウェブページ全体の読み込みにかかる時間全体を測定します。ページの読み込み終了後は、ページ内で呼ばれる AJAX コールや、JavaScript のエラー、その他のイベントやインタラクションに関する情報を監視します。詳細なタイミング情報を収集するため、ページに JavaScript を直接埋め込んでいます。これにより、New Relic エージェントをより活用することができます。

計測

以下の機能を利用できるかは、契約しているサブスクリプションレベルによって異なります。

New Relic Browser は、ページにペーストしたり、埋め込んだ JavaScript を使って、データの収集を行います。このスクリプトには、設定の詳細や、最小限のブラウザ環境の計測処理を含んでいます。ページの読み込みが完了すると、第3の「ペイロード」スクリプトがページの body タグの最後に追加されます。外部のエージェントへの参照も同時に追加します。これらのスクリプトは、より多くのデータ解析機能を追加し、New Relic へデータを送信します。

このスクリプトは、エージェントによって自動的に埋め込まれます。また、コピー&ペースNew Relic エージェント APIを使って、手動で埋め込むこともできます。コピー&ペーストと、API コールの両方の方法とも、埋め込む時期と場所をコントロールできます。

New Relic の JavaScript では、ページ読み込み情報を収集するために、以下の方法を使っています。

JavaScript の配置要件

JavaScript ライブラリのコードを HEAD に埋め込む方法というは、一般的に推奨されていませんし、一般的な方法ではありません。しかし、New Relic この方法を採っています。New Relic Browser が正確な情報を収集するのに必要であり、これによって、ページ読み込み時のパフォーマンスに影響を与えないと考えているためです。

埋め込まれる JavaScript のコードはでは、ブラウザの組み込み API をラップし、JavaScript エラーやコールバックタイミング情報などを記録します。このような通常、配置しない場所にあえて、埋め込む理由は、以下のとおりです。

  • HEAD に置くと、計測コードが、他の全スクリプトよりも前に読み込まれることを保証できるため、他のライブラリが登録されるときに、それらを計測対象にします。
  • インラインコードにすることで、インストールが同期で行われることを保証します。これにより、外部参照しているスクリプトが原因のネットワークのラウンドトリップや無関係な読み込み時間を無視できます。

データ転送

ページへ、またはページからどのようにデータを転送するかの要約です。

データ転送 http ページの場合 https ページの場合
エージェント・スクリプトの取得 http https
ページビューのタイミングデータの送信 http https
AJAX、JavaScript エラー、セッショントレースデータの送信 https https
ページ読み込みデータは、タイミングデータと個人情報を含まないパフォーマンスデータで構成されています。JavaScript エラーには、個人情報を含む可能性があるため、エラーデータは常に https で送信されます。

関連情報

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

ヒント: New Relic Browser を開発する際に、自身のアプリのパフォーマンスを改善するために、New Relic のエンジニアが、どのようにページ読み込みタイミングを利用したかについての実例は、このブログ記事 [英語] [external link]を読んでみてください。