Présentation

Pour utiliser plusieurs instances du SDK, vous devrez adopter la version 2.0.0 ou une version ultérieure. Consultez le guide Mettre à niveau les SDK RUM Mobile.

Suivez ce guide pour utiliser plusieurs instances nommées du SDK. De nombreuses méthodes du SDK prennent éventuellement une instance du SDK comme argument. Si aucune instance n’est fournie, l’appel est associé à l’instance du SDK (sans nom) par défaut.

Remarque : le nom de l’instance du SDK doit être cohérent entre les exécutions de l’application, car les événements du SDK dépendent de ce nom.

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)

Vous pouvez récupérer l’instance du SDK nommée en appelant Datadog.getInstance(<nom>) et utiliser la méthode Datadog.isInitialized(<nom>) pour vérifier cette instance spécifique du SDK est initialisée.

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: "<ID_APPLICATION_RUM>"),
    in: core
)

Logs.enable(in: core)

Trace.enable(in: core)

Une fois que l’instance du SDK nommée est initialisée, vous pouvez la récupérer en appelant Datadog.sdkInstance(named: "<nom>") et en l’utilisant tel qu’indiqué ci-dessous.

import DatadogCore

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

Logs

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)

Pour aller plus loin

Documentation, liens et articles supplémentaires utiles: