Site24x7は、ビーコン ファイル(site24x7rum.js)での、非同期通信スクリプトを提供します。ビーコン ファイルには、ページ メトリック取得のコードが含まれています。当社が利用しているのは、Navigation Timing APIです。この仕様では、Webアプリケーションから、ページ移動や要素に関連する情報にアクセスするタイミング情報のインターフェースを定義しています。収集したメトリックは、5秒ごとにサーバーへ送出されます。
ブラウザーにページが読み込まれると、loadイベントが発火します。当社はloadイベントを聞き、リダイレクト時間、DNS時間、接続時間、ネットワーク時間、バックエンドとフロントエンドの時間などのメトリックを、ページのパフォーマンス タイミング オブジェクトから計算します。メトリックの計算に使う属性は、Performance Timingインターフェースで定義されています。
例:
リダイレクト時間= performanceObj.redirectStart - performanceObj.redirectEnd
AJAX呼び出し情報を聞く際は、XMLHttpRequest.prototype.openを使用し、呼び出しの収集を行います。
JavaScriptエラーは、エラー発生時に発火するwindow.onerrorイベントで聞き、エラー収集を行います。
window.onerror = function(message, url, lineNo, columnNo, error) {
// 補足したエラーを送出するコードを記述
}