Surveiller les performances de la base de données

Il existe plusieurs façons de surveiller les performances de votre Firebase Realtime Database et de détecter les problèmes potentiels dans votre application. L'examen de la bande passante entrante et de la bande passante sortante et de la charge de votre application peut également vous donner une idée de ce à quoi vous attendre sur votre facture. De plus, si quelque chose semble anormal, obtenir une image 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 en savoir plus sur 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 à l'aide de différents outils, en fonction du niveau de précision dont vous avez besoin.

Utiliser l'outil de profilage Realtime Database

L'outil de profilage Realtime Database fournit un aperçu 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, ainsi que sur les requêtes non indexées. Toutefois, il n'inclut pas d'informations historiques ni de statistiques sur les frais 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 console Firebase

L'onglet Utilisation de la console Firebase 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 les dépassements associés au protocole et au chiffrement) et la charge de votre base de données sur un intervalle d'une minute. Bien que l'onglet Utilisation vous donne un aperçu plus précis des performances globales de votre base de données, vous ne pourrez peut-être pas explorer suffisamment les données 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'intégration de Realtime Database à Cloud Monitoring offre le niveau de précision le plus poussé.

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 Cloud Monitoring spécifiques afin de détecter les problèmes de performances.

Surveiller les performances dans Cloud Monitoring

Si vous rencontrez des problèmes de performances, y compris de temps d'activité ou de latence, vous pouvez utiliser Cloud Monitoring pour surveiller les métriques suivantes. Notez que tous les noms de types de métriques 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 bande passante de base de données disponible utilisée pour traiter les requêtes au fil du temps. Vous pouvez rencontrer des problèmes de performances lorsque la charge de votre base de données approche de 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 rapport d'une minute une fois l'opération terminée.

Réseau désactivé pour cause de dépassement

network/disabled_for_overages. Cette métrique reflète les pannes qui ont pu se produire si votre Realtime Database a dépassé les limites de bande passante ou de réseau.

Stockage désactivé pour les dépassements

storage/disabled_for_overages. Cette métrique reflète les pannes qui ont pu se produire si votre Realtime Database a dépassé les limites de stockage.

Combinez des métriques dans des graphiques sur votre tableau de bord pour obtenir des insights et des aperçus utiles. Par exemple, essayez les combinaisons suivantes :

  • Opérations : utilisez la métrique io/database_load pour voir quelle part de la charge totale de votre base de données est 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 l'utilisation de votre stockage par rapport aux limites de stockage Realtime Database. Vous pouvez également ajouter storage/disabled_for_overages pour voir si votre application a connu un 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 séparez les requêtes qui ont réutilisé un ticket de session SSL existant avec le filtre reused_ssl_session. Vous pouvez comparer cette valeur à network/sent_bytes_count et network/sent_payload_and_protocol_bytes_count pour vérifier 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 métriques Realtime Database disponibles via Cloud Monitoring.

Types de charges de base de données

La métrique io/database_load fournit également une étiquette indiquant le type d'opération à l'origine de 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 : gère l'ajout et 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 des clients ou des opérations REST PUT.
  • transaction : effectuer des transactions à partir de requêtes REST conditionnelles ou d'une opération transaction à 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 types de métriques 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 ventiler cette métrique en fonction du résultat de la requête (ALLOW, DENY ou ERROR).

Adaptez votre graphique Cloud Monitoring pour les évaluations de 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 la section Surveiller l'utilisation de la base de données.

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