Docs » Splunk Observability Cloud でサポートされているインテグレーション » モバイルおよび Web アプリケーションを Splunk RUM でインストルメンテーションする » Splunk RUM に iOS アプリケーションをインストルメンテーションする » iOS RUMデータモデル

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名

説明

rum.workflow.count

カスタムイベント・カウント

指定された時間範囲内で選択されたカスタムイベントを持つスパンの総数。

rum.workflow.time.ns.p75

カスタムイベント期間

指定された時間範囲内で、選択されたカスタムイベントを持つスパンのp75時間(ナノ秒単位)。

rum.crash.count

モバイルクラッシュ

クラッシュは、ユーザーがエラーに遭遇し、アプリを終了しなければならないときに発生します。

rum.app_error.count

アプリエラー

指定された時間範囲内で報告されたエラーの総数。

rum.resource_request.count

ネットワークまたはバックエンドのリクエスト/エラー

指定された時間範囲内のネットワークリクエストの総数。

rum.resource_request.time.ns.p75

ネットワーク・バックエンドのレイテンシ

指定された時間範囲内のネットワーク要求レイテンシのp75時間(ナノ秒)。

rum.cold_start.time.ns.p75

コールドスタート時間

指定された時間範囲内でのコールドスタートのp75時間(ナノ秒)。

rum.cold_start.count

コールドスタート回数

指定された時間範囲内のコールドスタートの総数。

rum.hot_start.count

ホットスタート回数

指定された時間範囲内でのホットスタートの総数。

rum.hot_start.time.ns.p75

ホットスタート時間

ホットスタートの p75 の時間(ナノ秒)。

基本プロパティ 🔗

以下のプロパティは、Splunk RUM 用のインストルメンテーションを行うすべてのアプリケーションに共通です:

Name

タイプ

説明

SpanId

文字列

トレース内のスパンに対して生成される一意の64ビット識別子。

ParentSpanId

文字列

親スパンID。スパンがトレース内のルート・スパンである場合は存在しません。

name

文字列

スパンが表す論理演算。

duration

数字

持続時間(マイクロ秒)。

traceId

文字列

トレースに属するすべてのスパンに設定される一意の128ビット識別子。

timestamp

数字

スパン開始のマイクロ秒単位。未完成の場合は、なくてもかまいません。

tags

オブジェクト

特定のタグに基づくスパンの検索と分析を可能にする追加コンテキスト。

TraceFlags

Struct

グローバル トレース オプションを表します。オプションはすべての子スパンに伝搬され、スパンがトレースされるかどうかなどの機能を決定します。

TraceState

Struct

トレースシステム固有のコンテキストをキーと値のペアのリストで持ち越します。

SpanKind

Enum

スパンのタイプ。スパン間の追加関係を設定するために使用します。デフォルト値は Internal です。

サポートされる値は以下の通りです:

  • Internal

  • Server

  • Client

  • Producer

  • consumer

次の表では、SpanKind の各値について説明します:

Name

説明

Internal

デフォルト値。スパンが内部的に使用されることを示します。

Server

このスパンが、RPCやその他のリモートリクエストのサーバーサイドでの処理をカバーしていることを示します。

Client

スパンがRPCや他のリモートリクエストのクライアント側ラッパーをカバーしていることを示します。

Producer

スパンが、プロデューサーがブローカーにメッセージを送信することを示します。

Consumer

スパンが、ブローカーからメッセージを受信するコンシューマーを記述していることを示します。

デフォルト属性 🔗

デフォルトでは、iOSのRUMライブラリはすべてのスパンに以下の属性を追加します:

Name

タイプ

説明

app

文字列

using(Bundle.main.infoDictionary) で定義されているアプリケーション名。

splunk.rumSessionId

文字列

Splunk RUM がランダムに生成するセッション識別子。個人を特定できる情報は含まれていません。

splunk.rum.previous_session_id

文字列

現在のセッションの前のセッションの識別子。splunk.rumSessionId 属性に変更があった場合のみ設定します。

splunk.rum.version

文字列

アプリケーションをインストルメンテーションする Splunk RUM SDK のバージョン。

net.host.connection.type

文字列

デバイスが使用する接続タイプ。指定可能な値には、wificellunavailableunknown があります。

リソース属性 🔗

デフォルトでは、iOS RUMライブラリはすべてのスパンに以下のリソース属性を追加します:

Name

タイプ

説明

environment

文字列

デプロイ環境の名前。たとえば、devdeploymentEnvironment(environment: <string>) を使用して定義します。

device.model.name

文字列

デバイスのモデル名。

os.name

文字列

常に iOS に設定されています。

os.version

文字列

オペレーティングシステムのバージョン。

component

文字列

スパンの構成要素。例えば、appstart

thread.name

文字列

スレッド名。SplunkRum.initialize はメインスレッドにのみ適用されます。

インストルメンテーションの属性 🔗

iOS RUM ライブラリは、インストルメンテーションを使用して以下のデータを収集します。特定のインストルメンテーションを有効または無効にするには、インストルメンテーション設定 を参照してください。

クラッシュレポート 🔗

