Surveiller les performances de la base de données

Il existe plusieurs façons de surveiller les performances de votre Firebase Realtime Database's et d'identifier les problèmes potentiels dans votre application. La surveillance de la bande passante et de la charge entrantes et sortantes de votre application peut également vous permettre de savoir à quoi vous attendre pour votre facture. De plus, si vous avez l'impression qu'il y a un problème, avoir une vision claire des opérations de votre base de données peut être un outil de dépannage utile.

Cette page traite de la surveillance des performances de Realtime Database. Pour la surveillance de l'utilisation, consultez Surveiller l'utilisation de la base de données.

Utiliser les outils de surveillance Realtime Database

Vous pouvez collecter des données sur les performances de votre Realtime Database's à l'aide de quelques outils différents, en fonction du niveau de précision dont vous avez besoin.

Utiliser l'outil de profilage de Realtime Database

L'outil de profilage Realtime Database de Realtime Database fournit une vue d'ensemble en temps réel des opérations de lecture/écriture sur votre base de données. Le rapport inclut des informations sur la vitesse et la taille de la charge utile de chaque opération, en plus des requêtes non indexées. Toutefois, il n'inclut pas d'informations historiques ni de statistiques sur la surcharge de connexion et ne doit pas être utilisé pour estimer les coûts de facturation.

Pour en savoir plus sur l'utilisation de l'outil de profilage, consultez Profiler votre base de données.

Utiliser la Firebase console

L'onglet Utilisation de la Firebase console fournit des informations sur les connexions simultanées à votre base de données, la quantité de données que vous stockez, la bande passante sortante (y compris la surcharge de protocole et de chiffrement) et la charge de votre base de données sur des intervalles d'une minute. Bien que l'onglet Utilisation vous offre une vue d'ensemble plus précise des performances globales de votre base de données, vous ne pourrez peut-être pas explorer les données en détail pour résoudre les problèmes de performances potentiels.

Utiliser Cloud Monitoring

Avec Cloud Monitoring de Google Cloud, vous pouvez utiliser l'Explorateur de métriques pour afficher des métriques de performances individuelles ou créer différents tableaux de bord avec des graphiques qui affichent différentes combinaisons de métriques de performances au fil du temps. L'Realtime Database intégration avec Cloud Monitoring offre le niveau de précision le plus élevé.

La procédure de configuration de Cloud Monitoring est décrite dans Surveiller l'utilisation de la base de données.

Consultez les sections suivantes pour obtenir des conseils sur l'utilisation de métriques spécifiques Cloud Monitoring afin d'identifier les problèmes de performances.

Surveiller les performances dans Cloud Monitoring

Si vous rencontrez des problèmes de performances, y compris de disponibilité ou de latence, vous pouvez utiliser Cloud Monitoring pour surveiller les métriques suivantes. Notez que tous les noms de type de métrique sont précédés du préfixe firebasedatabase.googleapis.com/.

Nom de la métrique Description
Charge de la base de données

io/database_load. Utilisez cette métrique pour surveiller la quantité de votre bande passante de base de données disponible utilisée pour traiter les requêtes au fil du temps. Vous pouvez constater des problèmes de performances lorsque la charge de votre base de données approche la bande passante totale disponible. Vous pouvez également voir quels types d'opérations utilisent le plus de charge, et résoudre les problèmes en conséquence. La charge signalée peut dépasser 100 % pour les opérations qui durent plus d'une minute. Cela se produit lorsque la bande passante totale utilisée sur plusieurs minutes est condensée dans l'intervalle de création de rapports d'une minute une fois l'opération terminée.

Réseau désactivé en cas de dépassement

network/disabled_for_overages. This metric reflects any outages that might have occurred if your Realtime Database exceeded any bandwidth or network limits.

Stockage désactivé en cas de dépassement

storage/disabled_for_overages. Cette métrique reflète les pannes qui peuvent s'être produites si votre Realtime Database a dépassé les limites de stockage.

Combinez les métriques dans les graphiques de votre tableau de bord pour obtenir des insights et des vues d'ensemble utiles. Par exemple, essayez les combinaisons suivantes :

  • Opérations : utilisez la métrique io/database_load pour voir la part de la charge totale de votre base de données utilisée par chaque type d'opération. Veillez à regrouper io/database_load par type pour résoudre les problèmes liés aux différents types d'opérations.
  • Stockage : utilisez storage/limit et storage/total_bytes pour surveiller votre utilisation du stockage par rapport aux limites de stockage de Realtime Database. Vous pouvez également ajouter storage/disabled_for_overages pour voir si votre application a subi des temps d'arrêt en raison du dépassement des limites de stockage.
  • Surcharge SSL : utilisez network/https_requests_count pour surveiller le nombre de requêtes de connexion SSL reçues par votre base de données et divisez les requêtes qui ont réutilisé un ticket de session SSL existant avec le filtre reused_ssl_session. Vous pouvez mesurer cela par rapport à network/sent_bytes_count et network/sent_payload_and_protocol_bytes_count pour surveiller si votre application utilise efficacement les tickets de session SSL.

Vous pouvez également configurer des alertes via Cloud Monitoring et recevoir des notifications basées sur les métriques Realtime Database. Par exemple, vous pouvez choisir de recevoir une notification si votre io/database_load approche d'un certain seuil.

Consultez la liste complète des Realtime Database métriques disponibles via Cloud Monitoring.

Types de charge de base de données

La métrique io/database_load fournit également une étiquette indiquant le type d'opération qui a causé la charge. Voici les types d'opérations mesurés possibles :

  • admin : opérations d'administration telles que la définition de règles et la lecture des métadonnées du projet.
  • auth : vérification de l'authentification à partir de comptes de service ou de Firebase Authentication pour un seul client.
  • client_management : gestion de l'ajout et de la suppression de connexions simultanées y compris l'exécution d'opérations de déconnexion lors de la suppression.
  • get_shallow : récupération des données à partir d'une requête REST GET avec shallow=true.
  • get : gestion des opérations REST GET.
  • listen : récupération des données initiales pour les opérations on et once à partir des clients connectés.
  • on_disconnect : enregistrement des opérations de déconnexion des clients.
  • put : gestion des opérations set à partir de clients ou des opérations REST PUT.
  • transaction : exécution de transactions à partir de requêtes REST conditionnelles ou d'une transaction opération à partir d'un client.
  • update : gestion des opérations update ou des requêtes REST PATCH.

Surveiller les règles de sécurité dans Cloud Monitoring

Vous pouvez également analyser l'évaluation des règles de sécurité. Notez que tous les noms de type de métrique sont précédés du préfixe firebasedatabase.googleapis.com/.

Nom de la métrique Description
Évaluations des règles rules/evaluation_count. Nombre d'évaluations des règles Realtime Database effectuées en réponse à des requêtes d'écriture ou de lecture. Vous pouvez décomposer cette métrique par résultat de la requête (AUTORISER, REFUSER ou ERREUR).

Adaptez votre graphique Cloud Monitoring pour les évaluations des règles selon vos besoins, par exemple en filtrant sur des résultats d'évaluation spécifiques (AUTORISER, REFUSER ou ERREUR). La configuration et la personnalisation des graphiques sont abordées dans Surveiller l'utilisation de la base de données.

Consultez la liste complète des Realtime Database métriques disponibles via Cloud Monitoring.