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

Androidデータモデル 🔗

Splunk Real User Monitoring (RUM) 用 Android エージェントは、Android アプリケーションに関する以下の種類のデータを収集します。

一般的なデータ型 🔗

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

トレース

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

スパン

トランザクション内の操作。1つのスパンには、論理名、操作の開始と終了のタイムスタンプ、取り込まれたデータにリンクされたイベントと属性が含まれます。スパンは、その親スパンへの参照と、0個以上の因果関係のあるスパンを持つことがあります。スパンには、ユニバーサル属性とカスタム属性があります。

セッション

1人のユーザーがある期間にわたってアプリケーションとやりとりした際にとったアクションに対応するトレースのコレクション。デフォルトでは、1つのセッションは、そのセッション内でキャプチャされた最後のイベントから15分経過するまで続きます。セッションの最大継続時間は4時間です。

インタラクション

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

ユーザー

デフォルトでは、Splunk RUM は ID データを収集しません。トレースを特定のユーザーにマッピングするには、手作業によるインストルメンテーションが必要です。ユーザーは、ユーザー名、メールアドレス、または合成識別子で表すことができます。合成識別子は、PII の規制によりユーザーを特定できない場合に便利です。

基本プロパティ 🔗

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

Name

タイプ

説明

id

文字列

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

parentId

文字列

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

name

文字列

スパンが表す論理演算。

duration

数字

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

traceId

文字列

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

timestamp

数字

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

tags

オブジェクト

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

annotations

配列

待ち時間を説明するイベントと、それが起こった時間を関連付けます。

デフォルト属性 🔗

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

Name

タイプ

説明

app

文字列

applicationName(String) を使って定義されたアプリケーション名。

splunk.rumSessionId

文字列

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

splunk.rum.previous_session_id

文字列

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

rum.sdk.version

文字列

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

net.host.connection.type

文字列

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

net.host.connection.subtype

文字列

接続の詳細。例えば、gprsedgeumts のような cell 接続のタイプ。

メトリクス 🔗

以下の表は、Splunk RUM for Android で利用可能なすべてのメトリクスの一覧です。Splunk RUM のすべてのエラーはディメンション sf_error=true を持っています。

Androidで定義されているアプリ起動メトリクスの詳細については、Android Developersドキュメントの「 App startup time 」を参照してください。

メトリクス名

UI名

説明

rum.workflow.count

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

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

rum.workflow.time.ns.p75

カスタムイベント期間

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

rum.crash.count

モバイルクラッシュ

指定された時間範囲内のクラッシュの総数。

rum.app_error.count

アプリエラー

指定された時間範囲内のANR、処理された例外、および報告されたエラーの総数。

rum.cold_start.time.ns.p75

コールドスタート時間

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

rum.cold_start.count

コールドスタート回数

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

rum.warm_start.count

ウォームスタート回数

指定された時間範囲内のウォームスタートの総数。

rum.warm_start.time.ns.p75

ウォームスタート時間

ウォームスタートの p75 の時間(ナノ秒)。

rum.hot_start.count

ホットスタート回数

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

rum.hot_start.time.ns.p75

ホットスタート時間

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

rum.resource_request.count

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

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

rum.resource_request.time.ns.p75

ネットワークまたはバックエンドのレイテンシ

指定された時間範囲におけるバックエンドのレイテンシのナノ秒単位のp75時間。

リソース属性 🔗

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

Name

タイプ

説明

deployment.environment

文字列

デプロイ環境の名前。たとえば、dev.:code:deploymentEnvironment(String) を使用して定義します。

device.model.identifier

文字列

デバイスのモデル識別子。例えば SM-G920F

device.model.name

文字列

デバイスのモデル名。例えば、Samsung Galaxy S6

os.name

文字列

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

os.type

文字列

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

os.version

文字列

android.os.Build.VERSION.RELEASE の値によって報告されるオペレーティング・システムのバージョン。例えば、8.1.0

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

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

クラッシュレポート 🔗

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

Name

タイプ

説明

thread.id

整数

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

thread.name