iOS RUMライブラリは、捕捉されない例外を表すスパンに以下のクラッシュレポート属性を追加します:

Name

タイプ

説明

thread.id

整数

オペレーティングシステムのスレッドIDではなく、現在の管理対象スレッドのID。

thread.name

文字列

スレッドの名前。

exception.message

文字列

例外のメッセージ。

exception.type

文字列

例外のタイプ。

exception.stacktrace

文字列

例外のスタックトレース。

component

文字列

常に crash です。

status

文字列

常に Error です。

crash.timestamp

NSDate

クラッシュレポートが作成された日時。

crash.address

整数

欠陥のある命令のアドレス。

ネットワークモニタリング 🔗

ネットワークモニタリングは、network.change という名前と以下の属性を持つスパンを生成します:

Name

タイプ

説明

network.status

文字列

ネットワークステータス。lost または available のいずれか。

net.host.connection.type

文字列

接続タイプ。可能な値は以下のとおりです: unavailablecellwifiunknownvpn

低速レンダリング検出 🔗

低速レンダリング検出は、低速またはフリーズしたフレームレンダリングを検出するたびにスパンを生成します。フレームレンダリングの時間が16ミリ秒を超えるとスロー、700ミリ秒を超えるとフリーズとなります。

低速レンダリング検出は、インターバルごとに最大2つのスパンを生成します。slowRenders というスパンはスローフレームをカウントし、frozenRenders というスパンはフリーズフレームをカウントします。

低速レンダリング検出スパンには以下の属性があります:

Name

タイプ

説明

count

整数

1つのインターバル中に観測されたスローまたはフリーズしたフレームの数。インターバルはデフォルトで1秒。ポーリング間隔の継続時間を変更するには、slowFrameDetectionThresholdMs および frozenFrameDetectionThresholdMs の設定に、ミリ秒単位で正の継続時間を渡します。

HTTPクライアント 🔗

iOS RUM ライブラリには、NSURLConnection クライアントのインストルメンテーションが含まれています。インストルメンテーションを有効にするには、インストルメンテーション設定 を参照してください。

HTTP クライアント・インストルメンテーションは、以下の OpenTelemetry HTTP 属性を収集します:

Name

タイプ

http.method

文字列

GETPOSTHEAD

http.url

文字列

https://foo.bar/address?q=value#hash

http.status_code

整数

200404418

http.response_content_length

整数

3495 (バイト)

HTTPインストルメンテーションは、以下の属性も収集します:

Name

タイプ

説明

component

文字列

常に http です。

link.traceId

文字列

Server-Timing ヘッダーから抽出された、対応するバックエンド (APM) スパンのトレース ID。詳細は RUM と Splunk APM をリンクする を参照してください。

link.spanId

文字列

Server-Timing ヘッダーから抽出した、対応するバックエンド(APM)スパンのスパンID。詳細は RUM と Splunk APM をリンクする を参照してください。

UIアクションのモニタリング 🔗

UIActionモニタリングは以下の属性を収集します:

Name

タイプ

説明

action.name

文字列

エンドユーザーが定義したUI要素の名前。

target.type

文字列

イベントが発生した画面の名前。

sender.type

メソッドを呼び出すUI要素。

event.type

Enum

イベントの種類。

画面遷移の監視 🔗

画面遷移の監視は、画面の状態が変化するたびにスパンを生成します。画面遷移のスパンは、その状態に応じて以下のいずれかの名前を持ちます:

  • ResignActive:アプリが非アクティブになることをデリゲートに伝えます。

  • EnterForeground:アプリがフォアグラウンドに入ろうとしていることをデリゲートに伝えます。

  • AppTerminating:アプリの終了をデリゲートに伝えます。

  • PresentationTransition:アプリが初めてアクティブになったことをデリゲートに伝えます。

画面遷移スパンには以下の属性が含まれます:

Name

タイプ

説明

component

文字列

常に app-lifecycle です。

アプリ起動監視 🔗

アプリの起動監視機能は、アプリがコールド、ウォーム、ホットスタートを行うたびにスパンを生成します。

  • コールドスタートは、ユーザーが携帯電話を起動してから初めてアプリを開いたとき、またはユーザーがアプリを終了した後に発生します。

  • ホットスタートは、システムがアプリをフォアグラウンドにするときに発生します。アプリがすでにロードされているため、ホットスタートはコールドスタートよりも高速です。

App start monitoringは、AppStart という名前と以下の属性を持つスパンを生成します:

Name

タイプ

説明

component

文字列

常に appstart です。

start.type

文字列

開始のタイプ。cold または hot のいずれかです。

位置情報データ 🔗

Splunk RUM for iOS API を使用して位置情報の緯度と経度を設定した場合、Splunk Observability Cloud はその情報を使用して、国や都市などのユーザーの地理的位置をマッピングします。

オプション

タイプ

説明

setLocation

ダブル

緯度と経度は、すべてのスパンとイベントに付加されます。

注釈

Splunk Observability Cloud は緯度と経度から地理的メタデータを計算し、データ処理後に緯度と経度を削除します。

This page was last updated on 2023年07月24日.