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

Splunk RUM 用 Android RUM エージェントをインストールする 🔗

Splunk OpenTelemetry Instrumentation for Android の Android RUM エージェントを使用すると、Android アプリケーションを Splunk RUM 用にインストルメンテーションできます。

Android アプリケーションをインストルメンテーションして Splunk RUM にデータを取り込むには、このページの手順に従ってください。

注釈

Splunk RUM for Android のインストルメンテーションに Splunk APM は必要ありません。

使用環境で実行するバージョンを決める 🔗

The latest version updates automatically whenever Splunk RUM releases a new version. In pre-production, use latest to try out the most recent version of Splunk RUM. In production environments, use the pinned version which was previously tested in pre-production and update the production version on a monthly cycle.

互換性と必要条件をチェック 🔗

Splunk RUM for Mobile supports Java and Kotlin applications for Android API level 21 and higher. API levels 21 to 25 require core library desugaring activated. See アプリケーションで desugaring を有効にする. Android 7.0 (also known as Nougat) corresponds to API level 24.

アプリケーションで desugaring を有効にする 🔗

Android APIレベル21から25で動作するアプリケーションをインストルメンテーションするには、desugaring を有効にする必要があります。

アプリケーションでdesugaringを有効にするには、アプリ・モジュールのbuild.gradleファイルを開き、以下の例のように compileOptionsdependencies セクションを更新します:

android {
   compileOptions {
      //...
      coreLibraryDesugaringEnabled = true
      sourceCompatibility = JavaVersion.VERSION_1_8 // Java 8 and higher
      targetCompatibility = JavaVersion.VERSION_1_8 // Java 8 and higher
      //...
   }
}

dependencies {
   //...
   coreLibraryDesugaring("com.android.tools:desugar_jdk_libs:1.1.5")
   //...
}

プロジェクトを保存して同期し、アプリケーションに desugaring を実装します。

注釈

Android Gradleプラグインのバージョンが4.0.0以上であることを確認してください。

依存関係としてAndroidエージェントをインストールする 🔗

エージェントをアクティブにするには、Androidアプリケーションにコードレベルの依存関係としてAndroid RUMエージェントをインストールする必要があります。

以下の手順に従って、Maven Central を使用して Android RUM エージェントをインストールしてください:

  1. メインのbuild.gradleファイルのrepositoriesセクションにMaven Centralがあることを確認してください:

    allprojects {
       repositories {
          google()
       //...
          mavenCentral()
       }
    }
    
  2. アプリケーションのbuild.gradleファイルに、最新のAndroid RUMエージェントのリリースを依存関係として追加します:

    dependencies {
    //...
       // Set the desired version of the RUM agent.
       // See available releases: https://github.com/signalfx/splunk-otel-android/releases
       implementation("com.splunk:splunk-otel-android:+")
       implementation("io.opentelemetry.android:instrumentation:+")
    //...
    }
    
  3. Application.onCreate() の初期化呼び出しに設定オブジェクトを渡して、Android RUM エージェントを設定・初期化します:

    import com.splunk.rum.SplunkRum
    import com.splunk.rum.StandardAttributes
    import io.opentelemetry.api.common.Attributes
    
    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>")
                   .setDeploymentEnvironment("<name_of_env>") // Environment
                   .setRealm(realm)
                   .setRumAccessToken(rumAccessToken)
                   .setGlobalAttributes(
                         Attributes.builder() // Add the application version. Alternatively, you
                            // can pass BuildConfig.VERSION_NAME as the value.
                            .put(StandardAttributes.APP_VERSION, "<version_of_app>")
                            .build()
                   )
                   // Turn off instrumentation of background processes
                   .disableBackgroundTaskReporting(BuildConfig.<id_of_application>)
                   // Activates debug logging if needed
                   //.enableDebug()
                   .build(this);
       }
    }
    
    • .realm() に渡される値は Splunk Observability Cloud のレルムで、たとえば us0 です。アカウントのレルム名を調べるには、以下の手順に従ってください:

      1. Splunk Observability Cloud のナビゲーションメニューを開きます。

      2. Settings を選択します。

      3. ユーザー名を選択します。

      レルム名は Organizations セクションに表示されます。

    • RUM アクセストークンを生成するには、Generate your RUM access token in Splunk Observability Cloud を参照してください。

  4. HTTPクライアントをインストルメント化します。例えば、以下のスニペットはOkHttpをインストルメンテーションします:

    private fun buildOkHttpClient(splunkRum: SplunkRum): Call.Factory {
       return splunkRum.createRumOkHttpCallFactory(OkHttpClient())
    }
    

    詳しくは HTTPインストルメンテーション設定 を参照してください。

    注釈

    This form of support for OkHttp is deprecated in Splunk RUM as of February 4, 2025. Although createRumOkHttpCallFactory(OkHttpClient client) continues to function, it will be removed in a future version, and replaced with an option for automatic instrumentation of OkHttp3 or a new API for manual instrumentation.

  5. Androidアプリケーションへの変更をリリースします。

  6. アプリケーションでユーザーのアクティビティを生成します。アプリケーションを操作した後、データが RUM ダッシュボードに表示されていることを確認します。

    注釈

    Android RUMエージェントが初期化されたかどうかは、コードの任意の場所で SplunkRum.isInitialized() メソッドを呼び出すことで確認できます。

