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

Splunk Android RUM インストルメンテーションを設定する 🔗

Splunk OpenTelemetry Instrumentation for Android から Android RUM エージェントを設定し、カスタム属性の追加、環境やアプリケーションに合わせたインストルメンテーション、サンプリングのカスタマイズなどを行うことができます。

Android RUM エージェントを設定するには、fluent builder API を使用して Config インスタンスを準備し、設定を渡します。以下の例では、RUM トークン、Splunk レルム、アプリケーション名を設定します:

class MyApplication extends Application {
   private final String realm = "<realm>";
   private final String rumAccessToken = "<your_RUM_access_token>";

   @Override
   public void onCreate() {
      super.onCreate();

   SplunkRum.builder()
         .setApplicationName("<name_of_app>")
         .setRealm("<realm>"")
         .setRumAccessToken("<rumAccessToken>")
         .build(this);
   }
}

一般設定 🔗

以下の設定を使用して、Android RUMエージェントを構成します:

オプション

説明

setRumAccessToken(String)

エージェントがテレメトリを Splunk Observability Cloud に送信することを許可する RUM トークン。RUM アクセストークンを生成するには、Splunk Observability CloudでRUMアクセストークンを生成する を参照してください。

setRealm(String)

エンドポイント URL の生成に使用される Splunk Observability Cloud のレルム。たとえば、us0

setBeaconEndpoint(String)

RUMインジェスト・エンドポイントの完全なURLを提供するには、setRealm(String) の代わりにこのメソッドを使用します。例えば、https://rum-ingest.<realm>.signalfx.com/v1/rum

setApplicationName(String)

アプリケーションの名前を設定します。

setDeploymentEnvironment(String)

インストルメンテーションによって生成されるスパンの環境属性を設定します。

setGlobalAttributes(Attributes)

収集したすべてのスパンに付加する属性。例については、グローバル属性の管理 を参照してください。

filterSpans(Consumer<SpanFilterBuilder>)

この設定は、スパンのフィルターリングやカスタマイズに使用します。例えば、filterSpans を使用して、個人を特定できる情報(PII)を編集したり、スパンの属性を削除したり、スパン名を変更したりすることができます。スパンをフィルターする を参照してください。

enableDiskBuffering()

テレメトリのストレージベースのバッファリングを有効にします。この設定は、長時間オフラインで動作する可能性のあるアプリケーションをインストルメンテーションする場合に便利です。

limitDiskUsageMegabytes(int)

ディスク・バッファリングに使用するストレージの最大量を設定します。デフォルト値は25MBです。diskBufferingEnabledtrue である必要があります。

enableSessionBasedSampling(double)

セッションIDベースのサンプリングを有効にし、サンプリング比率を設定します。サンプリング比率は、セッションがその間に含まれる確率です。値の範囲は 0.0 (すべて削除) から 1.0 (すべて含める) です。

enableDebug()

デバッグモードを有効にします。この機能はデフォルトでは非アクティブになっています。デバッグモードを有効にすると、OpenTelemetryロギングスパンエクスポーターが有効になり、インストルメンテーションの問題をデバッグするときに便利です。

enableExperimentalOtlpExporter()

実験的な OTLP エクスポーターをアクティブにします。このエクスポーターはディスクバッファリングには対応していません。enableExperimentalOtlpExporter() はSplunk RUMでは2025年2月4日をもって非推奨となりました。enableExperimentalOtlpExporter() は引き続き機能しますが、将来のバージョンでは削除され、OTLPがデフォルトのエクスポートフォーマットになります。

インストルメンテーション設定 🔗

以下の設定を使用して、特定のデータの収集を有効または無効にします:

オプション

説明

disableSubprocessInstrumentation()

アプリケーションサブプロセスのインストルメンテーションを停止します。アプリケーション ID 値を受け付けます。

enableBackgroundInstrumentationDeferredUntilForeground()

アプリがフォアグラウンドになるまでバックグラウンドのテレメトリを延期できるようにします。バックグラウンドセッションデータを実際のユーザーセッションに接続するために使用します。

disableCrashReporting()

クラッシュレポートを無効にします。この機能はデフォルトで有効になっています。

disableAnrDetection()

ANR(アプリケーション応答なし)の検出と報告を無効にします。この機能はデフォルトで有効になっています。

disableNetworkMonitor()

ネットワークモニタリングを無効にします。この機能はデフォルトで有効になっています。

disableSlowRenderingDetection()

スローフレームレンダリングの検出を無効にします。この機能はデフォルトで有効になっています。Splunk RUM は、Android Developers ドキュメントの Android Vitals 定義に従って、レンダリングをスローまたはフリーズと定義します。

setSlowRenderingDetectionPollInterval(Duration)

低速またはフリーズしたレンダリング検出のデフォルトのポーリング間隔を設定します。デフォルト値は 1000 ミリ秒です。値は正の値でなければなりません。

HTTPインストルメンテーション設定 🔗

Android RUMエージェントには、OkHttpとVolley HTTPクライアントのインストルメンテーションが含まれています。

OkHttp 🔗

注釈

この形式のOkHttpサポートは、2025年2月4日をもってSplunk RUMでは非推奨となります。createRumOkHttpCallFactory(OkHttpClient client) は引き続き機能しますが、将来のバージョンでは削除され、OkHttp3の自動インストルメンテーションオプションまたは手動インストルメンテーション用の新しいAPIに置き換えられる予定です。

次の例のように、Call.Factory ラッパーを使用して OkHttp をインストルメンテーションします:

private Call.Factory buildOkHttpClient(SplunkRum splunkRum) {
   return splunkRum.createRumOkHttpCallFactory(new OkHttpClient());
}

Volley HTTP (実験的) 🔗

注釈

VolleyTracing および VolleyTracingBuilder のすべてのメソッドは、2025年2月4日をもってSplunk RUMでは非推奨となります。これらのメソッドは引き続き機能しますが、将来のバージョンでは削除される予定です。これらのメソッドに代わるものはありません。

Volley HTTPをインストルメンテーションするには、splunk-otel-android-volley 依存関係を build.gradle.kts ファイルに追加します:

dependencies {
   //...
   implementation("com.splunk:splunk-otel-android-volley:+")
   //...
}

次の例のように、VolleyTracing クラスを使って、VolleyTracing のインスタンスを作成します:

VolleyTracing volleyTracing = VolleyTracing.builder(splunkRum).build();

次の例は、 volleyTracing インスタンスから HurlStack のインスタンスを取得する方法を示しています:

HurlStack hurlStack = volleyTracing.newHurlStack();

その後、hurlStack インスタンスを使用してリクエストキューを作成し、通常通りリクエストを送信することができます。

リクエストとレスポンスの追加ヘッダーをキャプチャする 🔗

HTTPインストルメンテーションを使って、追加のリクエスト・ヘッダーとレスポンス・ヘッダーを取り込むことができます。追加のヘッダーは、http.request.header.http.response.header. の接頭辞で表示されます。

追加のヘッダーを捕捉するには、捕捉するヘッダーのリストをビルダーに与えます。例:

builder.setCapturedRequestHeaders(asList("X-My-Custom-Request-Header"))
builder.setCapturedResponseHeaders(asList("X-My-Custom-Response-Header"))

結果のスパンは、一つ以上のヘッダー値を持つ http.request.header.x_my_custom_header 属性を含みます。

このページは 2025年02月04日 に最終更新されました。