CloudWatch RUM ウェブクライアントによって収集される情報
このセクションでは、PutRumEvents スキーマについて記述します。このスキーマでは、CloudWatch RUM を使用してユーザーセッションから収集できるデータの構造を定義します。
PutRumEvents リクエストは、以下のフィールドを持つデータ構造を CloudWatch RUM に送信します。
この RUM イベントのバッチ ID
以下を含む、アプリケーションモニターの詳細情報:
アプリケーションモニタ ID
モニタリング対象アプリケーションのバージョン
以下を含むユーザーの詳細情報: このデータは、アプリケーションモニターで Cookie が有効化されている場合にのみ収集されます。
ウェブクライアントによって生成されたユーザー ID
セッション ID
このバッチ内での RUM イベントの配列
RUM イベントのスキーマ
各 RUM イベントの構造には、以下のフィールドが含まれます。
イベントの ID
タイムスタンプ
イベントタイプ
ユーザーエージェント
RUM イベントのメタデータ
メタデータには、ページメタデータ、ユーザエージェントのメタデータ、地理的位置情報のメタデータ、およびドメインメタデータが含まれます。
ページメタデータ
ページメタデータには、以下が含まれます。
ページ ID
ページタイトル
親ページ ID このデータは、アプリケーションモニターで Cookie が有効化されている場合にのみ収集されます。
操作に関する深度 (これは、アプリケーションモニターで Cookie が有効になっている場合にのみ収集されます。)
ユーザーエージェントのメタデータ
ユーザーエージェントのメタデータには、以下が含まれます。
ブラウザで使用する言語
ブラウザ名
ブラウザのバージョン
オペレーティングシステム名
オペレーティングシステムのバージョン
デバイスタイプ
プラットフォームの種類
地理的位置情報のメタデータ
地理的位置情報のメタデータには以下が含まれます。
国コード
区域コード
ドメインメタデータ
ドメインメタデータには URL ドメインが含まれます。
RUM イベントの詳細
イベントの詳細は、イベントタイプに応じて、以下のいずれかのタイプのスキーマに従います。
セッション開始イベント
このイベントにはフィールドは含まれません。このデータは、アプリケーションモニターで Cookie が有効化されている場合にのみ収集されます。
ページビュースキーマ
ページビューイベントには、以下のプロパティが含まれます。ページビューコレクションを非アクティブ化するように、ウェブクライアントを設定できます。詳細については、「CloudWatch RUM web client documentation
名前 | 型 | 説明 |
---|---|---|
ページ ID |
文字列 |
アプリケーション内でこのページを一意に表す ID です。デフォルトでは URL パスが使用されます。 |
親ページ ID |
文字列 |
現在のページに移動する時点で、ユーザーに対し表示されていたページの ID です。このデータは、アプリケーションモニターで Cookie が有効化されている場合にのみ収集されます。 |
操作に関する深度 |
文字列 |
このデータは、アプリケーションモニターで Cookie が有効化されている場合にのみ収集されます。 |
JavaScript エラースキーマ
エージェントによって生成される JavaScript エラーイベントには、以下のプロパティが含まれます。ウェブクライアントは、エラーテレメトリの収集を選択した場合にのみ、これらのイベントを収集します。
名前 | 型 | 説明 |
---|---|---|
エラータイプ |
文字列 |
エラーの名前 (存在する場合)。詳細については、「Error.prototype.name ブラウザによっては、エラータイプをサポートしていない場合があります。 |
エラーメッセージ |
文字列 |
エラーが返すメッセージ。詳細については、「Error.prototype.message 異なるブラウザ間では、エラーメッセージが一貫しない場合があります。 |
スタックトレース |
文字列 |
エラーのスタックトレース (それが存在する場合) は 150 文字に切り捨てられます。詳細については、「Error.prototype.stack ブラウザによっては、スタックトレースをサポートしていない場合があります。 |
DOM イベントスキーマ
エージェントによって生成されるドキュメントオブジェクトモデル (DOM) イベントには、以下のプロパティが含まれます。これらのイベントは、デフォルトでは収集されません。収集されるのは、インタラクションテレメトリをアクティブにした場合のみです。詳細については、「CloudWatch RUM web client documentation
名前 | 型 | 説明 |
---|---|---|
[Event] (イベント) |
文字列 |
クリック、スクロール、ホバーなど、DOM イベントの種類。詳細については、「Event reference |
要素 ID |
文字列 |
イベントを生成した要素が ID を持つ場合、その ID がこのプロパティに格納されます。詳細については、「Element.id それ以外の場合、このプロパティはタグ名を格納します。詳細については、「Element.tagName |
ナビゲーションイベントスキーマ
ナビゲーションイベントは、アプリケーションモニターでパフォーマンステレメトリが有効になっている場合にのみ収集されます。
ナビゲーションイベントでは、ナビゲーションタイミングレベル 1
タイムスタンプのメトリクスは、DOMHighResTimestampstartTime
に対し相対的です。また、レベル 1 では、タイムスタンプメトリクスから navigationStart
メトリクスを減算して相対値を算出します。タイムスタンプの値はすべてミリ秒単位で表示されます。
ナビゲーションイベントには、以下のプロパティが含まれます。
名前 | 型 | 説明 | メモ |
---|---|---|---|
initiatorType |
文字列 |
パフォーマンスイベントを開始したリソースのタイプを表します。 |
値: 「ナビゲーション」 レベル 1: 「ナビゲーション」 レベル 2: entryData.initiatorType |
navigationType |
文字列 |
ナビゲーションのタイプを表します。 この属性は必須ではありません。 |
値: この値は以下のいずれかにする必要があります。
|
startTime |
数値 |
イベントがトリガーされるタイミングを示します。 |
値: 0 レベル 1: entryData.navigationStart - entryData.navigationStart レベル 2: entryData.startTime |
unloadEventStart |
数値 |
ウィンドウ内の前のドキュメントが、アンロードを ( |
値:先に表示されたドキュメントが存在しないか、そのドキュメントもしくは必要なリダイレクトの 1 つでオリジンが異なっている場合、返される値は 0 です。 レベル 1:
レベル 2: entryData.unloadEventStart |
promptForUnload |
数値 |
ドキュメントのアンロードに要した時間。つまり |
値:先に表示されたドキュメントが存在しないか、そのドキュメントもしくは必要なリダイレクトの 1 つでオリジンが異なっている場合、返される値は 0 です。 レベル 1: entryData.unloadEventEnd - entryData.unloadEventStart レベル 2: entryData.unloadEventEnd - entryData.unloadEventStart |
redirectCount |
数値 |
現在のブラウジングコンテキストの下で行われた、最後の非リダイレクトナビゲーション以降のリダイレクトの数を表す数値。 この属性は必須ではありません。 |
値:リダイレクトが存在しない場合、またはリダイレクトがあってもそのオリジンが送信先ドキュメントと異なっている場合、返される値は 0 です。 レベル 1: 利用不可 レベル 2: entryData.redirectCount |
redirectStart |
数値 |
最初の HTTP リダイレクトが開始された時刻。 |
値:リダイレクトが存在しない場合、またはリダイレクトがあってもそのオリジンが送信先ドキュメントと異なっている場合、返される値は 0 です。 レベル 1:
レベル 2: entryData.redirectStart |
redirectTime |
数値 |
HTTP リダイレクトに要した時間。これは、 |
レベル 1:: entryData.redirectEnd - entryData.redirectStart レベル 2:: entryData.redirectEnd - entryData.redirectStart |
workerStart |
数値 |
これは この属性は必須ではありません。 |
値: Service Worker スレッドがすでに実行中である、またはそのスレッドを開始する直前である場合、このプロパティは レベル 1: 利用不可 レベル 2: entryData.workerStart |
workerTime |
数値 |
リソースが Service Worker によって傍受されている場合、この値にはワーカースレッドでの処理に要する時間が返されます。 この属性は必須ではありません。 |
レベル 1: 利用不可 レベル 2:
|
fetchStart |
数値 |
ブラウザで、HTTP リクエストによるドキュメントのフェッチが準備ができた時刻。これは、アプリケーションキャッシュがチェックされる前のタイミングです。 |
レベル 1:
レベル 2: entryData.fetchStart |
domainLookupStart |
数値 |
ドメインルックアップが開始された時間。 |
値: 永続接続が使用されている場合、または情報がキャッシュまたはローカルリソースに格納されている場合、この値は レベル 1:
レベル 2: entryData.domainLookupStart |
dns |
数値 |
ドメインルックアップに必要な時間。 |
値: リソースと DNS レコードがキャッシュされている場合、この値には 0 が想定されます。 レベル 1: entryData.domainLookupEnd - entryData.domainLookupStart レベル 2: entryData.domainLookupEnd - entryData.domainLookupStart |
nextHopProtocol |
文字列 |
リソースの取得に使用されるネットワークプロトコルを表す文字列。 この属性は必須ではありません。 |
レベル 1: 利用不可 レベル 2: entryData.nextHopProtocol |
connectStart |
数値 |
ユーザーエージェントがドキュメントを取得するためにサーバーへの接続を確立した時点の直前の時間。 |
値: RFC2616 の永続接続が使用されている場合、または現在のドキュメントが関連するアプリケーションキャッシュまたはローカルリソースから取得された場合、この属性は値として レベル 1:
レベル 2: entryData.connectStart |
接続 |
数値 |
転送のための接続の確立、または SSL 認証の実行に必要な時間を測定します。また、ブラウザによって発行される同時リクエストが多すぎる場合の、ブロック時間の長さも含まれます。 |
レベル 1: entryData.connectEnd - entryData.connectStart レベル 2: entryData.connectEnd - entryData.connectStart |
secureConnectionStart |
数値 |
現在のページの URL スキームが「https」の場合、この属性は、ユーザーエージェントが現在の接続を保護するためのハンドシェイクプロセスを開始する直前の時間を返します。HTTPS を使用しない場合は 0 を返します。URL スキームの詳細については、「URL representation |
計算式: entryData.secureConnectionStart |
tlsTime |
数値 |
SSL ハンドシェイクを完了するのに要した時間。 |
レベル 1:
レベル 2:
|
requestStart |
数値 |
ユーザーエージェントが、サーバー、関連するアプリケーションキャッシュ、またはローカルからのリソースに対する要求を開始した時点の直前の時間。 |
レベル 1:
レベル 2: entryData.requestStart |
timeToFirstByte |
数値 |
リクエストが発行された後、情報の最初のバイトを受信するまでに要した時間。この時間は |
レベル 1: entryData.responseStart - entryData.requestStart レベル 2: entryData.responseStart - entryData.requestStart |
responseStart |
数値 |
ユーザーエージェントの HTTP パーサーが、関連するアプリケーションキャッシュ、ローカルリソース、またはサーバーから、最初の応答バイトを受信した直後の時間。 |
レベル 1:
レベル 2: entryData.responseStart |
responseTime |
文字列 |
関連するアプリケーションキャッシュ、ローカルリソース、またはサーバーから、バイト形式の完全な応答を受信するまでに要した時間。 |
レベル 1:
レベル 2:
|
domInteractive |
数値 |
パーサーがメインドキュメントでの作業を終了し、HTML DOM が構築された時間。この際には、 |
レベル 1:
レベル 2: entryData.domInteractive |
domContentLoadedEventStart |
数値 |
ユーザーエージェントが、現在のドキュメントで DOMContentLoaded イベントを発行した時点の直前の時間を表します。DOMContentLoaded イベントは、最初の HTML ドキュメントが完全に読み込まれ、解析されたタイミングで発行されます。この時点では、メイン HTML ドキュメントの解析が完了し、ブラウザがレンンダーツリーの作成を開始しており、また、サブリソースをロードする必要があります。これにより、スタイルシート、画像、およびサブフレームのローディングが完了するのを待つことはありません。 |
レベル 1:
レベル 2: entryData.domContentLoadedEventStart |
domContentLoaded |
数値 |
これは、レンダーツリー構築の開始と終了の時間で、 この期間の間に、DOM と CSSOM の準備が整います。このプロパティは、非同期的および動的に作成されたスクリプトを除き、スクリプトが実行されるまで待機します。また、スクリプトがスタイルシートに依存している場合、
|
レベル 2: entryData.domContentLoadedEventEnd – entryData.domContentLoadedEventStart レベル 2: entryData.domContentLoadedEventEnd – entryData.domContentLoadedEventStart |
domComplete |
数値 |
現在のドキュメントの準備を完了したことを、ブラウザが知らせてきた時点の直前の時間。この時点で、画像などのサブリソースの読み込みは完了しています。これには、CSS や同期 JavaScript などのブロッキングコンテンツのダウンロードにかかる時間も含まれます。この値は、Google Chrome のネットワークパネルに表示される |
レベル 1:
レベル 2: entryData.domComplete |
domProcessingTime |
数値 |
レスポンスとロードイベント開始までの間の合計時間。 |
レベル 1: entryData.loadEventStart - entryData.responseEnd レベル 2: entryData.loadEventStart - entryData.responseEnd |
loadEventStart |
数値 |
現在のドキュメントの |
レベル 1:
レベル 2: entryData.loadEventStart |
loadEventTime |
数値 |
と の違い。 |
レベル 1: entryData.loadEventEnd - entryData.loadEventStart レベル 2: entryData.loadEventEnd - entryData.loadEventStart |
期間 |
文字列 |
この期間は、ページの合計読み込み時間です。メインページとそのすべての同期サブリソースをダウンロードし、さらにページをレンダリングするため要した時間を記録します。この後も、スクリプトなどの非同期リソースのダウンロードは継続します。この値は、 |
レベル 1: entryData.loadEventEnd - entryData.navigationStart レベル 2: entryData.duration |
headerSize |
数値 |
この属性は必須ではありません。 |
レベル 1: 利用不可 レベル 2: entryData.transferSize – entryData.encodedBodySize レベル 2: entryData.transferSize – entryData.encodedBodySize |
compressionRatio |
数値 |
この属性は必須ではありません。 |
レベル 1: 利用不可。 レベル 2:
|
navigationTimingLevel |
数値 |
ナビゲーションタイミング API のバージョン。 |
値: 1 または 2 |
リソースイベントスキーマ
リソースイベントは、アプリケーションモニターでパフォーマンステレメトリが有効化されている場合にのみ収集されます。
タイムスタンプのメトリクスは、型定義 DOMHighResTimeStampstartTime
に対して相対的です。レベル 1 API の場合には、タイムスタンプのメトリクスから navigationStart
メトリクスが減算され、相対値が取得されます。タイムスタンプの値はすべてミリ秒単位で表示されます。
エージェントによって生成されたリソースイベントには、以下のプロパティが含まれます。
名前 | 型 | 説明 | メモ |
---|---|---|---|
targetUrl |
文字列 |
リソースの URL を返します。 |
計算式: entryData.name |
initiatorType |
文字列 |
パフォーマンスリソースイベントを開始したリソースのタイプを表します。 |
値: 「resource」 計算式: entryData.initiatorType |
期間 |
文字列 |
この属性は必須ではありません。 |
計算式: entryData.duration |
transferSize |
数値 |
レスポンスヘッダーフィールドとレスポンスペイロード本体を含む、フェッチされたリソースのサイズ (オクテット単位) を返します。 この属性は必須ではありません。 |
計算式: entryData.transferSize |
fileType |
文字列 |
ターゲット URL パターンから派生した拡張。 |
最大のコンテンツフルペイントイベントのスキーマ
最大のコンテンツペイントイベントには、以下のプロパティが含まれています。
これらのイベントは、アプリケーションモニターでパフォーマンステレメトリが有効化されている場合にのみ収集されます。
名前 | 説明 |
---|---|
値 |
詳細については、「Web Vitals |
最初の入力遅延イベント
最初の入力遅延イベントには、以下のプロパティが含まれます。
これらのイベントは、アプリケーションモニターでパフォーマンステレメトリが有効化されている場合にのみ収集されます。
名前 | 説明 |
---|---|
値 |
詳細については、「Web Vitals |
累積的レイアウトシフトイベント
累積的レイアウトシフトイベントには、以下のプロパティが含まれます。
これらのイベントは、アプリケーションモニターでパフォーマンステレメトリが有効化されている場合にのみ収集されます。
名前 | 説明 |
---|---|
値 |
詳細については、「Web Vitals |
HTTP イベント
HTTP イベントには、以下のプロパティが含まれます。これには、Response
フィールドまたは Error
フィールドのいずれかが含まれますが、両方が含まれることはありません。
これらのイベントは、アプリケーションモニターで HTTP テレメトリが有効化されている場合にのみ収集されます。
名前 | 説明 |
---|---|
リクエスト |
このリクエストフィールドには、(GET、POST、その他の値を含めることが出来る) |
[Response] (レスポンス) |
レスポンスには以下が含まれます。
|
エラー |
このエラーフィールドには以下が含まれます。
|
X-Ray トレースイベントのスキーマ
これらのイベントは、アプリケーションモニターで X-Ray トレースが有効化されている場合にのみ収集されます。
X-Ray トレースイベントのスキーマの詳細については、AWS X-Ray segment documents を参照してください。