Android RUMを使用したサンプルアプリケーションについては、GitHub のサンプルアプリケーション を参照してください。

Android RUMライブラリをローカルでビルドする 🔗

Android RUMライブラリをローカルにダウンロードしてビルドするには、以下の手順に従ってください:

  1. リポジトリをマシンにクローンします:

    git clone https://github.com/signalfx/splunk-otel-android.git
    
  2. ローカルでビルドし、ローカルの Maven リポジトリに公開します:

    ./gradlew publishToMavenLocal
    
  3. build.gradleファイルのリポジトリに mavenLocal() を設定します:

    allprojects {
       repositories {
          google()
    //...
          mavenLocal()
       }
    }
    
  4. ビルドしたライブラリをbuild.gradleファイルに依存関係として追加します:

    dependencies {
       //...
          implementation ("com.splunk:splunk-otel-android:<version>")
       //...
    }
    

ブラウザ RUM エージェントを使用してAndroid WebViewをインストルメンテーションする 🔗

モバイルRUMインストルメンテーションとブラウザRUMインストルメンテーションを同時に使用するには、両方のインストルメンテーション間で splunk.rumSessionId を共有し、RUMデータを1つのストリームにまとめて表示します。

以下のスニペットは、Android RUM を Splunk ブラウザ RUM と統合する方法を示しています:

import android.webkit.WebView
import com.splunk.rum.SplunkRum

//...
/*
Make sure that the WebView instance only loads pages under
your control and instrumented with Splunk Browser RUM. The
integrateWithBrowserRum() method can expose the splunk.rumSessionId
of your user to every site/page loaded in the WebView instance.
*/
override fun onViewCreated(view: View, @Nullable savedInstanceState: Bundle?) {
   super.onViewCreated(view, savedInstanceState)
   binding.webView.setWebViewClient(LocalContentWebViewClient(assetLoader))
   binding.webView.loadUrl("https://subdomain.example.com/instrumented-page.html")
   binding.webView.getSettings().setJavaScriptEnabled(true)
   binding.webView.addJavascriptInterface(WebAppInterface(getContext()), "Android")
   SplunkRum.getInstance().integrateWithBrowserRum(binding.webView)
}

収集前に属性を変更する 🔗

個人を特定できる情報(PII)など、スパンの属性を削除または変更するには、スパンをフィルターする を参照してください。

貢献する方法 🔗

Splunk OpenTelemetry Instrumentation for Android はオープンソースソフトウェアです。GitHub でプルリクエストを作成することで、その改善に貢献することができます。詳細については、GitHub の 貢献ガイドライン を参照してください。

次のステップ 🔗

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