iOS RUMデータモデル 🔗
iOS RUMライブラリには、iOSアプリケーションに関する以下のタイプのデータを収集するパッケージが含まれています。
一般的なデータ型 🔗
Splunk RUM データモデルは、OpenTelemetry の規約に従って、以下の論理エンティティを表します:
トレース |
アプリケーションの様々なコンポーネントに分散された、1つの論理操作の結果としてトリガーされるイベントのセット。トレースには、プロセス、ネットワーク、セキュリティの境界を越えるイベントが含まれます。RUM のトレースは、例えば、誰かがウェブサイト上でアクションを開始するためにボタンをタップしたときに開始することができます。RUMとAPMを併用する場合、トレースは、ユーザーアクションによって開始されたリクエストを処理するダウンストリームサービス間のコールを表します。 |
スパン |
トランザクション内の操作。1つのスパンには、論理名、操作の開始と終了のタイムスタンプ、取り込まれたデータにリンクされたイベントと属性が含まれます。スパンは、その親スパンへの参照と、0個以上の因果関係のあるスパンを持つことがあります。スパンには、ユニバーサル属性とカスタム属性があります。 |
セッション |
1人のユーザーがある期間にわたってアプリケーションとやりとりした際にとったアクションに対応するトレースのコレクション。デフォルトでは、1つのセッションは、そのセッション内でキャプチャされた最後のイベントから15分経過するまで続きます。セッションの最大継続時間は4時間です。 |
インタラクション |
ユーザーがユーザーインターフェイス内で行ったアクションを反映します。一般的なインタラクションの種類には、マウスのクリック、タッチスクリーンのタップ、キーボードイベントなどがあります。 |
ユーザー |
デフォルトでは、Splunk RUM は ID データを収集しません。トレースを特定のユーザーにマッピングするには、手作業によるインストルメンテーションが必要です。ユーザーは、ユーザー名、メールアドレス、または合成識別子で表すことができます。合成識別子は、PII の規制によりユーザーを特定できない場合に便利です。 |
メトリクス 🔗
以下の表は、Splunk RUM for iOS で利用可能なすべてのメトリクスの一覧です。
メトリクス名 |
UI名 |
説明 |
---|---|---|
|
カスタムイベント・カウント |
指定された時間範囲内で選択されたカスタムイベントを持つスパンの総数。 |
|
カスタムイベント期間 |
指定された時間範囲内で、選択されたカスタムイベントを持つスパンのp75時間(ナノ秒単位)。 |
|
モバイルクラッシュ |
クラッシュは、ユーザーがエラーに遭遇し、アプリを終了しなければならないときに発生します。 |
|
アプリエラー |
指定された時間範囲内で報告されたエラーの総数。 |
|
ネットワークまたはバックエンドのリクエスト/エラー |
指定された時間範囲内のネットワークリクエストの総数。 |
|
ネットワーク・バックエンドのレイテンシ |
指定された時間範囲内のネットワーク要求レイテンシのp75時間(ナノ秒)。 |
|
コールドスタート時間 |
指定された時間範囲内でのコールドスタートのp75時間(ナノ秒)。 |
|
コールドスタート回数 |
指定された時間範囲内のコールドスタートの総数。 |
|
ホットスタート回数 |
指定された時間範囲内でのホットスタートの総数。 |
|
ホットスタート時間 |
ホットスタートの p75 の時間(ナノ秒)。 |
基本プロパティ 🔗
以下のプロパティは、Splunk RUM 用のインストルメンテーションを行うすべてのアプリケーションに共通です:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
トレース内のスパンに対して生成される一意の64ビット識別子。 |
|
文字列 |
親スパンID。スパンがトレース内のルート・スパンである場合は存在しません。 |
|
文字列 |
スパンが表す論理演算。 |
|
数字 |
持続時間(マイクロ秒)。 |
|
文字列 |
トレースに属するすべてのスパンに設定される一意の128ビット識別子。 |
|
数字 |
スパン開始のマイクロ秒単位。未完成の場合は、なくてもかまいません。 |
|
オブジェクト |
特定のタグに基づくスパンの検索と分析を可能にする追加コンテキスト。 |
|
Struct |
グローバル トレース オプションを表します。オプションはすべての子スパンに伝搬され、スパンがトレースされるかどうかなどの機能を決定します。 |
|
Struct |
トレースシステム固有のコンテキストをキーと値のペアのリストで持ち越します。 |
|
Enum |
スパンのタイプ。スパン間の追加関係を設定するために使用します。デフォルト値は サポートされる値は以下の通りです:
|
次の表では、SpanKind
の各値について説明します:
Name |
説明 |
---|---|
|
デフォルト値。スパンが内部的に使用されることを示します。 |
|
このスパンが、RPCやその他のリモートリクエストのサーバーサイドでの処理をカバーしていることを示します。 |
|
スパンがRPCや他のリモートリクエストのクライアント側ラッパーをカバーしていることを示します。 |
|
スパンが、プロデューサーがブローカーにメッセージを送信することを示します。 |
|
スパンが、ブローカーからメッセージを受信するコンシューマーを記述していることを示します。 |
デフォルト属性 🔗
デフォルトでは、iOSのRUMライブラリはすべてのスパンに以下の属性を追加します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
|
|
文字列 |
Splunk RUM がランダムに生成するセッション識別子。個人を特定できる情報は含まれていません。 |
|
文字列 |
現在のセッションの前のセッションの識別子。 |
|
文字列 |
アプリケーションをインストルメンテーションする Splunk RUM SDK のバージョン。 |
|
文字列 |
デバイスが使用する接続タイプ。指定可能な値には、 |
リソース属性 🔗
デフォルトでは、iOS RUMライブラリはすべてのスパンに以下のリソース属性を追加します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
デプロイ環境の名前。たとえば、 |
|
文字列 |
デバイスのモデル名。 |
|
文字列 |
常に |
|
文字列 |
オペレーティングシステムのバージョン。 |
|
文字列 |
スパンの構成要素。例えば、 |
|
文字列 |
スレッド名。 |
インストルメンテーションの属性 🔗
iOS RUM ライブラリは、インストルメンテーションを使用して以下のデータを収集します。特定のインストルメンテーションを有効または無効にするには、インストルメンテーション設定 を参照してください。
クラッシュレポート 🔗
iOS RUMライブラリは、捕捉されない例外を表すスパンに以下のクラッシュレポート属性を追加します:
Name |
タイプ |
説明 |
---|---|---|
|
整数 |
オペレーティングシステムのスレッドIDではなく、現在の管理対象スレッドのID。 |
|
文字列 |
スレッドの名前。 |
|
文字列 |
例外のメッセージ。 |
|
文字列 |
例外のタイプ。 |
|
文字列 |
例外のスタックトレース。 |
|
文字列 |
常に |
|
文字列 |
常に |
|
NSDate |
クラッシュレポートが作成された日時。 |
|
整数 |
欠陥のある命令のアドレス。 |
ネットワークモニタリング 🔗
ネットワークモニタリングは、network.change
という名前と以下の属性を持つスパンを生成します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
ネットワークステータス。 |
|
文字列 |
接続タイプ。可能な値は以下のとおりです: |
低速レンダリング検出 🔗
低速レンダリング検出は、低速またはフリーズしたフレームレンダリングを検出するたびにスパンを生成します。フレームレンダリングの時間が16ミリ秒を超えるとスロー、700ミリ秒を超えるとフリーズとなります。
低速レンダリング検出は、インターバルごとに最大2つのスパンを生成します。slowRenders
というスパンはスローフレームをカウントし、frozenRenders
というスパンはフリーズフレームをカウントします。
低速レンダリング検出スパンには以下の属性があります:
Name |
タイプ |
説明 |
---|---|---|
|
整数 |
1つのインターバル中に観測されたスローまたはフリーズしたフレームの数。インターバルはデフォルトで1秒。ポーリング間隔の継続時間を変更するには、 |
HTTPクライアント 🔗
iOS RUM ライブラリには、NSURLConnection クライアントのインストルメンテーションが含まれています。インストルメンテーションを有効にするには、インストルメンテーション設定 を参照してください。
HTTP クライアント・インストルメンテーションは、以下の OpenTelemetry HTTP 属性を収集します:
Name |
タイプ |
例 |
---|---|---|
|
文字列 |
|
|
文字列 |
|
|
整数 |
|
|
整数 |
|
HTTPインストルメンテーションは、以下の属性も収集します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
|
文字列 |
|
|
文字列 |
|
UIアクションのモニタリング 🔗
UIActionモニタリングは以下の属性を収集します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
エンドユーザーが定義したUI要素の名前。 |
|
文字列 |
イベントが発生した画面の名前。 |
|
メソッドを呼び出すUI要素。 |
|
|
Enum |
イベントの種類。 |
画面遷移の監視 🔗
画面遷移の監視は、画面の状態が変化するたびにスパンを生成します。画面遷移のスパンは、その状態に応じて以下のいずれかの名前を持ちます:
ResignActive
:アプリが非アクティブになることをデリゲートに伝えます。EnterForeground
:アプリがフォアグラウンドに入ろうとしていることをデリゲートに伝えます。AppTerminating
:アプリの終了をデリゲートに伝えます。PresentationTransition
:アプリが初めてアクティブになったことをデリゲートに伝えます。
画面遷移スパンには以下の属性が含まれます:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
アプリ起動監視 🔗
アプリの起動監視機能は、アプリがコールド、ウォーム、ホットスタートを行うたびにスパンを生成します。
コールドスタートは、ユーザーが携帯電話を起動してから初めてアプリを開いたとき、またはユーザーがアプリを終了した後に発生します。
ホットスタートは、システムがアプリをフォアグラウンドにするときに発生します。アプリがすでにロードされているため、ホットスタートはコールドスタートよりも高速です。
App start monitoringは、AppStart
という名前と以下の属性を持つスパンを生成します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
|
文字列 |
開始のタイプ。 |
位置情報データ 🔗
Splunk RUM for iOS API を使用して位置情報の緯度と経度を設定した場合、Splunk Observability Cloud はその情報を使用して、国や都市などのユーザーの地理的位置をマッピングします。
オプション |
タイプ |
説明 |
---|---|---|
|
ダブル |
緯度と経度は、すべてのスパンとイベントに付加されます。 |
注釈
Splunk Observability Cloud は緯度と経度から地理的メタデータを計算し、データ処理後に緯度と経度を削除します。