概要

RUM iOS SDK は、メトリクスと属性が関連付けられたイベントを生成します。メトリクスとは、イベント関連の計測に使用される定量化可能な値のことです。属性は、分析でメトリクスデータをスライス(グループ化)するために使用する定量化できない値です。

RUM SDK は、メトリクスと属性が関連付けられたイベントを生成します。すべての RUM イベントには、すべてのデフォルト属性があります。例: デバイスタイプ (device.type)、名前 (usr.name) や 国 (geo.country) などのユーザー情報。

追加の特定のイベントタイプに固有のメトリクスと属性があります。たとえば、メトリクス view.time_spent は “view” イベントに関連付けられ、属性 resource.method は “resource” イベントに関連付けられます。

イベントタイプ保持説明
セッション30 日セッションは、モバイルアプリケーションでの実際のユーザージャーニーを表します。セッションはユーザーがアプリケーションを起動したときに開始され、ユーザーがアクティブである限りライブのままになります。ユーザージャーニー中、セッションの一部として生成されたすべての RUM イベントは、同じ session.id 属性を共有します。注: セッションは、15 分間操作されないとリセットされます。アプリケーションが OS によって強制終了された場合、アプリケーションがバックグラウンドにある間にセッションをリセットすることができます。
ビュー30 日ビューとは、モバイルアプリケーションの一意の画面(または画面の一部)のことです。UIViewController クラスの viewDidAppear(animated:)viewDidDisappear(animated:) コールバックが通知されると、ビューが起動・停止します。個々の UIViewControllers は異なるビューとして分類されます。ユーザーがビューを維持している間、RUM イベント属性(エラー、リソース、アクション)が一意の view.id と共にビューにアタッチされます。
Resource15 日リソースとは、モバイルアプリケーションのファーストパーティホスト、API、サードパーティプロバイダーへのネットワークリクエストのことです。ユーザーセッション中に生成されるすべてのリクエストは、一意の resource.id と共にビューにアタッチされます。
Error30 日エラーとは、モバイルアプリケーションにより送信される例外またはクラッシュで、それが生成されたビューにアタッチされます。
アクション30 日アクションとは、モバイルアプリケーションでのユーザーアクティビティ(例えば、アプリケーションの起動、タップ、スワイプ、または戻る)のことです。各アクションは、一意の action.id と共に、それが生成されたビューにアタッチされます。
ロングタスク15 日ロングタスクイベントは、指定された閾値以上の期間メインスレッドをブロックするアプリケーション内のすべてのタスクに対して生成されます。

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

RUM イベント階層

アプリケーションの起動

初期化中に、RUM iOS SDK は “ApplicationLaunch” と呼ばれるビューを作成します。このビューの開始時刻は iOS のプロセスの開始時刻と一致しており、アプリケーションの起動時刻を追跡するために使用することができます。

ApplicationLaunch ビューには、最初に startView を呼び出す前に作成されたすべてのログ、アクション、リソースが含まれます。このビューの継続時間を使用して、最初に表示するまでの時間を決定します。このビューには application_start というアクションがあり、継続時間はプロセス開始から applicationDidBecomeActive を呼び出すまでの時間に等しくなります。

iOS がアプリケーションのプリウォームを決定した場合、代わりに ApplicationLaunch ビューが RUM iOS SDK の初期化時に開始され、application_start イベントには継続時間がありません。

デフォルト属性

RUM は、すべてのイベントに共通の属性および以下に挙げたイベントに特定の属性をデフォルトで収集します。また、追加のイベントでユーザーセッションデータを強化し、アプリケーションの監視やビジネス分析のニーズに合わせてイベントをデフォルトに設定することも可能です。

共通のコア属性

属性名タイプ説明
date整数Epoch からのイベント開始時間 (ミリ秒)
type文字列イベントのタイプ (viewresource など)。
service文字列ユーザーセッションを関連付けるために使用した、このアプリケーションの統合サービス名
application.id文字列Datadog アプリケーション ID。
application.name文字列Datadog アプリケーション名。

デバイス

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

属性名タイプ説明
device.type文字列デバイスにより報告されたデバイスタイプ (System User-Agent)。
device.brand文字列デバイスにより報告されたデバイスのブランド (System User-Agent)。
device.model文字列デバイスにより報告されたデバイスモデル (System User-Agent)。
device.name文字列デバイスにより報告されたデバイス名 (System User-Agent)。

接続性

以下のネットワーク関連属性は、Datadog が収集したリソースイベントとエラーイベントに自動的にアタッチされます。

属性名タイプ説明
connectivity.status文字列デバイスのネットワーク到達可能性の状態 (connectednot connectedmaybe)。
connectivity.interfaces文字列利用可能なネットワークインターフェースのリスト (bluetoothcellularethernet、または wifi など)。
connectivity.cellular.technology文字列携帯電話の接続に使用される無線技術のタイプ。
connectivity.cellular.carrier_name文字列SIMを取り扱う事業者名。

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

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

