収集された RUM ブラウザデータ

収集された RUM ブラウザデータ

Datadog リアルユーザーモニタリング SDK は、次の 6 種類のイベントを生成します。

イベントタイプ保存期間説明
セッション30 日ユーザーセッションは、ユーザーが Web アプリケーションの閲覧を始めると開始されます。これには、ユーザーに関する高レベルの情報 (ブラウザー、デバイス、ジオロケーション) が含まれています。これは、ユーザージャーニー中に収集されたすべての RUM イベントを一意の session.id 属性で集約します。
ビュー30 日ビューイベントは、ユーザーが Web アプリケーションのページにアクセスするたびに生成されます。ユーザーが同じページにいる間、リソース、ロングタスク、エラー、アクションのイベントは、view.id 属性を使用して関連する RUM ビューにリンクされます。
Resource15 日リソースイベントは、Web ページにロードされた画像、XHR、Fetch、CSS、または JS ライブラリに対して生成されます。詳細なロードタイミング情報が含まれています。
ロングタスク15 日ロングタスクイベントは、メインスレッドを 50 ミリ秒以上ブロックするブラウザ内のすべてのタスクに対して生成されます。
エラー30 日RUM は、ブラウザによって発行されたすべてのフロントエンドエラーを収集します。
アクション30 日RUM アクションイベントは、ユーザージャーニー中のユーザーインタラクションを追跡し、カスタムユーザーアクションを監視するために手動で送信することもできます。

次の図は、RUM イベント階層を示しています。

イベント固有のデフォルト属性

特定のイベントタイプに固有のメトリクスと属性があります。たとえば、メトリクス view.loading_time は “view” RUM イベントに関連付けられ、属性 resource.method は “resource” RUM イベントに関連付けられます。そして、すべての RUM イベントに存在するデフォルト属性があります。たとえば、ページのURL (view.url) や、デバイスタイプ (device.type) や国 (geo.country) などのユーザー情報があります。

デフォルト属性

これらの各イベントタイプには、デフォルトで次の属性が付加されています。したがって、照会される RUM イベントタイプに関係なくそれらを使用できます。

コア

属性名タイプ説明
type文字列イベントのタイプ (viewresource など)。
application.id文字列Datadog アプリケーション ID。

ビュー属性

RUM アクション、エラー、リソース、ロングタスクのイベントには、収集時のアクティブな RUM ビューイベントに関する情報が含まれています。

属性名タイプ説明
view.id文字列ページビューごとにランダムに生成された ID。
view.loading_type文字列ページ読み込みのタイプ: initial_load または route_change。詳細については、シングルページアプリケーションサポートドキュメントを参照してください。
view.referrer文字列現在リクエストされているページへのリンクがたどられた前のウェブページの URL。
view.url文字列ビューの URL。
view.url_hash文字列URL のハッシュ部分。
view.url_host文字列URL のホスト部分。
view.url_path文字列URL のパス部分。
view.url_path_group文字列同様の URL に対して生成された自動 URL グループ。( /dashboard/123/dashboard/456 に対する /dashboard/? など)。
view.url_queryオブジェクトクエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。
view.url_schemeオブジェクトURL のスキーム部分。

デバイス

以下のデバイス関連属性は、Datadog により収集されるすべてのイベントに自動的にアタッチされます。

属性名タイプ説明
device.type文字列デバイスによって報告されたデバイスタイプ (User-Agent HTTP ヘッダー)
device.brand文字列デバイスによって報告されたデバイスブランド (User-Agent HTTP ヘッダー)
device.model文字列デバイスによって報告されたデバイスモデル (User-Agent HTTP ヘッダー)
device.name文字列デバイスによって報告されたデバイス名 (User-Agent HTTP ヘッダー)

オペレーティングシステム

以下の OS 関連属性は、Datadog により収集されるすべてのイベントに自動的にアタッチされます。

属性名タイプ説明
os.name文字列デバイスによって報告された OS 名 (User-Agent HTTP ヘッダー)
os.version文字列デバイスによって報告された OS バージョン (User-Agent HTTP ヘッダー)
os.version_major文字列デバイスによって報告された OS バージョンメジャー (User-Agent HTTP ヘッダー)

地理的位置

次の属性は、IP アドレスの地理的位置に関連しています。

