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 |
タイプ |
説明 |
---|---|---|
|
文字列 |
トレース内のスパンに対して生成される一意の64ビット識別子。 |
|
文字列 |
親スパンID。スパンがトレース内のルート・スパンである場合は存在しません。 |
|
文字列 |
スパンが表す論理演算。 |
|
数字 |
持続時間(マイクロ秒)。 |
|
文字列 |
トレースに属するすべてのスパンに設定される一意の128ビット識別子。 |
|
数字 |
スパン開始のマイクロ秒単位。未完成の場合は、なくてもかまいません。 |
|
オブジェクト |
特定のタグに基づくスパンの検索と分析を可能にする追加コンテキスト。 |
|
配列 |
待ち時間を説明するイベントと、それが起こった時間を関連付けます。 |
デフォルト属性 🔗
デフォルトでは、Android RUMエージェントはすべてのスパンに以下の属性を追加します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
|
|
文字列 |
Splunk RUM が生成するランダムなセッション識別子。個人を特定できる情報は含まれていません。 |
|
文字列 |
現在のセッションの前のセッションの識別子。 |
|
文字列 |
アプリケーションをインストルメンテーションする Splunk RUM SDK のバージョン。 |
|
文字列 |
デバイスが使用する接続タイプ。指定可能な値には、 |
|
文字列 |
接続の詳細。例えば、 |
メトリクス 🔗
以下の表は、Splunk RUM for Android で利用可能なすべてのメトリクスの一覧です。Splunk RUM のすべてのエラーはディメンション sf_error=true
を持っています。
Androidで定義されているアプリ起動メトリクスの詳細については、Android Developersドキュメントの「 App startup time 」を参照してください。
メトリクス名 |
UI名 |
説明 |
---|---|---|
|
カスタムイベント・カウント |
指定された時間範囲内で選択されたカスタムイベントを持つスパンの総数。 |
|
カスタムイベント期間 |
指定された時間範囲内で、選択されたカスタムイベントを持つスパンのp75時間(ナノ秒単位)。 |
|
モバイルクラッシュ |
指定された時間範囲内のクラッシュの総数。 |
|
アプリエラー |
指定された時間範囲内のANR、処理された例外、および報告されたエラーの総数。 |
|
コールドスタート時間 |
指定された時間範囲内でのコールドスタートのp75時間(ナノ秒)。 |
|
コールドスタート回数 |
指定された時間範囲内のコールドスタートの総数。 |
|
ウォームスタート回数 |
指定された時間範囲内のウォームスタートの総数。 |
|
ウォームスタート時間 |
ウォームスタートの p75 の時間(ナノ秒)。 |
|
ホットスタート回数 |
指定された時間範囲内でのホットスタートの総数。 |
|
ホットスタート時間 |
ホットスタートの p75 の時間(ナノ秒)。 |
|
ネットワークまたはバックエンドのリクエスト/エラー |
指定された時間範囲内のネットワークリクエストの総数。 |
|
ネットワークまたはバックエンドのレイテンシ |
指定された時間範囲におけるバックエンドのレイテンシのナノ秒単位のp75時間。 |
リソース属性 🔗
デフォルトでは、Android RUMエージェントはすべてのスパンに以下のリソース属性を追加します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
デプロイ環境の名前。たとえば、 |
|
文字列 |
デバイスのモデル識別子。例えば |
|
文字列 |
デバイスのモデル名。例えば、 |
|
文字列 |
常に |
|
文字列 |
常に |
|
文字列 |
|
インストルメンテーションの属性 🔗
Android RUM エージェントは、インストルメンテーションを使用して以下のデータを収集します。特定のインストルメンテーションを有効または無効にするには、インストルメンテーション設定 を参照してください。
クラッシュレポート 🔗
Android RUMエージェントは、捕捉されない例外を表すスパンに以下のクラッシュレポート属性を追加します:
Name |
タイプ |
説明 |
---|---|---|
|
整数 |
オペレーティングシステムのスレッドIDではなく、現在の管理対象スレッドのID。 |
|
文字列 |
スレッドの名前。 |
|
文字列 |
例外のメッセージ。 |
|
文字列 |
例外のタイプ。 |
|
文字列 |
例外のスタックトレース。 |
|
文字列 |
常に |
|
文字列 |
常に |
|
文字列 |
常に |
ネットワークモニタリング 🔗
ネットワークモニタリングは、network.change
という名前と以下の属性を持つスパンを生成します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
ネットワークステータス。 |
|
文字列 |
インターネット接続タイプ。指定可能な値は以下のとおりです: |
|
文字列 |
接続タイプに関する詳細情報。例えば、 |
アプリケーションが応答しない(ANR) 🔗
ANR(Application Not Responding)イベント検出は、メインアプリケーションスレッドが5秒以上応答しない場合にスパンを生成します。
ANRは、ANR
という名前と以下の属性を持つスパンを生成します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
スタック・トレースは、言語ランタイムの自然な表現で文字列となります。 |
|
文字列 |
常に |
|
常に |
低速レンダリング検出 🔗
低速レンダリング検出は、低速またはフリーズしたフレームレンダリングを検出するたびにスパンを生成します。フレームレンダリングの時間が16ミリ秒を超えるとスロー、700ミリ秒を超えるとフリーズとなります。
低速レンダリング検出は、インターバルごとに最大2つのスパンを生成します。slowRenders
というスパンはスローフレームをカウントし、frozenRenders
というスパンはフリーズフレームをカウントします。
低速レンダリング検出スパンには以下の属性があります:
Name |
タイプ |
説明 |
---|---|---|
|
整数 |
1つのインターバル中に観察されたスローまたはフリーズしたフレームの数。デフォルトではインターバルは1秒です。ポーリング間隔の継続時間を変更するには、 |
HTTPクライアント 🔗
Android RUMエージェントには、OkHttpおよびVolley HTTPクライアントのインストルメンテーションが含まれています。インストルメンテーションを有効にするには、HTTPインストルメンテーション設定 を参照してください。
HTTP クライアント・インストルメンテーションは、以下の OpenTelemetry HTTP 属性を収集します:
Name |
タイプ |
例 |
---|---|---|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
整数 |
|
|
整数 |
|
|
文字列 |
|
|
文字列 |
|
|
文字列 |
|
|
整数 |
|
HTTPインストルメンテーションは、以下の属性も収集します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
|
文字列 |
|
|
文字列 |
|
アクティビティライフサイクル監視 🔗
アクティビティライフサイクル監視は、アクティビティが状態を変更するたびにスパンを生成します。アクティビティライフサイクルのスパンは、その状態に応じて、次のいずれかの名前を持つことができます:
Created
:初めてアクティビティを開始します。Restarted
アクティビティ停止後、アクティビティを再開します。Resumed
:一時停止後、アクティビティを再開します。Paused
:アクティビティは一時停止しています。Stopped
:アクティビティが停止します。Destroyed
:アクティビティが破壊されます。
アクティビティライフサイクルスパンには以下の属性があります:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
|
文字列 |
アクティビティクラスの名前。 |
フラグメントのライフサイクル監視 🔗
フラグメントのライフサイクル監視は、フラグメントの状態が変化するたびにスパンを生成します。フラグメントのライフサイクル・スパンは、その状態に応じて、以下のいずれかの名前を持ちます:
Created
:フラグメントがAndroidコンテキストにアタッチされる前。Restored
:フラグメントがそのビューを再現します。Resumed
:フラグメントは一時停止後に再開されます。Paused
:フラグメントは一時停止しています。ViewDestroyed
:フラグメントのビューが破壊されますDestroyed
:フラグメントが破壊されます。Detached
:フラグメントがAndroidコンテキストから切り離されます。
フラグメントのライフサイクル・スパンには、以下の属性が含まれます:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
|
文字列 |
フラグメントクラスの名前。 |
アプリ起動監視 🔗
アプリの起動監視機能は、アプリがコールド、ウォーム、ホットスタートを行うたびにスパンを生成します。
コールドスタートは、ユーザーが携帯電話を起動してから初めてアプリを開いたとき、またはユーザーがアプリを終了した後に発生します。
ホットスタートは、システムがアプリをフォアグラウンドにするときに発生します。アプリがすでにロードされているため、ホットスタートはコールドスタートよりも高速です。
ウォーム・スタートは、コールド・スタートで行われる操作の一部がまだ行われているときに発生します。ウォームスタートはコールドスタートより速いが、ホットスタートより遅いスタートです。
App start monitoringは、AppStart
という名前と以下の属性を持つスパンを生成します:
Name |
タイプ |
説明 |
---|---|---|
|
文字列 |
常に |
|
文字列 |
開始のタイプ。 |
位置情報データ 🔗
Splunk RUM for Android API を使用して位置情報の緯度と経度を設定した場合、Splunk Observability Cloud はその情報を使用して国や都市などのユーザーの地理的位置をマッピングします。
注釈
Splunk Observability Cloud は、緯度と経度から地理的メタデータを計算し、データ処理後に緯度と経度を削除します。