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. |
|
Enables the deferrment of background telemetry until the app is foregrounded. Used to connect background session data to a real user session. |
|
クラッシュレポートを無効にします。この機能はデフォルトで有効になっています。 |
|
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
属性を含みます。