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 アクセストークンを生成するには、Generate your RUM access token in Splunk Observability Cloud を参照してください。

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()

Activates debug mode. This feature is inactive by default. Activating debug mode activates the OpenTelemetry logging span exporter, which might be useful when debugging instrumentation issues.

enableExperimentalOtlpExporter()

実験的な OTLP エクスポーターをアクティブにします。このエクスポーターはディスクバッファリングには対応していません。

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

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

オプション

説明

disableSubprocessInstrumentation()

Deactivates instrumentation for application subprocesses. Accepts an application ID value.

enableBackgroundInstrumentationDeferredUntilForeground()

Enables the deferrment of background telemetry until the app is foregrounded. Used to connect background session data to a real user session.

disableCrashReporting()

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

disableAnrDetection()

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

disableNetworkMonitor()

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

disableSlowRenderingDetection()

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

setSlowRenderingDetectionPollInterval(Duration)

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

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

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

OkHttp 🔗

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

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

Volley HTTP (実験的) 🔗

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 属性を含みます。

This page was last updated on 2024年05月14日.