完全名タイプ説明
geo.country文字列国の名前。
geo.country_iso_code文字列国の ISO コード (米国は US、フランスは FR など)。
geo.country_subdivision文字列その国で最大規模の地方区分 (米国は California 州、フランスは Sarthe 県など)。
geo.country_subdivision_iso_code文字列その国で最大規模の地方区分の ISO コード (米国は CA、フランスは SA など)。
geo.continent_code文字列大陸の ISO コード (EUASNAAFANSAOC)。
geo.continent文字列大陸名 (EuropeAustraliaNorth AmericaAfricaAntarticaSouth AmericaOceania)。
geo.city文字列都市名 (ParisNew York など)。

ユーザー属性

デフォルトの属性に加えて、ユーザーセッションを識別することで、すべての RUM イベントタイプにユーザー関連データを追加します。これにより、特定のユーザーの移動を追跡し、エラーの影響を最も受けているユーザーを特定し、最も重要なユーザーのパフォーマンスを監視できます。

イベント固有の属性

セッションメトリクス

メトリクスタイプ説明
session.time_spent数値(ns)ユーザーセッションの期間。
session.view.count数値このセッションで収集されたすべてのビューの数。
session.error.count数値このセッションで収集されたすべてのエラーの数。
session.resource.count数値このセッションで収集されたすべてのリソースの数。
session.action.count数値このセッションで収集されたすべてのアクションの数。
session.long_task.count数値このセッションで収集されたすべてのロングタスクの数。

セッション属性

属性名タイプ説明
session.id文字列各 session.view に対してランダムに生成された ID。
session.type文字列セッションのタイプ: user または syntheticsSynthetic モニタリングブラウザテストのセッションは請求から除外されます。
session.referrer文字列現在リクエストされているページへのリンクがたどられた前のウェブページの URL。
session.initial_view.id文字列ユーザーによって生成された最初の RUM ビューの ID。
session.initial_view.url_host文字列URL のホスト部分。
session.initial_view.url_path文字列URL のパス部分。
session.initial_view.url_path_group文字列同様の URL に対して生成された自動 URL グループ。( /dashboard/123/dashboard/456 に対する /dashboard/? など)。
session.initial_view.url_queryオブジェクトクエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。
session.initial_view.url_schemeオブジェクトURL のスキーム部分。
session.last_view.id文字列ユーザーによって生成された最後の RUM ビューの ID。
session.last_view.url_host文字列URL のホスト部分。
session.last_view.url_path文字列URL のパス部分。
session.last_view.url_path_group文字列同様の URL に対して生成された自動 URL グループ。( /dashboard/123/dashboard/456 に対する /dashboard/? など)。
session.last_view.url_queryオブジェクトクエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。
session.last_view.url_schemeオブジェクトURL のスキーム部分。

シングルページアプリケーション

シングルページアプリケーション (SPA) の場合、RUM SDK は、loading_type 属性を使用して、initial_load ナビゲーションと route_change ナビゲーションを区別します。ウェブページをクリックすると、ページが完全に更新されずに新しいページが表示される場合、RUM SDK は、loading_type:route_change を使用して新しいビューイベントを開始します。RUM は、履歴 API を使用してページの変更を追跡します。

Datadog は、ページの読み込みに必要な時間を計算する独自のパフォーマンスメトリクス、loading_time を提供します。このメトリクスは、initial_loadroute_change の両方のナビゲーションで機能します。

読み込み時間はどのように計算されますか?

最新のウェブアプリケーションを考慮するために、読み込み時間はネットワークリクエストと DOM のミューテーションを監視します。

  • Initial Load: 読み込み時間は、次のどちらか長い方になります*。

    • navigationStartloadEventEnd の差。
    • または、navigationStart と、ページに 100 ミリ秒を超えて初めてアクティビティがないときの差 (アクティビティは、進行中のネットワークリクエストまたは DOM ミューテーションとして定義)。
  • SPA Route Change: 読み込み時間は、ユーザーのクリックと、ページに 100 ミリ秒を超えて初めてアクティビティがないときの差に等しくなります (アクティビティは、進行中のネットワークリクエストまたは DOM ミューテーションとして定義)。

Hash SPA ナビゲーション

ハッシュ (#) ナビゲーションは RUM SDK によって自動で監視されます。SDK は HashChangeEvent を監視し、新しいビューを表示します。現在のビューのコンテキストに影響しない HTML アンカータグからくるイベントは無視されます。

ビュータイミングメトリクス

RUM ビューのパフォーマンスメトリクスは、Paint Timing APINavigation Timing API の両方から収集されます。

メトリクスタイプ説明
view.time_spent数値(ns)現在のビューに費やした時間。
view.largest_contentful_paint数値(ns)ビューポート内の最大の DOM オブジェクト (つまり、画面に表示される) がレンダリングされるページ読み込みタイムラインの瞬間。
view.first_input_delay数値(ns)ユーザーがページを最初に操作してからブラウザが応答するまでの経過時間。
view.cumulative_layout_shift数値動的に読み込まれるコンテンツ (サードパーティの広告など) による予期しないページ移動を定量化します。0 はシフトが発生しないことを意味します。
view.loading_time数値(ns)ページの準備が整い、ネットワークリクエストまたは DOM ミューテーションが現在発生していない状態になるまでの時間。ビューの読み込み時間を収集する方法の詳細
view.first_contentful_paint数値(ns)ブラウザによりテキスト、画像(背景画像を含む)、白以外のキャンバス、または SVG が最初にレンダリングする時間。ブラウザのレンダリングの詳細については、w3c 定義を参照してください。
view.dom_interactive数値(ns)パーサーによりメインドキュメントの作業が終了する瞬間。MDN ドキュメントの詳細
view.dom_content_loaded数値(ns)最初の HTML ドキュメントがレンダリング以外のブロッキングスタイルシート、画像、サブフレームの読み込み完了を待たずに完全に読み込まれ解析される際に発生するイベント。MDN ドキュメントの詳細
view.dom_complete数値(ns)ページとすべてのサブリソースの準備が完了。ユーザー側では、ローディングスピナーの回転が停止。MDN ドキュメントの詳細
view.load_event数値(ns)ページが完全に読み込まれた際に発生するイベント。通常は追加のアプリケーションロジックのトリガー。MDN ドキュメントの詳細
view.error.count数値このビューについて収集されたすべてのエラーの数。
view.long_task.count数値このビューについて収集されたすべてのロングタスクの数。
view.resource.count数値このビューについて収集されたすべてのリソースの数。
view.action.count数値このビューについて収集されたすべてのアクションの数。

リソースタイミングメトリクス

アプリケーションリソースのロードについて、ネットワークの詳細なタイミングデータが、Performance Resource Timing API を使用して収集されます。

メトリクスタイプ説明
duration数値リソースのロードにかかった全時間。
resource.size数値(バイト)リソースのサイズ。
resource.connect.duration数値(ns)サーバーへの接続が確立されるまでにかかった時間(connectEnd - connectStart)。
resource.ssl.duration数値(ns)TLS ハンドシェイクにかかった時間。最後のリクエストが HTTPS 経由ではなかった場合、このメトリクスは収集されません(connectEnd - secureConnectionStart)。
resource.dns.duration数値(ns)最後のリクエストの DNS 名が解決されるまでにかかった時間(domainLookupEnd - domainLookupStart)。
resource.redirect.duration数値(ns)後続の HTTP リクエストにかかった時間(redirectEnd - redirectStart)。
resource.first_byte.duration数値(ns)応答の最初のバイトを受信するまでにかかった時間(responseStart - RequestStart)。
resource.download.duration数値(ns)応答のダウンロードにかかった時間(responseEnd - responseStart)。

リソースの属性

属性タイプ説明
resource.type文字列収集されるリソースのタイプ (cssjavascriptmediaXHRimage など)。
resource.method文字列HTTP メソッド (POSTGET など)。
resource.status_code数値応答ステータスコード。
resource.url文字列リソースの URL。
resource.url_host文字列URL のホスト部分。
resource.url_path文字列URL のパス部分。
resource.url_queryオブジェクトクエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。
resource.url_scheme文字列URL のプロトコル名 (HTTP または HTTPS)。
resource.provider.name文字列リソースプロバイダー名。デフォルトは unknown となります。
resource.provider.domain文字列リソースプロバイダーのドメイン。
resource.provider.type文字列リソースプロバイダーのタイプ (first-partycdnadanalytics など)。

ロングタスクタイミングメトリクス

メトリクスタイプ説明
long_task.duration数値ロングタスクの時間。

エラーソース

フロントエンドのエラーは、それぞれの error.source により 4 つのカテゴリーに分類されます。

  • network: AJAX リクエストが原因の XHR または Fetch エラー。
  • source: 未処理の例外または未処理の約束拒否(ソースコード関連)。
  • console: console.error() API 呼び出し。
  • custom: RUM addError API (デフォルトは custom) と共に送信されるエラー。

エラー属性

属性タイプ説明
error.source文字列エラーの発生元 (consolenetwork など)。
error.type文字列エラーのタイプ (場合によってはエラーコード)。
error.message文字列イベントについて簡潔にわかりやすく説明する 1 行メッセージ。
error.stack文字列スタックトレースまたはエラーに関する補足情報。

ネットワークエラー

ネットワークエラーには失敗した HTTP リクエストに関する情報が含まれます。次のファセットも収集されます。

属性タイプ説明
error.resource.status_code数値応答ステータスコード。
error.resource.method文字列HTTP メソッド (POSTGET など)。
error.resource.url文字列リソースの URL。
error.resource.url_host文字列URL のホスト部分。
error.resource.url_path文字列URL のパス部分。
error.resource.url_queryオブジェクトクエリパラメーターの key/value 属性として分解された、URL のクエリ文字列部分。
error.resource.url_scheme文字列URL のプロトコル名 (HTTP または HTTPS)。
error.resource.provider.name文字列リソースプロバイダー名。デフォルトは unknown となります。
error.resource.provider.domain文字列リソースプロバイダーのドメイン。
error.resource.provider.type文字列リソースプロバイダーのタイプ (first-partycdnadanalytics など)。

ソースエラー

ソースエラーには、エラーに関するコードレベルの情報が含まれます。エラーの種類に関する詳細は、 MDN ドキュメントを参照してください。

属性タイプ説明
error.type文字列エラーのタイプ (場合によってはエラーコード)。

アクションの自動収集

Real User Monitoring (RUM) SDK は、ユーザージャーニー中に実行されるユーザーのインタラクションを検出します。この機能を有効にするには、trackInteractions 初期化パラメーターtrue に設定します。

: 初期化パラメーター trackInteractions は、アプリケーション内のユーザークリックの収集を有効にします。ページに含まれている機密データと非公開データは、やり取りされた要素を特定するために含まれる場合があります。

インタラクションが検出されると、すべての新しい RUM イベントは、完了したと見なされるまで、進行中のアクションにアタッチされます。アクションは、その親ビュー属性 (ブラウザ情報、ジオロケーションデータ、グローバルコンテキストなど) からも恩恵を受けます。

アクションの読み込み時間はどのように計算されますか?

インタラクションが検出されると、RUM SDK は DOM ミューテーションのネットワークリクエストを監視します。100 ミリ秒を超えてページにアクティビティがない場合、インタラクションは完了したと見なされます (アクティビティは、進行中のネットワークリクエストまたは DOM ミューテーションとして定義)。

カスタムユーザーアクション

カスタムユーザーアクションは、addAction API を介して手動で宣言および送信されるユーザーアクションです。カスタムタイミングや顧客のカート情報など、ユーザージャーニー中に発生するイベントに関連する情報を送信できます。

アクションタイミングメトリクス

メトリクスタイプ説明
action.loading_time数値(ns)アクションの読み込み時間。ユーザーアクションのドキュメントで計算方法を確認してください。
action.long_task.count数値このアクションについて収集されたすべてのロングタスクの数。
action.resource.count数値このアクションについて収集されたすべてのリソースの数。
action.error.count数値このアクションについて収集されたすべてのエラーの数。

アクションの属性

属性タイプ説明
action.id文字列ユーザーアクションの UUID。
action.type文字列ユーザーアクションのタイプ。カスタムユーザーアクションの場合、custom に設定されます。
action.target.name文字列ユーザーが操作したエレメント。自動収集されたアクションのみ対象
action.name文字列作成されたユーザーフレンドリーな名称 (Click on #checkout など)。カスタムユーザーアクションの場合は、API コールで提供されたアクション名。

その他の参考資料