React Native RUMデータモデル

Splunk Real User Monitoring (RUM) を使用して React Native アプリケーションから収集する RUM データを理解します。

React Native RUMエージェントには、React Nativeアプリケーションに関する以下の種類のデータを収集するパッケージが含まれています。

一般的なデータ型

Splunk RUM データモデルは、OpenTelemetry の規約に従って、以下の論理エンティティを表します:

トレース

単一の論理的な操作の結果としてトリガーされる一連のイベントで、アプリケーションのさまざまなコンポーネントに分散されます。トレースには、プロセス、ネットワーク、およびセキュリティの境界を越えたイベントが含まれます。RUM トレースは、たとえば、誰かが Web サイト上でアクションを開始するためにボタンをタップしたときに開始されます。RUM と APM を併用する場合、トレースは、ユーザーアクションによって開始される要求を処理するダウンストリームサービス間で行われたコールを表します。

スパン

トランザクション内の操作。単一スパンには、論理的な名前、操作の開始および終了タイムスタンプ、およびキャプチャされたデータにリンクされたイベントと属性が含まれます。スパンは、親スパンと、0 個以上の隣接するスパンへの参照を持っている場合があります。スパンには、ユニバーサル属性とカスタム属性があります。

セッション

一定期間にわたってアプリケーションと対話した際に単一のユーザーが実行したアクションに対応するトレースのコレクション。デフォルトでは、セッションは、セッションでキャプチャされた最後のイベントから 15 分が経過するまで持続します。最大セッション時間は 4 時間です。

インタラクション

ユーザーがユーザーインターフェイス内で実行するアクションが反映されます。一般的なインタラクションの種類には、マウスのクリック、タッチスクリーンのタップ、キーボードイベントなどがあります。

ユーザー

デフォルトでは、Splunk RUM はアイデンティティデータを収集しません。トレースを特定のユーザーにマッピングするには、手動のインストルメンテーションが必要です。ユーザーは、ユーザー名、電子メールアドレス、または合成識別子で表すことができます。合成表現は、PII 規制によりユーザーの識別が許可されていない状況で役立ちます。

基本プロパティ

以下のプロパティは、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

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

デフォルト属性

デフォルトでは、React Native RUMエージェントは、すべてのスパンに以下の属性を追加します:

Name

タイプ

説明

splunk.rumSessionId

文字列

セッション識別子。Splunk RUM によってランダムに生成されます。個人識別情報を含みません。

splunk.rum.previous_session_id

文字列

現在のセッションに先行するセッションの識別子。splunk.rumSessionId 属性に変更がある場合にのみ設定されます。

splunk.rumVersion

文字列

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

リソース属性

デフォルトでは、React Native RUMエージェントは、すべてのスパンに以下のリソース属性を追加します:

Name

タイプ

説明

device.model.name

文字列

デバイスのモデル名。

device.model.identifier

文字列

デバイスの識別子または名前。

os.name

文字列

オペレーティングシステム名使用可能な値は iOSAndroid です。

os.type

文字列

常に linux に設定されています。Android でのみ使用できます。

os.version

文字列

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

screen.name

文字列

React Navigationインストルメンテーションが有効になっている場合は、画面の名前が含まれます。

last.screen.name

文字列

React Navigationインストルメンテーションが有効な場合、最後の画面の名前が含まれます。

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

React Native RUMエージェントは、インストルメンテーションを使用して以下のデータを収集します。

エラー

React Native RUMエージェントは、エラーを表すスパンに以下の属性を追加します:

Name

タイプ

説明

error.isFatal

ブーリアン

致命的な例外かどうか。

error.message

文字列

例外を説明するメッセージ。

error.object

文字列

エラーオブジェクト。

error.stack

文字列

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

XHR/FETCH

XHR/FETCHモニタリングは、HTTP <http-method> という名前と以下の属性を持つスパンを生成します:

Name

タイプ

説明

http.method

文字列

リクエストの HTTP メソッド。

http.status_code

文字列

リクエストが返すステータスコード。

http.url

文字列

リクエストのURL。

link.traceId

文字列

関連するトレース識別子。「RUM と Splunk APM をリンクする」を参照してください。

link.spanId

文字列

関連するトレース識別子。「RUM と Splunk APM をリンクする」を参照してください。

React Navigation

ナビゲーション・モニタリングは、Created という名前と以下の属性を持つスパンを生成します:

Name

タイプ

component

文字列

ui

アプリ起動監視

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

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

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

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

Name

タイプ

説明

component

文字列

常に appstart です。

start.type

文字列

開始のタイプです。cold または hot を指定できます。