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エージェントを構成します:
オプション |
説明 |
---|---|
|
エージェントがテレメトリを Splunk Observability Cloud に送信することを許可する RUM トークン。RUM アクセストークンを生成するには、Generate your RUM access token in Splunk Observability Cloud を参照してください。 |
|
エンドポイント URL の生成に使用される Splunk Observability Cloud のレルム。たとえば、 |
|
RUMインジェスト・エンドポイントの完全なURLを提供するには、 |
|
アプリケーションの名前を設定します。 |
|
インストルメンテーションによって生成されるスパンの環境属性を設定します。 |
|
収集したすべてのスパンに付加する属性。例については、グローバル属性の管理 を参照してください。 |
|
この設定は、スパンのフィルターリングやカスタマイズに使用します。例えば、 |
|
テレメトリのストレージベースのバッファリングを有効にします。この設定は、長時間オフラインで動作する可能性のあるアプリケーションをインストルメンテーションする場合に便利です。 |
|
ディスク・バッファリングに使用するストレージの最大量を設定します。デフォルト値は25MBです。 |
|
セッションIDベースのサンプリングを有効にし、サンプリング比率を設定します。サンプリング比率は、セッションがその間に含まれる確率です。値の範囲は |
|
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. |
|
実験的な OTLP エクスポーターをアクティブにします。このエクスポーターはディスクバッファリングには対応していません。 |
インストルメンテーション設定 🔗
以下の設定を使用して、特定のデータの収集を有効または無効にします:
オプション |
説明 |
---|---|
|
Deactivates instrumentation for application subprocesses. Accepts an application ID value. |
|
アプリがフォアグラウンドになるまでバックグラウンドのテレメトリを延期できるようにします。バックグラウンドセッションデータを実際のユーザーセッションに接続するために使用します。 |
|
クラッシュレポートを無効にします。この機能はデフォルトで有効になっています。 |
|
ANR(アプリケーション応答なし)の検出と報告を無効にします。この機能はデフォルトで有効になっています。 |
|
ネットワークモニタリングを無効にします。この機能はデフォルトで有効になっています。 |
|
スローフレームレンダリングの検出を無効にします。この機能はデフォルトで有効になっています。Splunk RUM は、Android Developers ドキュメントの Android Vitals 定義に従って、レンダリングをスローまたはフリーズと定義します。 |
|
低速またはフリーズしたレンダリング検出のデフォルトのポーリング間隔を設定します。デフォルト値は |
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
属性を含みます。