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 は必要ありません。

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

最新版は、Splunk RUM が新しいバージョンをリリースするたびに自動的に更新されます。プリプロダクション環境では、latest を使用して Splunk RUM の最新バージョンを試用します。本番環境では、事前に本番環境でテストした固定バージョンを使用し、毎月のサイクルで本番バージョンを更新します。

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

Splunk RUM for Mobile は、Android API レベル21以上の Java および Kotlin アプリケーションをサポートしています。API レベル21~25では、コアライブラリの desugaring を有効にする必要があります。アプリケーションで desugaring を有効にする を参照してください。

アプリケーションで 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インストルメンテーション設定 を参照してください。

  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 の 貢献ガイドライン を参照してください。

次のステップ 🔗

This page was last updated on 2024年03月29日.