概要

複数の SDK インスタンスを使用するには、バージョン 2.0.0 以降にアップグレードする必要があります。RUM Mobile SDK のアップグレード ガイドを参照してください。

このガイドに従って、複数の名前付き SDK インスタンスを使用してください。SDK の多くのメソッドは、オプションで SDK インスタンスを引数として受け取ります。指定しない場合、その呼び出しはデフォルト (名前なし) の SDK インスタンスに関連付けられます。

: SDK インスタンス名は、アプリケーションの起動間で一貫している必要があります。SDK のイベントの保存パスはこれに依存します。

: Session Replay は同時に 1 つの Core でのみ実行できます。別の Core に切り替えるには、まず現在実行中の Core を停止してください。

val namedSdkInstance = Datadog.initialize("myInstance", context, configuration, trackingConsent)

val userInfo = UserInfo(...)
Datadog.setUserInfo(userInfo, sdkCore = namedSdkInstance)

Logs.enable(logsConfig, namedSdkInstance)
val logger = Logger.Builder(namedSdkInstance)
    ...
    .build()

Trace.enable(traceConfig, namedSdkInstance)
val tracer = AndroidTracer.Builder(namedSdkInstance)
    ...
    .build()

Rum.enable(rumConfig, namedSdkInstance)
GlobalRumMonitor.get(namedSdkInstance)

NdkCrashReports.enable(namedSdkInstance)

WebViewTracking.enable(webView, allowedHosts, namedSdkInstance)

SessionReplay.enable(sessionReplayConfig, namedSdkInstance)

: WebView コンポーネントでインスツルメンテーションを機能させるには、WebView で JavaScript を有効にすることが非常に重要です。有効にするには、以下のコードスニペットを使用します。

    webView.settings.javaScriptEnabled = true

名前付き SDK インスタンスは Datadog.getInstance(<name>) を呼び出して取得でき、特定の SDK インスタンスが初期化済みかどうかは Datadog.isInitialized(<name>) メソッドで確認できます。

import DatadogCore
import DatadogRUM
import DatadogLogs
import DatadogTrace

let core = Datadog.initialize(
    with: configuration, 
    trackingConsent: trackingConsent, 
    instanceName: "my-instance"
)

RUM.enable(
    with: RUM.Configuration(applicationID: "<RUM Application ID>"),
    in: core
)

Logs.enable(in: core)

Trace.enable(in: core)

SessionReplay.enable(with: sessionReplayConfig, in: core)

名前付き SDK インスタンスが初期化されたら、Datadog.sdkInstance(named: "<name>") を呼び出して取得し、以下のとおりに使用できます。

import DatadogCore

let core = Datadog.sdkInstance(named: "my-instance")

ログ

import DatadogLogs

let logger = Logger.create(in: core)

Trace

import DatadogRUM

let monitor = RUMMonitor.shared(in: core)

RUM

import DatadogRUM

let monitor = RUMMonitor.shared(in: core)

その他の参考資料

お役に立つドキュメント、リンクや記事: