Información general

Para utilizar varias instancias del SDK, deberás adoptar la versión 2.0.0 o posterior. Consulta la guía Actualizar los SDK móviles de RUM.

Sigue esta guía para utilizar varias instancias con nombre del SDK. Muchos métodos del SDK toman opcionalmente una instancia del SDK como argumento. Si no se proporciona ninguna, la llamada se asocia a la instancia del SDK predeterminada (sin nombre).

Nota: El nombre de la instancia del SDK debe ser constante entre ejecuciones de la aplicación. Las rutas de almacenamiento para eventos de SDK dependen de esto.

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)

Puedes recuperar la instancia del SDK con nombre llamando a Datadog.getInstance(<name>) y utilizar el método Datadog.isInitialized(<name>) para comprobar si la instancia del SDK en particular está inicializada.

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)

Una vez inicializada la instancia del SDK con nombre, puedes recuperarla llamando a Datadog.sdkInstance(named: "<name>") y utilizarla como se muestra a continuación.

import DatadogCore

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

Logs

import DatadogLogs

let logger = Logger.create(in: core)

Traza (trace)

import DatadogRUM

let monitor = RUMMonitor.shared(in: core)

RUM

import DatadogRUM

let monitor = RUMMonitor.shared(in: core)

Referencias adicionales

Más enlaces, artículos y documentación útiles: