Cette page fournit des conseils de dépannage pour vous lancer avec Performance Monitoring ou utiliser les fonctionnalités et les outils Performance Monitoring.
Premières vérifications pour le dépannage
Les deux vérifications suivantes sont des bonnes pratiques générales recommandées pour tous les utilisateurs avant de poursuivre le dépannage.
1. Vérifier les messages de journal pour les événements de performances
Vérifiez vos messages de journal pour vous assurer que le SDK Performance Monitoring capture les événements de performances.
Afficher les messages de journal pour les événements de performances
Ouvrez les outils pour les développeurs de votre navigateur (par exemple, l'onglet Network (Réseau) pour les outils pour les développeurs Chrome ou Network Monitor (Surveillance du réseau) pour Firefox).
Actualisez votre application Web dans le navigateur.
Recherchez d'éventuels messages d'erreur dans les messages de journal.
Après quelques secondes, recherchez un appel réseau à
firebaselogging.googleapis.com
dans les outils pour les développeurs de votre navigateur. La présence de cet appel réseau montre que le navigateur envoie des données de performances à Firebase.
Si votre application ne consigne pas d'événements de performances, consultez les conseils de dépannage.
2. Vérifier le tableau de bord d'état Firebase
Consultez le tableau de bord d'état Firebase pour savoir si une panne est connue pour Firebase ou pour Performance Monitoring.
Premiers pas avec Performance Monitoring
Si vous débutez avec Performance Monitoring (iOS+ | Android | Web), les conseils de dépannage suivants peuvent vous aider à résoudre les problèmes liés à la détection du SDK par Firebase ou à l'affichage de vos premières données de performances dans la console Firebase.
J'ai ajouté le SDK à l'application, mais la console indique toujours d'ajouter le SDK.
Firebase peut détecter si vous avez correctement ajouté le SDK Performance Monitoring à votre application lorsqu'il reçoit des informations sur les événements (comme les interactions avec l'application) de votre application. Généralement, dans les 10 minutes suivant le démarrage de votre application, le tableau de bord des performances de la console Firebase affiche un message "SDK détecté". Ensuite, dans un délai de 30 minutes, le tableau de bord affiche les données traitées initialement.
Si vous avez ajouté la dernière version du SDK à votre application il y a plus de 10 minutes et que vous ne constatez toujours aucun changement, vérifiez vos messages de journal pour vous assurer que Performance Monitoring consigne les événements. Suivez les étapes de dépannage appropriées décrites ci-dessous pour résoudre le problème d'un message de détection du SDK retardé.
L'application journalise des événements: procédure de dépannage
Si vous développez toujours en local, essayez de générer plus d'événements pour la collecte de données:
Diffuser et afficher votre application Web dans un environnement local
Générez des événements en chargeant des sous-pages de votre site, en interagissant avec votre application et/ou en déclenchant des requêtes réseau. Veillez à laisser l'onglet du navigateur ouvert pendant au moins 10 secondes après le chargement de la page.
Assurez-vous que votre objet de configuration Firebase est correctement ajouté à votre application et que vous ne l'avez pas modifié. Plus précisément, vérifiez les points suivants:
- L'ID d'application Web Firebase (
appId
) de l'objet de configuration est correct pour votre application. Vous trouverez votre ID d'application Firebase dans la fiche Vos applications de la section Paramètres du projet de settings.
Si l'objet de configuration de votre application semble incorrect, essayez les étapes suivantes:
Supprimez l'objet de configuration que vous avez actuellement dans votre application.
Suivez ces instructions pour obtenir un nouvel objet de configuration et l'ajouter à votre application Web.
- L'ID d'application Web Firebase (
Si le SDK enregistre des événements et que tout semble correctement configuré, mais que vous ne voyez toujours pas le message de détection du SDK ni les données traitées (après deux heures), contactez l'assistance Firebase.
L'application ne consigne pas les événements : procédure de dépannage
Assurez-vous que le SDK Performance Monitoring est correctement initialisé dans votre application.
Assurez-vous que le SDK Performance Monitoring n'est pas désactivé à l'aide de l'indicateur suivant:
performance.instrumentationEnabled
Assurez-vous que la mise en cache de votre navigateur est désactivée, sinon le navigateur risque de ne pas détecter les nouveaux paramètres d'instrumentation.
Fermez, puis rouvrez l'onglet de la page Web. Vérifiez à nouveau la journalisation.
Si vous venez d'ajouter le SDK Performance Monitoring à votre application, vous devrez peut-être redémarrer complètement votre application pour que le SDK commence à fonctionner.
Si vous ne trouvez rien de désactivé dans votre application, contactez l'assistance Firebase.
La console indique que le SDK est détecté, mais aucune donnée n'est affichée
Performance Monitoring traite les données des événements de performances avant de les afficher dans le tableau de bord Performances.
Si plus de 24 heures se sont écoulées depuis l'apparition du message "SDK détecté" et que vous ne voyez toujours pas de données, consultez le tableau de bord d'état Firebase pour vérifier si une panne est connue. Si aucune panne n'est signalée, contactez l'assistance Firebase.
Dépannage d'ordre général
Si vous avez correctement ajouté le SDK et que vous utilisez Performance Monitoring dans votre application, les conseils de dépannage suivants peuvent vous aider à résoudre les problèmes généraux liés aux fonctionnalités et aux outils Performance Monitoring.
L'application n'enregistre pas les événements de performances
Si vous ne voyez pas de messages de journal pour les événements de performances, suivez la procédure de dépannage ci-dessous:
Assurez-vous que le SDK Performance Monitoring est correctement initialisé dans votre application.
Assurez-vous que le SDK Performance Monitoring n'est pas désactivé à l'aide de l'indicateur suivant:
performance.instrumentationEnabled
Assurez-vous que la mise en cache de votre navigateur est désactivée, sinon le navigateur risque de ne pas détecter les nouveaux paramètres d'instrumentation.
Fermez, puis rouvrez l'onglet de la page Web. Vérifiez à nouveau la journalisation.
Si vous venez d'ajouter le SDK Performance Monitoring à votre application, vous devrez peut-être redémarrer complètement votre application pour que le SDK commence à fonctionner.
Si vous ne trouvez rien de désactivé dans votre application, contactez l'assistance Firebase.
Les données de délai de première entrée sont manquantes dans le tableau de bord des performances
Si aucune donnée n'est affichée pour la métrique Délai de la première entrée, essayez de suivre les étapes de dépannage ci-dessous :
Notez que Performance Monitoring n'enregistre la métrique premier délai d'entrée que lorsqu'un utilisateur clique sur la page Web dans les cinq premières secondes après le chargement de la page.
Assurez-vous d'avoir configuré votre application pour mesurer cette métrique. La métrique First input delay nécessite une configuration manuelle. Plus précisément, vous devez ajouter la bibliothèque polyfill pour cette métrique. Pour obtenir des instructions d'installation, consultez la documentation de la bibliothèque.
Notez que l'ajout de cette bibliothèque de polyfill n'est pas nécessaire pour que Performance Monitoring signale d'autres métriques d'application Web.
Il manque des données de trace personnalisées dans le tableau de bord des performances
Affichez-vous des données de performances pour les traces collectées automatiquement, mais pas pour les traces de code personnalisé ? Suivez les étapes de dépannage ci-dessous :
Vérifiez la configuration des traces de code personnalisées instrumentées via l'API Trace, en particulier les éléments suivants:
- Les noms des traces de code personnalisées et des métriques personnalisées doivent respecter les conditions suivantes: pas d'espace blanc au début ni à la fin, pas de caractère de soulignement (
_
) au début, et longueur maximale de 32 caractères. - Toutes les traces doivent être démarrées et arrêtées. Aucune trace qui n'est pas démarrée, pas arrêtée ou arrêtée avant le démarrage ne sera journalisée.
Notez que si vous utilisez la méthode
record()
, vous n'avez pas besoin de démarrer ni d'arrêter explicitement votre trace.- Les noms des traces de code personnalisées et des métriques personnalisées doivent respecter les conditions suivantes: pas d'espace blanc au début ni à la fin, pas de caractère de soulignement (
Assurez-vous que la collecte des données Performance Monitoring n'est pas désactivée à l'aide de l'indicateur suivant:
performance.dataCollectionEnabled
Cet indicateur contrôle la collecte de données pour les traces de code personnalisées uniquement (et non pour toutes les données).
Vérifiez vos messages de journal pour vous assurer que Performance Monitoring consigne les traces de code personnalisé attendues.
Si Performance Monitoring enregistre des événements, mais qu'aucune donnée ne s'affiche au bout de 24 heures, contactez l'assistance Firebase.
Données de requête réseau manquantes dans le tableau de bord des performances
Si les données de requête réseau sont manquantes, tenez compte des points suivants:
Performance Monitoring collecte automatiquement les métriques pour les requêtes réseau signalées par l'API du navigateur. Ces rapports n'incluent pas les requêtes réseau ayant échoué.
En fonction du comportement de votre code et des bibliothèques réseau utilisées par votre code, Performance Monitoring ne peut signaler que les requêtes réseau terminées. Cela signifie que les connexions HTTP/S laissées ouvertes ne sont pas nécessairement signalées.
Les données des requêtes réseau ne sont pas agrégées comme prévu
Découvrez comment Performance Monitoring agrège les données de requête réseau sous les formats d'URL.
Vous pouvez également essayer les formats d'URL personnalisés.
Questions fréquentes
Qu'est-il arrivé aux principaux problèmes dans la fiche "Performances" de la page d'accueil du projet ?
Nous avons remplacé Problèmes courants par Alertes récentes, suite à l'introduction récente des alertes, qui vous avertissent automatiquement lorsque les seuils que vous définissez sont dépassés. Les problèmes sont désormais obsolètes et remplacés par des alertes.
Le sélecteur d'applications en haut de la fiche "Performances" filtre les entrées d'alerte sous Alertes récentes. Seules les trois alertes les plus récentes pour l'application ou les applications sélectionnées sont affichées.
Pour en savoir plus sur les alertes, consultez la section Configurer des alertes pour les problèmes de performances.
Qu'est-il arrivé à la possibilité de définir des seuils pour les problèmes dans la console ?
Performance Monitoring est compatible avec les alertes pour les métriques qui dépassent les seuils définis. Pour éviter toute confusion avec ces seuils configurables pour les métriques de performances, nous avons supprimé la possibilité de configurer des seuils pour les problèmes.
Qu'est-il arrivé aux informations "Détails" et "Métriques" dans la console Firebase ?
Nous avons remplacé les pages "Détails" et "Métriques" par une interface utilisateur (UI) centralisée et repensée pour vous permettre de résoudre les problèmes plus efficacement. Cette nouvelle interface de dépannage offre les mêmes fonctionnalités de base que les options "Détails" et "Métriques". Pour en savoir plus sur le dépannage, consultez la section Afficher plus de données pour une trace spécifique.
Pourquoi le nombre d'échantillons ne correspond-il pas à mes attentes ?
Performance Monitoring collecte des données de performances sur les appareils des utilisateurs de votre application. Si votre application compte de nombreux utilisateurs ou génère une grande quantité d'activité de performances, Performance Monitoring peut limiter la collecte de données à un sous-ensemble d'appareils afin de réduire le nombre d'événements traités. Ces limites sont suffisamment élevées pour que, même avec moins d'événements, les valeurs des métriques restent représentatives de l'expérience de l'utilisateur dans l'application.
Pour gérer le volume de données que nous recueillons, Performance Monitoring utilise les options d'échantillonnage suivantes:
Limitation de débit sur l'appareil: pour empêcher un appareil d'envoyer des rafales soudaines de traces, nous limitons le nombre de traces de code et de requêtes réseau envoyées depuis un appareil à 300 événements toutes les 10 minutes. Cette approche protège l'appareil contre les instrumentations en boucle qui peuvent envoyer de grandes quantités de données de performances, et empêche un seul appareil de fausser les mesures de performances.
Échantillonnage dynamique: Performance Monitoring collecte chaque jour un nombre limité de traces de code et de traces de requêtes réseau par application pour tous les utilisateurs de l'application. Un taux d'échantillonnage dynamique est extrait sur les appareils (à l'aide de Firebase Remote Config) pour déterminer si un appareil aléatoire doit capturer et envoyer des traces. Un appareil qui n'est pas sélectionné pour l'échantillonnage n'envoie aucun événement. Le taux d'échantillonnage dynamique est spécifique à l'application et s'ajuste pour s'assurer que le volume global de données collectées reste inférieur à la limite.
Les sessions utilisateur envoient des données détaillées supplémentaires à partir de l'appareil de l'utilisateur, ce qui nécessite plus de ressources pour les capturer et les envoyer. Pour minimiser l'impact des sessions utilisateur, Performance Monitoring peut également limiter le nombre de sessions.
Limitation de débit côté serveur: pour s'assurer que les applications ne dépassent pas la limite d'échantillonnage, Performance Monitoring peut utiliser l'échantillonnage côté serveur pour supprimer certains événements reçus des appareils. Bien que ce type de limitation ne modifie pas l'efficacité de nos métriques, il peut entraîner des changements mineurs de tendances, y compris les suivants:
- Le nombre de traces peut différer du nombre de fois qu'un code a été exécuté.
- Les traces étroitement associées dans le code peuvent avoir chacune un nombre d'échantillons différent.
Qu'est-il arrivé à l'onglet Problèmes de la console ?
Nous avons remplacé l'onglet "Problèmes" par "Alertes", qui vous avertit automatiquement lorsque les seuils que vous définissez sont dépassés. Vous n'avez plus besoin de vérifier manuellement la console Firebase pour déterminer l'état d'un seuil. Pour en savoir plus sur les alertes, consultez Configurer des alertes pour les problèmes de performances.
Qu'est-il arrivé aux onglets Sur l'appareil et Réseau de la console ? Comment puis-je consulter les traces qui se trouvaient sur ces pages ?
Nous avons repensé la section Performance Monitoring de la console Firebase afin que l'onglet Tableau de bord affiche vos métriques clés et toutes vos traces dans un même espace. Lors de la refonte, nous avons supprimé les pages Sur l'appareil et Réseau.
Le tableau des traces en bas de l'onglet Dashboard contient toutes les informations affichées dans les onglets Sur l'appareil et Réseau, mais avec des fonctionnalités supplémentaires, y compris la possibilité de trier vos traces en fonction du pourcentage de variation d'une métrique spécifique. Pour afficher toutes les métriques et données d'une trace spécifique, cliquez sur son nom dans le tableau des traces.
Affichez vos traces dans les sous-onglets suivants du tableau des traces:
- Traces de requêtes réseau (prêt à l'emploi et personnalisées) : sous-onglet Requêtes réseau
- Traces de code personnalisées : sous-onglet Traces personnalisées
- Traces de démarrage, d'application au premier plan et d'application en arrière-plan : sous-onglet Traces personnalisées
- Traces de rendu d'écran : sous-onglet Rendu de l'écran
- Traces de chargement de page : sous-onglet Chargement de la page
Pour en savoir plus sur le tableau des traces, ainsi que sur les métriques et les données de visualisation, consultez la page "Vue d'ensemble de la console" (iOS+ | Android | Web).
Pourquoi le nombre d'images lentes et figées ne correspond-il pas à ce que j'attendais ?
Les images de rendu lent et les images figées sont calculées avec une fréquence d'actualisation de l'appareil supposée de 60 Hz. Si la fréquence d'actualisation d'un appareil est inférieure à 60 Hz, le temps de rendu de chaque frame est plus lent, car moins de frames sont affichés par seconde. Des temps d'affichage plus lents peuvent entraîner l'affichage de plus de frames lents ou figés, car davantage de frames seront affichés plus lentement ou seront figés. Toutefois, si la fréquence d'actualisation d'un appareil est supérieure à 60 Hz, le temps de rendu de chaque frame est plus rapide. Cela peut entraîner moins de rapports sur les images lentes ou figées. Il s'agit d'une limitation actuelle du SDK Performance Monitoring.
Comment ajouter le SDK JavaScript Performance Monitoring (le SDK "autonome") plus petit et associé à un espace de noms à mon application Web ?
Si Performance Monitoring est le seul produit Firebase de votre application, vous pouvez utiliser le SDK Performance Monitoring autonome (et le script d'en-tête recommandé ci-dessous) si vous souhaitez:
- en utilisant une bibliothèque avec un espace de noms
- en réduisant la taille de votre package de SDK ;
- retarder l'initialisation du SDK jusqu'à ce que votre page soit chargée ;
Pour inclure le SDK Performance Monitoring autonome dans votre application et retarder son initialisation après le chargement de votre page:
- Ajoutez le script suivant à l'en-tête de votre fichier d'index.
- Veillez à ajouter l'objet de configuration du projet Firebase de votre application.
(function(sa,fbc){function load(f,c){var a=document.createElement('script'); a.async=1;a.src=f;var s=document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(a,s);}load(sa); window.addEventListener('load',function(){firebase.initializeApp(fbc).performance()}); })(performance_standalone, firebaseConfig);
où :
- performance_standalone correspond à
.'https://www.gstatic.com/firebasejs/11.0.2/firebase-performance.js'
- firebaseConfig est l'objet de configuration Firebase de votre application.
Le script ci-dessus charge de manière asynchrone le SDK autonome, puis initialise Firebase après le déclenchement de l'événement onload
de la fenêtre. Cette tactique réduit l'impact que le SDK pourrait avoir sur les métriques de chargement de page, car le navigateur a déjà signalé ses métriques de chargement lorsque vous avez initialisé le SDK.
En savoir plus sur le SDK Performance Monitoring autonome et le script d'en-tête
Ce SDK autonome est optimisé pour sa taille. Encodé en gzip, il fait environ 10 ko. Il dispose de toutes les fonctionnalités de Firebase Performance Monitoring, ainsi que d'un ensemble minimal de fonctionnalités du SDK principal Firebase.
Firebase Performance Monitoring utilise les API fetch
et Promise
, qui ne sont pas disponibles sur les anciens navigateurs. Les polyfills de ces API sont inclus dans le SDK JS Firebase Performance Monitoring standard, mais ils sont omis du SDK autonome pour réduire la taille.
Le SDK Performance Monitoring s'appuie, en partie, sur l'API Resource Timing pour obtenir des métriques de chargement de page à partir du navigateur.
L'extrait de code suivant décompose le script d'en-tête qui inclut et retarde l'initialisation du SDK :
(function(sdkSource, firebaseConfigObject) { function load(f, c) { // Creates a script tag to load the standalone SDK var sdkScript = document.createElement('script'); // Sets it to an async script so that it doesn't interfere with page load sdkScript.async = 1; // Sets the source of the script sdkScript.src = f; // Inserts the script into the head of the page var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(sdkScript, s); } // Calls the load method load(sdkSource); // Initializes the SDK only when the onload method is called window.addEventListener('load', function() { firebase.initializeApp(firebaseConfigObject).performance(); }); })(performance_standalone, firebaseConfig);
où :
- performance_standalone est
.'https://www.gstatic.com/firebasejs/11.0.2/firebase-performance-standalone.js'
- firebaseConfig est l'objet de configuration Firebase de votre application.
Traitement et affichage des données en quasi-temps réel
Que signifie "quasi en temps réel" ?
Firebase Performance Monitoring traite les données de performances collectées à mesure qu'elles arrivent, ce qui permet d'afficher les données en quasi temps réel dans la console Firebase. Les données traitées s'affichent dans la console dans les minutes qui suivent leur collecte. C'est pourquoi on parle de "quasi-temps réel".
Pour profiter du traitement des données en quasi-temps réel, assurez-vous que votre application utilise une version de SDK compatible avec le temps réel.
Comment obtenir des données sur les performances de mon application en quasi-temps réel ?
Pour profiter du traitement des données en quasi-temps réel, il vous suffit de vous assurer que votre application utilise une version du SDK Performance Monitoring compatible avec le traitement des données en temps réel.
Voici les versions du SDK compatibles avec la surveillance en temps réel:
- iOS : version 7.3.0 ou ultérieure
- tvOS : version 8.9.0 ou ultérieure
- Android : version 19.0.10 ou ultérieure (ou Firebase Android BoM v26.1.0 ou version ultérieure)
- Web : version 7.14.0 ou ultérieure
Notez que nous vous recommandons toujours d'utiliser la dernière version du SDK, mais n'importe quelle version listée ci-dessus permet à Performance Monitoring de traiter vos données en quasi-temps réel.
Quelles versions du SDK Performance Monitoring sont considérées comme compatibles avec la surveillance en temps réel ?
Voici les versions de SDK compatibles avec le traitement des données en temps réel :
- iOS : version 7.3.0 ou ultérieure
- tvOS : version 8.9.0 ou ultérieure
- Android : version 19.0.10 ou ultérieure (ou Firebase Android BoM v26.1.0 ou version ultérieure)
- Web : version 7.14.0 ou ultérieure
Notez que nous vous recommandons toujours d'utiliser la dernière version du SDK, mais n'importe quelle version listée ci-dessus permet à Performance Monitoring de traiter vos données en quasi-temps réel.
Que se passe-t-il si je ne mets pas à jour mon application pour qu'elle utilise une version du SDK compatible avec le temps réel ?
Si votre application n'utilise pas de version de SDK compatible avec le temps réel, vous verrez toujours toutes les données de performances de votre application dans la console Firebase. Toutefois, l'affichage des données de performances sera retardé d'environ 36 heures à compter de leur collecte.
J'ai mis à jour ma version de SDK vers une version compatible avec la surveillance en temps réel, mais certains de mes utilisateurs utilisent toujours d'anciennes versions de mon application. Vais-je continuer à voir leurs données de performances dans la console Firebase ?
Oui ! Quelle que soit la version de SDK utilisée par une instance d'application, vous verrez les données de performances de tous vos utilisateurs.
Toutefois, si vous consultez des données récentes (datant de moins de 36 heures environ), les données affichées proviennent des utilisateurs d'instances d'application utilisant une version du SDK compatible avec le temps réel. Les données non récentes incluent toutefois les données de performances de toutes les versions de votre application.
Contacter l'assistance Firebase
Si vous contactez l'assistance Firebase, indiquez toujours votre ID d'application Firebase. Recherchez votre ID d'application Firebase dans la fiche Vos applications de la section Paramètres du projet de settings.