文字列

スレッドの名前。

exception.message

文字列

例外のメッセージ。

exception.type

文字列

例外のタイプ。

exception.stacktrace

文字列

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

exception.escaped

文字列

常に true 、クラッシュなどの捕捉されない例外を示します。

component

文字列

常に crash です。

status

文字列

常に Error です。

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

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

Name

タイプ

説明

network.status

文字列

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

net.host.connection.type

文字列

インターネット接続タイプ。指定可能な値は以下のとおりです: unavailable cellwifiunknownvpn

net.host.connection.subtype

文字列

接続タイプに関する詳細情報。例えば、GSMLTE のような、cell 接続のタイプ。

アプリケーションが応答しない(ANR) 🔗

ANR(Application Not Responding)イベント検出は、メインアプリケーションスレッドが5秒以上応答しない場合にスパンを生成します。

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

Name

タイプ

説明

exception.stacktrace

文字列

スタック・トレースは、言語ランタイムの自然な表現で文字列となります。

component

文字列

常に error です。

status

常に ERROR です。

低速レンダリング検出 🔗

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

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

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

Name

タイプ

説明

count

整数

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

HTTPクライアント 🔗

Android RUMエージェントには、OkHttpおよびVolley HTTPクライアントのインストルメンテーションが含まれています。インストルメンテーションを有効にするには、HTTPインストルメンテーション設定 を参照してください。

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

Name

タイプ

http.method

文字列

GETPOSTHEAD

http.url

文字列

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

http.flavor

文字列

1.0

http.status_code

整数

200404418

http.response_content_length

整数

3495 (バイト)

http.user_agent

文字列

CERN-LineMode/2.15 libwww/2.17b3

net.transport

文字列

IP.TCP

net.peer.name

文字列

example.com

net.peer.port

整数

808080443

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

Name

タイプ

説明

component

文字列

常に http です。

link.traceId

文字列

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

link.spanId

文字列

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

アクティビティライフサイクル監視 🔗

アクティビティライフサイクル監視は、アクティビティが状態を変更するたびにスパンを生成します。アクティビティライフサイクルのスパンは、その状態に応じて、次のいずれかの名前を持つことができます:

  • Created:初めてアクティビティを開始します。

  • Restarted アクティビティ停止後、アクティビティを再開します。

  • Resumed:一時停止後、アクティビティを再開します。

  • Paused:アクティビティは一時停止しています。

  • Stopped:アクティビティが停止します。

  • Destroyed:アクティビティが破壊されます。

アクティビティライフサイクルスパンには以下の属性があります:

Name

タイプ

説明

component

文字列

常に ui です。

activityName

文字列

アクティビティクラスの名前。

フラグメントのライフサイクル監視 🔗

フラグメントのライフサイクル監視は、フラグメントの状態が変化するたびにスパンを生成します。フラグメントのライフサイクル・スパンは、その状態に応じて、以下のいずれかの名前を持ちます:

  • Created:フラグメントがAndroidコンテキストにアタッチされる前。

  • Restored:フラグメントがそのビューを再現します。

  • Resumed:フラグメントは一時停止後に再開されます。

  • Paused:フラグメントは一時停止しています。

  • ViewDestroyed:フラグメントのビューが破壊されます

  • Destroyed:フラグメントが破壊されます。

  • Detached:フラグメントがAndroidコンテキストから切り離されます。

フラグメントのライフサイクル・スパンには、以下の属性が含まれます:

Name

タイプ

説明

component

文字列

常に ui です。

fragmentName

文字列

フラグメントクラスの名前。

アプリ起動監視 🔗

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

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

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

  • ウォーム・スタートは、コールド・スタートで行われる操作の一部がまだ行われているときに発生します。ウォームスタートはコールドスタートより速いが、ホットスタートより遅いスタートです。

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

Name

タイプ

説明

component

文字列

常に appstart です。

start.type

文字列

開始のタイプ。coldwarmhot のいずれかです。

位置情報データ 🔗

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

注釈

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

This page was last updated on 2023年08月30日.