Présentation

Le SDK RUM iOS génère des événements auxquels des métriques et attributs sont associés. Les métriques sont des valeurs quantifiables servant à effectuer des mesures associées à un événement. Les attributs sont des valeurs non quantifiables servant à filtrer les données de métriques dans les analyses.

Chaque événement RUM contient tous les attributs par défaut, comme le type d’appareil (device.type) et des informations sur l’utilisateur telles que son nom (usr.name) et son pays (geo.country).

Il existe d’autres métriques et attributs propres à un type d’événement donné. Par exemple, la métrique view.time_spent est associée aux événements de type « vue » et l’attribut resource.method aux événements de type « ressource ».

Type d’événementRétentionDescription
Session30 joursUne session représente le parcours d’un utilisateur réel sur votre application mobile. Elle débute lorsque l’utilisateur lance l’application et se poursuit tant qu’il reste actif. Lors du parcours de l’utilisateur, tous les événements RUM générés au sein de la session partagent le même attribut session.id. Remarque : la session se réinitialise après 15 minutes d’inactivité. Si l’application est arrêtée par le système d’exploitation, vous pouvez réinitialiser la session pendant que l’application est exécutée en arrière-plan.
Vue30 joursUne vue représente un écran unique (ou un segment d’écran) de votre application mobile. Une vue est lancée et mise en pause lorsque les rappels viewDidAppear(animated:) et viewDidDisappear(animated:) sont effectués sur la classe UIViewController. Chaque UIViewController est considéré comme une vue distincte. Tant que l’utilisateur reste sur une vue, des attributs d’événement RUM (Erreurs, Ressources et Actions) sont joints à la vue, avec un view.id unique.
Ressource30 joursUne ressource représente les requêtes réseau envoyées par votre application mobile à des hosts first party, des API et des fournisseurs tiers. Toutes les requêtes générées lors d’une session utilisateur sont jointes à la vue, avec un resource.id unique.
Erreur30 joursUne erreur représente une exception ou une défaillance générée par l’application mobile et jointe à la vue à son origine.
Action30 joursUne action représente l’activité utilisateur dans votre application mobile (par exemple, le lancement de l’application ou une action de toucher, de balayage ou de retour). Chaque action possède un action.id unique joint à la vue à son origine.
Tâche longue30 joursUn événement de tâche longue est généré lorsqu’une tâche bloque dans l’application le thread principal pendant une durée supérieure au seuil défini.

Le schéma suivant présente la hiérarchie des événements RUM :

Hiérarchie des événements RUM

Lancement de l’application

À son initialisation, le SDK RUM pour iOS crée une vue intitulée ApplicationLaunch. Cette vue commence au même moment que le processus iOS et peut être utilisée pour suivre le temps de lancement de votre application.

La vue ApplicationLaunch inclut l’ensemble des logs, actions et ressources créés avant le premier appel de startView. Utilisez la durée de cette vue pour déterminer le temps écoulé avant la première vue. Cette vue possède une action, application_start, dont la durée correspond au temps écoulé entre le lancement du processus et l’appel de applicationDidBecomeActive.

Si iOS décide de préchauffer votre application, la vue ApplicationLaunch commence alors à l’initialisation du SDK RUM pour iOS, et l’événement application_start n’enregistre aucune durée.

Attributs par défaut

Par défaut, la solution RUM recueille des attributs communs pour tous les événements, ainsi que des attributs propres à chaque événement, tel qu’indiqué ci-dessous. Vous pouvez également choisir d’enrichir les données de vos sessions utilisateur en ajoutant d’autres événements aux événements par défaut, selon vos besoins en analytique métier et en surveillance de votre application.

Attributs communs de base

Nom de l’attributTypeDescription
datenombre entierLe début de l’événement en millisecondes (format epoch).
typechaîneLe type de l’événement (par exemple, view ou resource).
servicechaîneLe nom de service unifié de cette application utilisé pour corréler les sessions utilisateur.
application.idchaîneL’ID d’application Datadog.
application.namechaîneLe nom de l’application Datadog.

Appareil

Les attributs sur l’appareil suivants sont joints automatiquement à tous les événements recueillis par Datadog :

Nom de l’attributTypeDescription
device.typechaîneLe type d’appareil indiqué par l’appareil (User-Agent système)
device.brandchaîneLa marque d’appareil indiquée par l’appareil (User-Agent système)
device.modelchaîneLe modèle d’appareil indiqué par l’appareil (User-Agent système)
device.namechaîneLe nom d’appareil indiqué par l’appareil (User-Agent système)
connectivity.statuschaîneLe statut de l’accessibilité au réseau de l’appareil (connected, not connected, maybe).
connectivity.interfaceschaîneLa liste des interfaces réseau disponibles (par exemple, bluetooth, cellular, ethernet ou wifi).
connectivity.cellular.technologychaîneLe type de technologie radio utilisée pour la connexion cellulaire.
connectivity.cellular.carrier_namechaîneLe nom de l’opérateur de la carte SIM.

Système d’exploitation

Les attributs sur le système d’exploitation suivants sont joints automatiquement à tous les événements recueillis par Datadog :

Nom de l’attributTypeDescription
os.namechaîneLe nom du système d’exploitation indiqué par l’appareil (User-Agent système).
os.versionchaîneLa version du système d’exploitation indiquée par l’appareil (User-Agent système).
os.version_majorchaîneLa version majeure du système d’exploitation indiquée par l’appareil (User-Agent système).

Géolocalisation

Les attributs ci-dessous sont liés à la géolocalisation des adresses IP :

Remarque : si vous souhaitez arrêter de recueillir les attributs de géolocalisation, modifiez le paramètre correspondant dans les détails de votre application.

Nom completTypeDescription
geo.countrychaîneLe nom du pays.
geo.country_iso_codechaîneLe code ISO du pays (par exemple, US pour les États-Unis ou FR pour la France).
geo.country_subdivisionchaîneLe nom du premier niveau de division du pays (par exemple, California aux États-Unis ou le département de la Sarthe en France).
geo.continent_codechaîneLe code ISO du continent (EU, AS, NA, AF, AN, SA ou OC).
geo.continentchaîneLe nom du continent (Europe, Australia, North America, Africa, Antarctica, South America ou Oceania).
geo.citychaîneLe nom de la ville (par exemple, San Francisco, Paris ou New York).

Attributs utilisateur globaux

Vous pouvez activer la surveillance des informations utilisateur de façon globale, afin de recueillir et d’appliquer des attributs utilisateur à tous vos événements RUM.

Nom de l’attributTypeDescription
usr.idchaîneL’identifiant de l’utilisateur.
usr.namechaîneLe nom de l’utilisateur.
usr.emailchaîneL’adresse e-mail de l’utilisateur.

Métriques et attributs spécifiques à un événement

Métriques des sessions

MétriqueTypeDescription
session.time_spentnombre (ns)Durée d’une session
session.view.countnombreNombre total de vues recueillies lors de la session.
session.error.countnombreNombre total d’erreurs recueillies lors de la session.
session.resource.countnombreNombre total de ressources recueillies lors de la session.
session.action.countnombreNombre total d’erreurs recueillies lors de la session.
session.long_task.countnombreNombre total de tâches longues recueillies lors de la session.

Attributs des sessions

Nom de l’attributTypeDescription
session.idchaîneL’identifiant unique de la session.
session.typechaîneLe type de la session (user).
session.is_activebooléenIndique si la session est actuellement active. Une session prend fin lorsqu’un utilisateur quitte l’application ou ferme la fenêtre du navigateur. Elle expire après 4 heures d’activité ou 15 minutes d’inactivité.
session.initial_view.urlchaîneL’URL de la vue initiale de la session.
session.initial_view.namechaîneLe nom de la vue initiale de la session.
session.last_view.urlchaîneL’URL de la dernière vue de la session.
session.last_view.namechaîneLe nom de la dernière vue de la session.
session.ipchaîneL’adresse IP de la session extraite à partir de la connexion TCP de l’admission. Si vous souhaitez arrêter de recueillir cet attribut, modifiez le paramètre correspondant dans les détails de votre application.
session.useragentchaîneLes informations de l’Agent utilisateur système interprétant les informations de l’appareil.

Métriques des vues

Les événements RUM de type Action, Erreur, Ressource et Tâche longue contiennent des informations sur la vue RUM active au moment de la collecte :

MétriqueTypeDescription
view.time_spentnombre (ns)Le temps passé sur la vue.
view.long_task.countnombreNombre total de tâches longues recueillies pour cette vue.
view.error.countnombreNombre total d’erreurs recueillies pour cette vue.
view.resource.countnombreNombre total de ressources recueillies pour cette vue.
view.action.countnombreNombre total d’actions recueillies pour cette vue.
view.is_activebooléenStatut d’activité de la vue correspondant à cet événement.

Attributs de vue

Nom de l’attributTypeDescription
view.idchaîneL’ID unique de la vue initiale correspondant à l’événement.
view.urlchaîneURL de la classe UIViewController correspondant à l’événement.
view.namechaîneNom personnalisable de la vue correspondant à l’événement.

Métriques des ressources

MétriqueTypeDescription
resource.durationnombreDurée totale de chargement de la ressource.
resource.sizenombre (octets)Taille de la ressource.
resource.connect.durationnombre (ns)Durée d’établissement d’une connexion au serveur (connectEnd - connectStart).
resource.ssl.durationnombre (ns)Temps passé à établir la liaison TLS.
resource.dns.durationnombre (ns)Durée de résolution du nom DNS de la dernière requête (domainLookupEnd - domainLookupStart).
resource.redirect.durationnombre (ns)Temps passé sur les requêtes HTTP ultérieures (redirectEnd - redirectStart).
resource.first_byte.durationnombre (ns)Le temps écoulé avant la réception du premier octet de la réponse (responseStart - requestStart).
resource.download.durationnombre (ns)Durée de téléchargement de la réponse (responseEnd - responseStart).

Attributs des ressources

AttributTypeDescription
resource.idchaîneL’identifiant unique de la ressource.
resource.typechaîneLe type de ressource à recueillir (par exemple, xhr, image, font, css ou js).
resource.methodchaîneLa méthode HTTP (par exemple, POST, GET PATCH ou DELETE).
resource.status_codenombreLe code de statut de la réponse.
resource.urlchaîneL’URL de la ressource.
resource.provider.namechaîneLe nom du fournisseur de ressources. Valeur par défaut : unknown.
resource.provider.domainchaîneLe domaine du fournisseur de ressources.
resource.provider.typechaîneLe type de fournisseur de ressources (par exemple, first-party, cdn, ad ou analytics).

Attributs d’erreur

Les erreurs frontend sont recueillies par le service Real User Monitoring (RUM). Le message d’erreur et la stack trace sont inclus lorsque cela est possible.

AttributTypeDescription
error.sourcechaîneL’origine de l’erreur (par exemple, webview, logger ou network).
error.typechaîneLe type d’erreur (ou le code dans certains cas).
error.messagechaîneUn message d’une ligne lisible et concis décrivant l’événement.
error.stackchaîneLa stack trace ou toutes informations complémentaires relatives à l’erreur.
error.issue_idchaîneLa stack trace ou toutes informations complémentaires relatives à l’erreur.

Erreurs réseau

Les erreurs réseau comprennent des informations sur la requête HTTP ayant échoué. Les facettes suivantes sont également recueillies :

AttributTypeDescription
error.resource.status_codenombreLe code de statut de la réponse.
error.resource.methodchaîneLa méthode HTTP (par exemple, POST ou GET).
error.resource.urlchaîneL’URL de la ressource.
error.resource.provider.namechaîneLe nom du fournisseur de ressources. Valeur par défaut : unknown.
error.resource.provider.domainchaîneLe domaine du fournisseur de ressources.
error.resource.provider.typechaîneLe type de fournisseur de ressources (par exemple, first-party, cdn, ad ou analytics).

Métriques des actions

MétriqueTypeDescription
action.loading_timenombre (ns)La durée de chargement de l’action.
action.long_task.countnombreNombre total de tâches longues recueillies pour cette action.
action.resource.countnombreNombre total de ressources générées par cette action.
action.error.countnombreNombre total d’erreurs générées par cette action.

Attributs d’action

AttributTypeDescription
action.idchaîneUUID de l’action utilisateur.
action.typechaîneLe type de l’action utilisateur (par exemple, tap ou application_start).
action.namechaîneNom de l’action utilisateur.
action.target.namechaîneÉlément avec lequel l’utilisateur a interagi. Uniquement pour les actions recueillies automatiquement.

Stockage des données

Avant que les données ne soient importées dans Datadog, elles sont stockées en clair dans le répertoire cache (Library/Caches) du bac à sable de votre application. Aucune autre application installée sur l’appareil ne peut lire ces données.

Pour aller plus loin