Surveiller les performances de la base de données

Il existe plusieurs façons de surveiller les performances de votre Firebase Realtime Database 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 Realtime Database. Pour surveiller 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, en plus des requêtes non indexées. Toutefois, elle n'inclut pas d'informations historiques ni de statistiques sur les frais généraux de connexion et ne doit pas être utilisée 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 la surcharge liée au protocole et au chiffrement) et la charge de votre base de données sur des intervalles d'une minute. L'onglet Utilisation vous offre un aperçu plus précis des performances globales de votre base de données. Toutefois, vous ne pourrez peut-être pas obtenir suffisamment de détails pour résoudre les éventuels problèmes de performances.

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 é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 Cloud Monitoring spécifiques 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 de 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 identifier les types d'opérations qui 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 reporting d'une minute une fois l'opération terminée.

Réseau désactivé pour dépassement

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

Stockage désactivé en cas de dépassement

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

Combinez des métriques dans les graphiques de 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 connaître 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 demandes de connexion SSL reçues par votre base de données et séparez les demandes 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 charge de la base de données

La métrique io/database_load fournit également un libellé indiquant le type d'opération à l'origine de la charge. Voici les types d'opérations mesurés :

  • 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'un 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 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 type de métrique sont précédés de 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 métriques Realtime Database disponibles via Cloud Monitoring.