Associer RUM à vos traces
La gestion des incidents est désormais disponible pour tous ! La gestion des incidents est désormais disponible pour tous !

Associer RUM à vos traces

L’intégration de l’APM avec la fonctionnalité Real User Monitoring vous permet d’associer les requêtes de vos applications Web et mobiles aux traces backend correspondantes. Cette association vous permet de visualiser toutes vos données front end et backend sous un seul angle.

Grâce aux données frontend de la fonctionnalité RUM et aux données relatives au backend, à l’infrastructure et aux logs provenant de l’injection d’ID de trace, vous pouvez identifier rapidement la cause de vos problèmes, où qu’ils se trouvent dans votre pile. Ainsi, vous saisissez parfaitement l’expérience que vous offrez à vos utilisateurs.

Utilisation

Prérequis

Configuration de RUM

  1. Configurez la fonctionnalité Real User Monitoring pour Browser.

  2. Initialisez le SDK RUM. Configurez le paramètre d’initialisation allowedTracingOrigins à l’aide de la liste des origines internes (first party) appelées par votre application Browser.

import { datadogRum } from '@datadog/browser-rum'

datadogRum.init({
    applicationId: '<ID_APPLICATION_DATADOG>',
    clientToken: '<TOKEN_CLIENT_DATADOG>',
    ...otherConfig,
    allowedTracingOrigins: ["https://api.example.com", /https:\/\/.*\.my-api-domain\.com/]
})

Remarque : allowedTracingOrigins accepte les chaînes Javascript et les expressions régulières.

  1. Configurez la fonctionnalité Real User Monitoring pour Android.

  2. Configurez l’intercepteur OkHttpClient à l’aide de la liste des origines internes (first party) appelées par votre application Android.

val tracedHosts =  listOf("example.com", "example.eu")

val okHttpClient = OkHttpClient.Builder()
    .addInterceptor(DatadogInterceptor(tracedHosts))
    .addNetworkInterceptor(TracingInterceptor(tracedHosts))
    .eventListenerFactory(DatadogEventListener.Factory())
    .build()

Remarque : Par défaut, tous les sous-domaines des hosts répertoriés sont tracés. Par exemple, si vous ajoutez example.com, vous activez également le tracing pour api.example.com et foo.example.com.

  1. Configurez la fonctionnalité Real User Monitoring pour iOS.

  2. Configurez le paramètre d’initialisation firstPartyHosts à l’aide de la liste des origines internes (first party) appelées par votre application iOS..

Datadog.initialize(
appContext: .init(),
configuration: Datadog.Configuration
    .builderUsing(rumApplicationID: "<id_app_rum>", clientToken: "<token_client>", environment: "<nom_env>")
    .set(firstPartyHosts: ["example.com", "api.yourdomain.com"])
    .build()
)
  1. Initialisez URLSession comme indiqué dans la documentation de configuration :
let session =  URLSession(
    configuration: ...,
    delegate: DDURLSessionDelegate(),
    delegateQueue: ...
)

Remarque : par défaut, tous les sous-domaines des hosts répertoriés sont tracés. Par exemple, si vous ajoutez example.com, vous activez également le tracing de api.example.com et foo.example.com.

Bibliothèques prises en charge

Les bibliothèques de tracing Datadog suivantes sont prises en charge :

BibliothèqueVersion minimale
Python0.22.0
Go1.10.0
Java0.24.1
Ruby0.20.0
JavaScript0.10.0
PHP0.33.0
.NET1.18.2

Comment les ressources RUM sont-elles associées aux traces ?

Datadog utilise un protocole de tracing distribué et configure les en-têtes HTTP suivants :

EN-TÊTEDESCRIPTION
x-datadog-trace-idGénéré à partir du SDK RUM. Permet à Datadog d’associer la trace à la ressource RUM.
x-datadog-parent-idGénéré à partir du SDK RUM. Permet à Datadog de générer la première span depuis la trace.
x-datadog-origin: rumPermet de s’assurer que les traces générées à partir de la fonctionnalité RUM ne rentrent pas en compte dans le calcul de vos spans indexées de l’APM.
x-datadog-sampling-priority: 1Permet de s’assurer que l’Agent conserve la trace.
x-datadog-sampled: 1Généré à partir du SDK RUM. Indique que cette requête est sélectionnée pour l’échantillonnage.

Cela a-t-il une incidence sur les quotas de l’APM ?

L’en-tête x-datadog-origin: rum indique au backend APM que les traces sont générées depuis la fonctionnalité RUM. Les traces générées n’ont par conséquent aucun impact sur le calcul de vos spans indexées.

Combien de temps les traces sont-elles conservées ?

Ces traces sont conservées aussi longtemps comme vos traces APM standard.

Documentation, liens et articles supplémentaires utiles: