Real User Monitoring (RUM) collecte les données de session utilisateur dans des tables de journaux structurées. Utilisez cette référence pour identifier les noms de champs, les types de données et les descriptions lorsque vous effectuez des requêtes, appliquez des filtres ou créez des tableaux de bord.
Structure des journaux
Les journaux RUM sont organisés en deux catégories :
Tables de détail stockent les événements individuels : View, Resource, Exception, Action, Custom, Application et System.
Table d'agrégation stocke les résumés au niveau de la session : Session.
Le schéma suivant décrit les relations entre ces tables :
Session (aggregation)
+-- View (page/screen visit)
| |-- Resource (network request)
| |-- Exception (error)
| |-- Action (user interaction)
| +-- Custom (developer-defined event)
+-- Application (app lifecycle, native only)
+-- System (system event, native only)
Chaque session contient une ou plusieurs vues. Chaque vue peut inclure plusieurs ressources, exceptions, actions et événements personnalisés. Les événements Application et System se situent au niveau de la session et s'appliquent uniquement aux applications natives.
| Type d'événement | Table | Description |
|---|---|---|
| view | View | Visites de pages ou d'écrans, avec des données de chronométrage des performances (Web Vitals, timing de navigation). |
| resource | Resource | Requêtes réseau : actifs statiques (CSS, JS, images) et appels API (XHR, fetch). |
| exception | Exception | Erreurs d'exécution, plantages, ANR, écrans blancs et erreurs personnalisées. |
| action | Action | Interactions utilisateur telles que les clics, les tapotements et les défilements. |
| custom | Custom | Événements définis par le développeur et rapportés via le SDK. |
| application | Application | Événements du cycle de vie de l'application : démarrage à froid, démarrage à chaud, sortie, transitions arrière-plan/premier plan (natif uniquement). |
| system | System | Événements au niveau du système tels que les changements de réseau (natif uniquement). |
| session | Session | Résumé agrégé de la session avec le nombre d'événements et la durée. |
Les tables Application et System s'appliquent uniquement à la surveillance des applications natives (Android et iOS).
Catégories de champs
Chaque champ des tables ci-dessous appartient à l'une des trois catégories suivantes :
| Catégorie | Type de données | Indexé | Objectif |
|---|---|---|---|
| Attribut | String | Oui | Regrouper, filtrer et agréger les données. Non quantifiable. Ensemble limité de valeurs possibles. |
| Mesure | Number | Oui | Métrique quantifiable utilisée dans les calculs et les visualisations. |
| Métadonnée | Varie | Non | Données supplémentaires décrivant d'autres champs. Non indexées par défaut. |
Champs communs
Les champs communs apparaissent dans toutes les tables de détail et d'agrégation. Les attributs communs doivent être indexés. Ils sont essentiels pour le filtrage et l'agrégation des données. Au sein d'une même session, ces valeurs restent généralement cohérentes. Une valeur peut changer en cours de session si, par exemple, un utilisateur change de compte, ce qui met à jour l'ID utilisateur.
Attributs communs
| Attribut | Type | Nom du champ | Description |
|---|---|---|---|
| timestamp | long | Heure de survenue | Heure de début de l'événement. Utilise l'heure système par défaut si non disponible. |
| event_type | string | Type d'événement | Catégorie d'événement : view, resource, exception, longtask, action, custom et la table d'agrégation de session. |
| event_id | string | ID d'événement | Identifiant unique de l'événement. S'applique aux événements resource, exception, longtask, action et custom. Non généré pour les événements view ou session. |
| app.id | string | ID d'application | ID unique de l'application, généré lors de la création d'une application RUM. |
| app.version | string | Version de l'application | Numéro de version de l'application défini par l'utilisateur. |
| app.channel | string | Canal de l'application | Canal de distribution de l'application. |
| app.env | string | Contexte environnemental | Étiquette d'environnement. Valeurs valides : production (prod) (par défaut), grayscale (gray), pre-release (pre). |
| app.type | string | Type d'application | Type d'application, spécifié à la fois par le côté reporting et le flux de données. Valeurs valides : android, ios, browser, miniapp. |
| app.package | string | Nom du package de l'application | Identifiant du package de l'application. La valeur dépend de la plateforme : Android = PackageName, iOS = BundleIdentifier, Miniapp = AppId, Browser = défini par l'utilisateur. |
| user.id | string | ID utilisateur | Identifiant du visiteur, généré automatiquement par le SDK. Ne peut pas être modifié. |
| user.name | string | Nom d'utilisateur | Identifiant utilisateur métier. Nécessite une configuration personnalisée. |
| user.tags | string | Tag utilisateur | Tag utilisateur pour la segmentation personnalisée. |
| device.id | string | ID de l'appareil | Identifiant de l'appareil. |
| device.type | string | Type d'appareil | Type d'appareil signalé par l'appareil, tel que mobile phone ou PC. |
| device.brand | string | Marque de l'appareil | Marque de l'appareil, telle que Mac, iPad, Huawei ou Xiaomi. |
| device.model | string | Modèle de l'appareil | Modèle de l'appareil signalé par l'appareil. |
| device.name | string | Nom de l'appareil | Nom de l'appareil signalé par l'appareil. |
| os.type | string | Système d'exploitation | Nom du système d'exploitation. |
| os.version | string | Version du système d'exploitation | Version du système d'exploitation. |
| os.container | string | Type de conteneur | Environnement de conteneur, tel que Chrome, WeChat mini program ou le nom de l'application. |
| os.container_version | string | Version du conteneur | Version du conteneur, par exemple la version de Chrome. |
| geo.country | string | Pays | Nom du pays. |
| geo.country_id | string | ISO du pays | Code ISO du pays. |
| geo.province | string | Province/Région | Nom de la province ou de la région. |
| geo.province_id | string | Code régional | Code de la province ou de la région. |
| geo.city | string | Ville | Nom de la ville. |
| geo.city_id | string | Code de la ville | Code de la ville. |
| isp.id | string | ID de l'opérateur | ID de l'opérateur. |
| isp.name | string | Nom de l'opérateur | Nom de l'opérateur. |
| net.model | string | Type de connexion | Type de connexion réseau : 2G, 3G, 4G, 5G, WIFI ou Unknown. Dépend de la plateforme. |
| net.name | string | Nom du réseau | Nom Ethernet. |
Mesures communes
| Métrique | Type | Description |
|---|---|---|
| times | int | Nombre de fois où l'événement s'est produit. Par défaut : 1. |
Métadonnées communes
| Champ | Type | Description |
|---|---|---|
| os.user_agent | string | En-tête de requête User-Agent. |
| net.ip | string | Adresse IP du client. |
| device.sr | string | Résolution de l'écran. |
| os.container_vp | string | Résolution de la fenêtre d'affichage (taille de la page). |
Tables de détail
Table View
Une View représente une visite de page ou d'écran. Chaque visite génère un événement page view (PV) qui sert d'ancre pour tous les événements associés et les métriques de chronométrage.
Les événements View se répartissent en trois types de reporting :
PV : Nombre de vues de page. Un PV est rapporté par accès à la vue. Il fournit les données de base utilisées pour associer divers événements et calculer les métriques de chronométrage.
Web Vitals : Les trois métriques de performance principales de Google (LCP, FID, CLS). Collectées séparément car leur timing de mesure varie.
Perf : Métriques de timing de navigation basées sur l'API Performance. Se concentre sur les performances objectives de chargement de la page.
Web Vitals et Perf sont facultatifs et peuvent ne pas s'appliquer aux vues natives. Le temps de séjour sur la page est une donnée comportementale et appartient à la table Action, non à la table View.
Attributs
| Attribut | Type | Nom du champ | Description |
|---|---|---|---|
| session.id | string | ID de session | ID de session associé. |
| view.id | string | ID de vue | ID généré aléatoirement pour cette vue de page. |
| view.name | string | Nom de la vue | Alias de la vue. Par défaut, le chemin URL. Peut être remplacé par des règles de correspondance ou une configuration personnalisée. |
| view.loading_type | string | Type de chargement de la vue | Mode de chargement de la vue : initial_load ou route_change. |
| view.type | string | Type d'événement de vue | Type d'événement de vue : pv ou perf. |
| view.view_type | string | Type de rendu de la vue | Type de rendu de la vue. |
Mesures de chronométrage
Les métriques suivantes capturent les performances de chargement de la page. Web Vitals (LCP, FID, CLS) mesurent les performances perçues par l'utilisateur. Les métriques de timing de navigation (FCP jusqu'à load_event) mesurent les étapes objectives de chargement de la page basées sur l'API Performance.
| Métrique | Type | Nom du champ | Description |
|---|---|---|---|
| view.time_spent | long (ms) | Page | Temps passé sur la vue actuelle. |
| view.largest_contentful_paint | long (ms) | Largest Contentful Paint | Largest Contentful Paint (LCP) -- temps nécessaire au rendu du plus grand élément DOM visible. |
| view.first_input_delay | long (ms) | First Input Delay | First Input Delay (FID) -- délai entre la première interaction utilisateur et la réponse du navigateur. |
| view.cumulative_layout_shift | long (sans unité) | Cumulative Layout Shift | Cumulative Layout Shift (CLS) -- quantifie les décalages de mise en page inattendus causés par le chargement dynamique du contenu. 0 signifie aucun décalage. |
| view.first_contentful_paint | long (ms) | First Contentful Paint (temps d'écran blanc) | First Contentful Paint (FCP) -- temps nécessaire au rendu du premier texte, image, canvas non blanc ou SVG. |
| view.dom_interactive | long (ms) | Time to Interactive | Time to Interactive -- temps jusqu'à ce que le DOM devienne interactif. |
| view.dom_content_loaded | long (ms) | Temps de chargement complet HTML (temps DOM Ready) | DOM Ready -- se déclenche lorsque le HTML initial est entièrement analysé, sans attendre les feuilles de style, les images ou les sous-trames. |
| view.dom_complete | long (ms) | DOM | DOM Complete -- la page et toutes les sous-ressources sont prêtes. L'indicateur de chargement s'est arrêté. |
| view.load_event | long (ms) | Temps de chargement complet de la page | Temps de chargement complet de la page -- se déclenche lorsque la page est entièrement chargée. Déclenche souvent une logique applicative supplémentaire. |
Seuils Web Vitals
Le tableau suivant répertorie les seuils de performance pour Web Vitals et le temps de chargement de la page. Utilisez ces valeurs pour identifier les problèmes de performance.
| Métrique | Bon | À améliorer | Médiocre |
|---|---|---|---|
LCP (view.largest_contentful_paint) |
< 2 500 ms | 2 500–4 000 ms | > 4 000 ms |
FID (view.first_input_delay) |
< 100 ms | 100–300 ms | > 300 ms |
CLS (view.cumulative_layout_shift) |
< 0,1 | 0,1–0,25 | > 0,25 |
Chargement de la page (view.load_event) |
< 2 000 ms | 2 000–4 000 ms | > 5 000 ms |
Un temps de chargement de page supérieur à 5 secondes affecte non seulement le classement du site web dans les moteurs de recherche, mais impacte également gravement l'expérience utilisateur.
Métadonnées
| Champ | Type | Description |
|---|---|---|
| view.referrer | string | URL de la page précédente (HTTP Referer). |
| view.url | string | URL complète de la vue, incluant le schéma, l'hôte, le chemin, la requête et le hachage. |
| view.timing_data | string | Chaîne JSON des données PerformanceResourceTiming. |
| view.snapshots | string | Chaîne JSON des instantanés de vue. Utilisée principalement pour les applications natives. |
Table Resource
Un événement Resource résume une requête réseau HTTP. RUM normalise les différences de l'API Performance entre les plateformes afin que les données de ressource soient comparables.
Les ressources se répartissent en deux catégories :
Ressources statiques (
resource.type:css,javascript,image,media, etc.) -- se concentrent sur le type de ressource, les performances CDN et la stabilité du réseau. Lorsqueresource.typeestnavigation, la ressource est associée à la vue parente via unview.idpartagé.Requêtes API (
resource.type:XHR,fetchouAPI) -- se concentrent sur les interactions côté serveur, les codes de réponse et le traçage distribué.
Les types XHR et fetch sont principalement utilisés dans les navigateurs et les WebViews. Dans les environnements natifs et miniapp, le type par défaut est API.
Les événements Resource ne doivent être rapportés que pour les requêtes réseau réelles. Filtrez les ressources mises en cache. Si les données mises en cache sont précieuses (par exemple, pour calculer les ratios de hit du cache), définissez resource.type sur cached pour les distinguer des requêtes réseau.
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session associé. |
| view.id | string | ID de vue associé. |
| view.name | string | Nom de vue associé. |
| resource.type | string | Type de ressource : css, javascript, media, XHR, image, navigation, etc. Les requêtes XHR et fetch sont classées comme ressources API. |
| resource.method | string | Méthode HTTP, telle que GET ou POST. |
| resource.status_code | string | Code d'état de la réponse HTTP. |
| resource.message | string | Contenu de la réponse ou message d'erreur (correspond à resource.error_msg). Généralement renseigné en cas d'erreurs. |
| resource.url | string | URL complète de la ressource. |
| resource.name | string | Nom de la ressource. Par défaut, le chemin URL. Peut être remplacé par des règles de correspondance ou une configuration personnalisée. |
| resource.provider_type | string | Catégorie de fournisseur de ressource : first-party, cdn, ad, analytics. |
| resource.trace_id | string | ID de trace distribuée associé à la requête. |
Mesures
| Métrique | Type | Description | Formule |
|---|---|---|---|
| resource.success | number | Statut de chargement. 1 = succès (par défaut), 0 = échec. |
-- |
| resource.duration | long (ms) | Temps total de chargement. | responseEnd - redirectStart |
| resource.size | long (octets) | Taille du corps décodé (decodedBodySize). |
-- |
| resource.connect_duration | long (ms) | Temps de connexion TCP. | connectEnd - connectStart |
| resource.ssl_duration | long (ms) | Temps de handshake TLS. S'applique uniquement aux requêtes HTTPS. Si secureConnectionStart est 0, aucun handshake TLS n'a eu lieu et cette valeur est 0. |
connectEnd - secureConnectionStart |
| resource.dns_duration | long (ms) | Temps de recherche DNS. | domainLookupEnd - domainLookupStart |
| resource.redirect_duration | long (ms) | Temps de redirection HTTP. | redirectEnd - redirectStart |
| resource.first_byte_duration | long (ms) | Temps jusqu'au premier octet (TTFB). | responseStart - requestStart |
| resource.download_duration | long (ms) | Temps de téléchargement de la réponse. | responseEnd - responseStart |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| resource.timing_data | string | Chaîne JSON des données PerformanceResourceTiming. |
| resource.trace_data | string | Instantané de traçage distribué. JSON avec les champs propagatorType, traceId, spanId et sample. |
| resource.snapshots | string | Données d'instantané de ressource. Utilisées principalement pour les applications natives. Exemple : "resource.flavor": "1.0", "resource.client.tcp.ip": "127.0.0.1", "resource.client.tcp.port": 8080, "resource.request.content_length": 1024, "resource.request.header.content_type": ["application/json"], "resource.request.header.accept_encoding": ["gzip", "deflate", "br"], "resource.response.content_length": 2048, "resource.response.header.eagleid": ["670f632716687515436056344e"] |
| resource.node_name | string | Type d'élément DOM ayant initié la requête. |
| resource.xpath | string | Emplacement XPath de l'élément initiateur (par exemple, html. > body. > img.). |
| resource.provider_name | string | Nom du fournisseur de ressource. Par défaut : unknown. |
| resource.provider_domain | string | Nom de domaine du fournisseur de ressource. |
Table Exception
Un événement Exception représente une erreur inattendue lors de l'exécution du code. Les exceptions sont classées dans les types suivants :
| Type | Description |
|---|---|
| Crash | L'application se termine de manière inattendue. |
| ANR | Application Not Responding. Le thread UI (thread principal) ne parvient pas à traiter un message Key Dispatch, Broadcast ou Service dans le délai requis. Classé comme Exception, non comme LongTask. |
| Exception | Autres conditions anormales ne provoquant ni crash ni ANR. |
| Custom | Erreur activement rapportée par le développeur via le SDK. |
| Error | Principalement utilisé pour enregistrer les erreurs liées à JavaScript. |
| Blank | Détection d'écran blanc, principalement pour les environnements navigateur. |
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session associé. |
| view.id | string | ID de vue associé. |
| view.name | string | Nom de vue associé. |
| exception.source | string | Source de l'erreur, telle que console ou event. |
| exception.file | string | Fichier où l'erreur s'est produite. |
| exception.type | string | Catégorie d'erreur : crash, custom ou error. |
| exception.subtype | string | Sous-catégorie du type d'erreur. |
| exception.name | string | Nom de l'erreur. |
| exception.message | string | Message d'erreur lisible par l'homme. |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| exception.stack | string | Trace de pile ou informations d'erreur supplémentaires. |
| exception.caused_by | string | Cause racine de l'exception. |
| exception.line | long | Numéro de ligne où l'erreur s'est produite. |
| exception.column | long | Numéro de colonne où l'erreur s'est produite. |
| exception.thread_id | string | ID du thread. |
| exception.binary_images | string | Informations sur les images binaires pour la source de l'erreur. |
| exception.snapshots | string | Données d'instantané d'erreur. |
Table Action
Un événement Action enregistre une interaction utilisateur, telle qu'un clic, un tapotement ou un défilement.
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session associé. |
| view.id | string | ID de vue associé. |
| view.name | string | Nom de vue associé. |
| action.type | string | Type d'interaction. |
| action.name | string | Nom sémantique de l'action, par exemple Click #checkout. |
| action.target_name | string | Nom de l'élément cible. Renseigné uniquement pour les actions collectées automatiquement. |
Mesures
| Métrique | Type | Description |
|---|---|---|
| action.duration | long (ms) | Durée de l'interaction. |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| action.snapshots | string | Données d'instantané d'interaction. |
| action.method_info | string | Nom de la méthode de rappel, par exemple onClick(). |
Table Custom
Un événement Custom est un événement défini par le développeur et rapporté via le SDK.
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session associé. |
| view.id | string | ID de vue associé. |
| view.name | string | Nom de vue associé. |
| custom.type | string | Type d'événement personnalisé. |
| custom.name | string | Nom de l'événement personnalisé. |
| custom.group | string | Groupe d'événement personnalisé. |
Mesures
| Métrique | Type | Description |
|---|---|---|
| custom.value | number | Valeur numérique associée à l'événement personnalisé. |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| custom.snapshots | string | Données d'instantané d'événement personnalisé. Longueur maximale recommandée : 5 000 caractères. |
Table Application
La table Application enregistre les événements du cycle de vie de l'application tels que les démarrages à froid, les démarrages à chaud, les sorties et les transitions arrière-plan/premier plan. Cette table s'applique uniquement aux applications natives.
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session associé. |
| application.type | string | Type d'événement du cycle de vie : launch, exit, background (s'exécute en arrière-plan) ou Bring to foreground. |
| application.name | string | Étiquette d'événement granulaire : Cold start, Hot launch (démarrage à chaud), first launch, background (exécution en arrière-plan) ou Bring to foreground. |
Mesures
| Métrique | Type | Description |
|---|---|---|
| application.duration | long (ms) | Durée de l'événement du cycle de vie. |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| application.snapshots | string | Instantané de l'événement de lancement, typiquement des données d'appel de méthode de thread. |
Table System
La table System enregistre les événements au niveau du système tels que les changements de réseau. Cette table s'applique uniquement aux applications natives.
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session associé. |
| system.type | string | Type d'événement système. |
| system.name | string | Nom sémantique de l'événement, par exemple Click #checkout. |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| system.snapshots | string | Instantané d'événement système. Pour les événements de changement de réseau, inclut les adresses IP avant/après et les types de réseau. Exemple : "sys.net_change.before.ip": "1.1.XX.XX", "sys.net_change.before.standard": "wifi", "sys.net_change.after.ip": "2.2.2.2", "sys.net_change.after.standard": "4G" |
Table d'agrégation
Table Session
Une Session représente une période continue d'activité utilisateur. Le SDK génère un session.id unique pour chaque session.
Attributs
| Attribut | Type | Description |
|---|---|---|
| session.id | string | ID de session généré aléatoirement. |
| session.ip | string | Adresse IP du client. |
| session.referrer | string | URL de la page référente. |
| session.initial_view_id | string | ID de la première vue de la session. |
| session.initial_view_name | string | Nom de la première vue de la session. |
| session.last_view_id | string | ID de la dernière vue de la session. |
| session.last_view_name | string | Nom de la dernière vue de la session. |
| session.start | long | Horodatage de début de session. |
| session.end | long | Horodatage de fin de session. |
Mesures
| Métrique | Type | Nom | Description |
|---|---|---|---|
| session.time_spent | long (ms) | Durée de la session | Durée totale de la session. |
| session.view_count | long | Nombre de vues | Nombre total de vues de page dans la session. |
| session.exception_count | long | Nombre d'exceptions | Nombre total d'exceptions dans la session. |
| session.resource_count | long | Nombre de requêtes de ressources | Nombre total de requêtes de ressources dans la session. |
| session.resource_error_count | long | Nombre d'erreurs de ressources | Nombre total de requêtes de ressources échouées dans la session. |
| session.api_count | long | Nombre de requêtes API | Nombre total de requêtes API dans la session. |
| session.api_error_count | long | Nombre d'erreurs API | Nombre total de requêtes API échouées dans la session. |
| session.action_count | long | Nombre d'événements utilisateur | Nombre total d'interactions utilisateur dans la session. |
| session.long_task_count | long | Nombre de saccades | Nombre total de tâches longues (événements de saccade) dans la session. |
Métadonnées
| Champ | Type | Description |
|---|---|---|
| session.initial_view.url | string | URL de la première vue de la session. |
| session.last_view_url | string | URL de la dernière vue de la session. |