ブラウザモニタリングのJavaScriptスニペットは、ウェブサイトのパフォーマンスや、ページの読み込み時間に対するユーザーの認識に、ほとんど目に見えない影響をもたらします。このJavaScriptは、ウェブページのデータのパケットに含まれており、そのまま送信されます。さらに、JavaScriptはウェブページの残りの部分が実行されると同時に、エラーやイベントの監視を開始します。JavaScriptをロードするために必要なオーバーヘッドはごくわずかで、実用的なデータの大きなリターンとなります。
全体的な影響
JavaScriptのオーバーヘッドは、ユーザーへの影響とお客様のシステムのパフォーマンスへの影響の両方を考慮しています。
- ユーザーの認識: 一般的にユーザーは、200ms未満のウェブサイトのパフォーマンス低下を検知できません。ブラウザのJavaScriptは、ページの読み込みごとに15ms以下の時間を加算します。これは時間の経過とともに分割されるため、ユーザーがJavaScriptによるパフォーマンスへの影響を認識することはできません。
- ウェブサーバとシステム: ブラウザアプリの監視は、サーバではなくユーザーのブラウザ上で行われます。処理時間がCPU消費量に影響することはありません。
さらに、監視対象のアプリやウェブページへの潜在的な影響を最小限に抑えるため、追加の措置を講じています。例えば、"ローダー" スクリプトは、 < HEAD>
に同期してロードされ、ページのライフサイクル全体でモニタリングが有効になるようにしています。このスクリプトはインラインで含まれているため、 コンテンツデリバリネットワーク(CDN) への別のラウンドトリップネットワークリクエストは必要ありません。"ローダー" は、最初のページロード時に付属しています。
ページのライフサイクルの後半で、New Relic は追加の監視スクリプトを非同期的にロードします。このスクリプトはユーザーに知覚できるような影響を与えることはなく、1ページあたり15ms未満という全体的なオーバーヘッドに含まれています。
ネットワークへの影響
また、ブラウザモニタリングでは、データをローカル(クライアント内)で集約し、 load
、定期的な間隔で、 unload
、またはデータが収集されたときに New Relic にデータを送信することで、エンドユーザーのネットワークトラフィックを最小限に抑えます。(ブラウザセッションのアイドル期間中は、送信が必要ない場合もあります)。
ブラウザエージェントスクリプト
エージェントは2つのスクリプトで構成されています。1つ目のスクリプトは、HTMLドキュメントにインラインで挿入されます。2つ目のスクリプトは、ウィンドウのロードイベントが発生したときに、コンテンツ・デリバリー・ネットワーク(js-agent.newrelic.com)からダウンロードされます。 ブラウザエージェントの種類についてはこちら 。
スクリプト | Lite | Pro | プロ+SPA |
---|---|---|---|
インラインのスクリプトサイズ | 8.3 KB | 22 KB | 27 KB |
ダウンロードしたスクリプトのサイズ | 27 KB | 27 KB | 38 KB |
ブラウザエージェントのハーベスト
データ型 | Lite | Pro | プロ+SPA | 収穫頻度 |
---|---|---|---|---|
ページビューのメトリクス/イベント | そう | そう | そう | 1回目のコール2つ目のスクリプトがダウンロードされると、すぐに最初のハーベストコールを行い、ページビューメトリクスと |
| そう | そう | そう | すべてのエージェントタイプは、 |
| ノー | そう | そう | エージェントの初期化時に最初に呼び出され、その後は60秒ごとに呼び出されます。メトリクスデータとして送信されるこれらのコールは、エージェント自身が行うAjaxコールを含んでいるため、60秒ごとに発生します。この情報は、Ajaxメトリクスにも適用されます。 |
Ajaxメトリクス | ノー | そう | そう | JavaScriptエラーと一緒に送信されます。 |
Ajaxイベント | ノー | そう | そう |
|
セッション・トレース | ノー | そう | そう | エージェントが初期化されたときに最初に呼び出され、その後は送信するデータがあれば10秒ごとに呼び出されます。セッショントレースは最も多くのデータを送信しますが、サンプル数が多いのが特徴です。セッショントレースのデータを送信できるようになるのは、1時間あたり75ページビュー程度です。エージェントは、送信するのに十分なデータがあれば、10秒ごとにデータを送信します。 |
| ノー | そう | そう | 最初の呼び出しは、エージェントの初期化時に行われ、その後、送信するデータがある場合は30秒ごとに行われます。 |
| ノー | ノー | そう | インタラクションが終了すると直ちに送信されます。最初のページロードを表す少なくとも1つのインタラクションが常に存在します。追加のインタラクションは、URLが変更された(ルート変更を表す)場合にのみ収集されます。Ajaxイベントの収穫頻度の詳細は、ここでも適用されます。 |