属性名タイプ説明
os.name文字列デバイスにより報告された OS 名 (System User-Agent)。
os.version文字列デバイスにより報告される OS バージョン (System User-Agent)。
os.version_major文字列デバイスにより報告される OS バージョンメジャー (System User-Agent)。

地理的位置

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

注: 地理的位置の属性収集を停止したい場合は、アプリケーションの詳細で設定を変更してください。

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

グローバルユーザー属性

ユーザー情報の追跡をグローバルに有効にして、ユーザー属性を収集しすべての RUM イベントに適用できます。

属性名タイプ説明
usr.id文字列ユーザーの識別子。
usr.name文字列ユーザーの名前。
usr.email文字列ユーザーのメールアドレス。

イベント固有のメトリクスと属性

セッションメトリクス

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

セッション属性

属性名タイプ説明
session.id文字列セッションのユニーク ID。
session.type文字列セッションのタイプ (user)。
session.is_activeブール値セッションが現在アクティブであるかどうかを示します。セッションは、ユーザーがアプリケーションから移動したり、ブラウザウィンドウを閉じたりすると終了し、4 時間の活動または 15 分の非活動時間が経過すると失効します。
session.initial_view.url文字列セッションの初期ビューの URL。
session.initial_view.name文字列セッションの初期ビューの名前。
session.last_view.url文字列セッションの最後のビューの URL。
session.last_view.name文字列セッションの最後のビューの名前。
session.ip文字列インテークの TCP 接続から抽出されたセッションの IP アドレス。この属性の収集を停止したい場合は、アプリケーションの詳細で設定を変更してください。
session.useragent文字列デバイスの情報を解釈するためのシステムユーザーエージェントの情報。

ビューのメトリクス

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

メトリクスタイプ説明
view.time_spent数値(ns)このビューに費やされた時間。
view.long_task.count数値このビューについて収集されたすべてのロングタスクの数。
view.error.count数値このビューについて収集されたすべてのエラーの数。
view.resource.count数値このビューについて収集されたすべてのリソースの数。
view.action.count数値このビューについて収集されたすべてのアクションの数。
view.is_activeブール値このイベントに対応するビューがアクティブであるとみなされるかどうかを示します。

ビュー属性

属性名タイプ説明
view.id文字列イベントに対応する初期ビューのユニーク ID。
view.url文字列イベントに対応する UIViewController クラスの URL。
view.name文字列イベントに対応する、カスタマイズ可能なビューの名前。

リソースのメトリクス

メトリクスタイプ説明
resource.duration数値リソースのロードにかかった全時間。
resource.size数値(バイト)リソースのサイズ。
resource.connect.duration数値(ns)サーバーへの接続が確立されるまでにかかった時間 (connectEnd - connectStart)。
resource.ssl.duration数値(ns)TLS ハンドシェイクに費やされた時間。
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.id文字列リソースの一意の識別子。
resource.type文字列収集されるリソースのタイプ (xhrimagefontcss、または js など)。
resource.method文字列HTTP メソッド (POSTGET PATCH、または DELETE など)。
resource.status_code数値応答ステータスコード。
resource.url文字列リソースの URL。
resource.provider.name文字列リソースプロバイダー名。デフォルトは unknown となります。
resource.provider.domain文字列リソースプロバイダーのドメイン。
resource.provider.type文字列リソースプロバイダーのタイプ (first-partycdnad、または analytics など)。

エラー属性

フロントエンドのエラーはリアルタイムモニタリング (RUM) で収集されます。エラーメッセージとスタックトレースが利用できる場合は含まれます。

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

ネットワークエラー

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

属性タイプ説明
error.resource.status_code数値応答ステータスコード。
error.resource.method文字列HTTP メソッド (POST または GET など)。
error.resource.url文字列リソースの URL。
error.resource.provider.name文字列リソースプロバイダー名。デフォルトは unknown となります。
error.resource.provider.domain文字列リソースプロバイダーのドメイン。
error.resource.provider.type文字列リソースプロバイダーのタイプ (first-partycdnad、または analytics など)。

アクションメトリクス

メトリクスタイプ説明
action.loading_time数値(ns)アクションのロード時間。
action.long_task.count数値このアクションについて収集されたすべてのロングタスクの数。
action.resource.count数値このアクションにより発生したすべてのリソースの数。
action.error.count数値このアクションにより発生したすべてのエラーの数。

アクションの属性

属性タイプ説明
action.id文字列ユーザーアクションの UUID。
action.type文字列ユーザーアクションのタイプ (tap または application_start など)。
action.name文字列ユーザーアクションの名前。
action.target.name文字列ユーザーが操作したエレメント。自動収集されたアクションのみ対象。

データストレージ

データは Datadog にアップロードされる前に、アプリケーションサンドボックスのキャッシュディレクトリ (Library/Caches) に平文で保存され、デバイスにインストールされた他のアプリからは読み取ることができません。

その他の参考資料