À propos de l'observabilité des bases de données

L'observabilité des bases de données est une mesure de la précision avec laquelle vous pouvez déduire l'état interne d'un système de base de données en fonction des données ou de la télémétrie qu'il génère dans les journaux, les métriques et les traces.

Le diagnostic et le dépannage des problèmes d'une application peuvent s'avérer particulièrement difficiles et chronophages lorsqu'une base de données est impliquée. La collecte de télémétrie est d'une importance cruciale. La télémétrie, lorsqu'elle s'accompagne du contexte de l'application, peut rendre les instances de base de données plus compréhensibles, observables et faciles à gérer. Vous pouvez facilement identifier les incidents et les tendances problématiques et les résoudre rapidement, tout en limitant les temps d'arrêt coûteux. De plus, l'utilisation de ces données vous permet de configurer des instances de base de données plus récentes afin de collecter le type de données approprié au moment du démarrage.

Vous pouvez ainsi utiliser les données de manière efficace et proactive pour éviter les problèmes et vous concentrer sur l'innovation stratégique. Une collecte de télémétrie bien menée est particulièrement utile dans le modèle DevOps, où les généralistes de base de données doivent analyser indépendamment la télémétrie pour surveiller, évaluer et optimiser les performances et l'état de leurs applications en constante évolution.

Google Cloud offre plusieurs fonctionnalités puissantes couvrant les quatre étapes d'observabilité itératives pour vous aider à maintenir l'état de votre base de données Cloud SQL.

Étapes itératives de l'implémentation de l'observabilité

Collecte automatisée de télémétrie

Pour atteindre des objectifs d'observabilité, nous commençons par collecter les données de télémétrie, de préférence via un processus automatisé. Lorsqu'elle est effectuée sur une période, la collecte de télémétrie permet d'établir une référence pour les métriques dans différentes conditions de charge.

Les services Google Cloud génèrent automatiquement des données d'observabilité, y compris des métriques, des journaux et des traces, ce qui peut vous fournir une présentation complète de l'observabilité.

  • Cloud Monitoring collecte des mesures de votre service et des ressources Google Cloud que vous utilisez. Cloud SQL utilise des agents personnalisés à mémoire intégrée pour collecter la télémétrie des requêtes, ce qui réduit l'impact sur les performances et élimine le besoin de maintenance des agents ou les coûts liés à la sécurité.

  • Cloud Logging collecte les données de journalisation à partir des composants d'application courants. Pour Cloud SQL, consultez également la section Afficher les journaux d'instance.

  • Cloud Trace collecte les données de latence et les plans de requête exécutés à partir d'applications pour vous aider à suivre la propagation des requêtes dans votre application. Vous pouvez comparer ces distributions de latence dans le temps ou entre les versions. Cloud Trace vous alerte lorsqu'il détecte un changement significatif dans le profil de latence de votre application, s'il est instrumenté pour utiliser Cloud Trace.

Sqlcommenter, une bibliothèque OpenTelemetry pour les bases de données, vous permet de surveiller vos bases de données sous l'angle d'une application. Sqlcommenter instrumente automatiquement les ORM pour augmenter les instructions SQL à l'aide de tags et permet de propager les informations de contexte de trace OpenTelemetry dans la base de données.

Avec les tags et le contexte de l'application dans les bases de données, il est facile de mettre en corrélation le code de l'application avec les performances de la base de données et de résoudre les problèmes liés aux architectures basées sur des microservices.

Surveillance des bases de données

Une surveillance appropriée vous aide à déterminer si votre application fonctionne de manière optimale. Implémentez la surveillance de manière anticipée, par exemple avant de lancer une migration ou avant de déployer une nouvelle application dans un environnement de production. Faites la distinction entre les problèmes d'application et les problèmes liés au cloud sous-jacents.

La page de présentation de Cloud SQL affiche des graphiques pour certaines métriques clés.

Cloud SQL vous aide également à comparer les métriques pour les instances sélectionnées.

Cloud Monitoring vous permet de créer des tableaux de bord personnalisés qui vous aident à surveiller les métriques et à configurer des règles d'alerte afin de recevoir des notifications en temps opportun.

Analyse de bases de données et de requêtes

L'outil Query Insights de Cloud SQL fournit des fonctionnalités de surveillance et de diagnostic qui vous permettent de détecter et de résoudre les problèmes de performances des requêtes.

Les tableaux de bord de Insights sur les requêtes vous permettent d'identifier de manière anticipée les problèmes de performances des requêtes et de passer de la détection à la résolution à l'aide d'une seule interface. Les plans de requête visuels intégrés vous aident à résoudre les problèmes. Vous pouvez également utiliser le traçage en contexte de l'application de bout en bout pour rechercher la source d'une requête problématique.

Query Insights offre également une surveillance centrée sur les applications qui vous aide à diagnostiquer les problèmes de performances des applications créées à l'aide de mappages ORM (Object-Relational Mappings). Vous pouvez ajouter des tags à des requêtes en utilisant une logique métier à laquelle la requête est associée, telle que le paiement, l'inventaire, l'analyse commerciale ou la livraison. Query Insights peut s'intégrer à vos outils APM existants, ce qui vous permet de surveiller et de résoudre les problèmes de requête à l'aide de votre outil préféré.

L'outil QueryInsights utilise sqlcommenter pour instrumenter automatiquement vos ORM. Cette instrumentation vous aide à identifier le code de l'application à l'origine des problèmes. Insights sur les requêtes est compatible avec les standards OpenTelemetry et rend les données de métriques de requête et de traces disponibles pour vos outils APM via l'API de Google Cloud Observability.

Insights sur les requêtes s'intègre à Cloud Monitoring, ce qui vous permet de créer des tableaux de bord et des alertes personnalisés sur les métriques ou les tags de requête, et de recevoir des notifications par e-mail, SMS, Slack, PagerDuty, etc.

Réglage de la base de données

Vous pouvez effectuer un dépannage et un réglage itératif de votre base de données.

Les outils de recommandation Cloud SQL vous aident à analyser l'utilisation actuelle de votre base de données et fournissent des recommandations et des insights basés sur des méthodes heuristiques et le machine learning.

Les outils de recommandation Cloud SQL sont brièvement décrits comme suit :

Nom Description
Outil de recommandation pour manque d'espace disque Réduisez le risque d'indisponibilité imputable à des instances Cloud SQL manquant d'espace disque.
Outil de recommandation pour instances inactives Réduisez les coûts en arrêtant les instances Cloud SQL inactives non intentionnellement.
Outil de recommandation pour instances surprovisionnées Réduisez les coûts en redimensionnant les instances Cloud SQL inutilement volumineuses pour une charge de travail donnée.
Outil de recommandation pour instances sous-provisionnées Évitez les goulots d'étranglement liés à une utilisation intensive du processeur et de la mémoire, et réduisez la probabilité d'événements de mémoire insuffisante en redimensionnant les instances Cloud SQL qui utilisent beaucoup de processeurs et/ou de mémoire.
Outil de recommandation pour nombre élevé de tables ouvertes Optimisez les performances de votre instance en augmentant la taille du cache ouvert pour les instances Cloud SQL dont le nombre de tables ouvertes est égal au cache ouvert des tables et qui ouvrent trop de tables simultanément.
Outil de recommandation pour nombre élevé de tables Optimisez les performances de votre instance en réduisant le nombre de tables associées aux instances Cloud SQL dont le nombre de tables est trop élevé et proche de la limite du contrat de niveau de service.

Étapes suivantes