Cette page explique comment utiliser le tableau de bord d'Insights sur les requêtes pour détecter et analyser les problèmes de performances.
Présentation
Les insights sur les requêtes vous aident à détecter, à diagnostiquer et à éviter les problèmes de performances des requêtes pour les bases de données Cloud SQL. Il offre un système de surveillance intuitif et fournit des informations de diagnostic qui vous aident à identifier la principale cause des problèmes de performances.
Insights sur les requêtes vous aide à améliorer les performances des requêtes Cloud SQL en suivant les étapes ci-dessous :
- Afficher la charge de la base de données pour les requêtes populaires
- Identifier une requête potentiellement problématique
Insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus
Si vous utilisez l'édition Cloud SQL Enterprise Plus, vous pouvez accéder à des fonctionnalités supplémentaires dans les insights sur les requêtes pour effectuer des diagnostics avancés des performances des requêtes. En plus des fonctionnalités standards du tableau de bord "Insights sur les requêtes", les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus vous permettent d'effectuer les opérations suivantes:
- Capturer un texte de requête plus long (jusqu'à 20 ko)
- Conserver les métriques pendant 30 jours
- Obtenir des recommandations d'index du conseiller d'index
- Mettre fin à une session dans les requêtes actives
Le tableau suivant compare les exigences fonctionnelles et les fonctionnalités des insights sur les requêtes pour l'édition Cloud SQL Enterprise avec celles de l'édition Cloud SQL Enterprise Plus.
Zone de comparaison | Insights sur les requêtes pour l'édition Cloud SQL Enterprise | Insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus |
---|---|---|
Versions de bases de données compatibles |
Toutes les versions des instances suivantes:
Insights sur les requêtes n'est pas compatible avec les instances de l'édition Express de SQL Server |
SQL Server Enterprise version 2019 ou 2022 |
Types de machines compatibles | Compatible avec tous les types de machines | Non compatible avec les instances qui utilisent un type de machine à cœur partagé |
Régions où le service est disponible | Zones régionales Cloud SQL | Zones géographiques de l'édition Cloud SQL Enterprise Plus |
Durée de conservation des métriques | 7 jours | 30 jours |
Limite maximale de la longueur de la requête | 4 500 octets | 20 ko |
Recommandations du conseiller d'index | Non disponible | Disponible |
Arrêter les sessions dans les requêtes actives | Non disponible | Disponible |
Pour activer les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus lors de la version Preview de votre instance Cloud SQL Enterprise Plus, suivez la procédure décrite dans Activer les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus.
Tarifs
Les insights sur les requêtes ne sont pas facturés. De plus, l'activation des insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus, qui est en preview, ne vous coûtera rien.
Exigences de stockage
Les insights sur les requêtes stockent des données de métriques sur l'instance et nécessitent que vous laissiez le paramètre d'augmentation automatique de l'espace de stockage activé. Des frais de stockage applicables s'appliquent.
Avant de commencer
Avant d'utiliser les insights sur les requêtes, procédez comme suit :
- Ajoutez les rôles et les autorisations requis.
- Assurez-vous que l'option Activer l'augmentation automatique de l'espace de stockage est activée pour l'instance.
Rôles et autorisations requis
Pour utiliser les insights sur les requêtes, vous devez accorder des rôles avec les autorisations Identity and Access Management requises ou fournir un compte utilisateur disposant des autorisations requises.
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Pour obtenir les autorisations nécessaires pour accéder à l'historique des données d'exécution des requêtes dans le tableau de bord "Insights sur les requêtes", demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet qui héberge l'instance Cloud SQL:
-
Lecteur de surveillance Database Insights (
roles/databaseinsights.monitoringViewer
) -
Lecteur Cloud SQL (
roles/cloudsql.viewer
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour accéder à l'historique des données d'exécution des requêtes dans le tableau de bord "Insights sur les requêtes". Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Vous devez disposer des autorisations suivantes pour accéder aux données d'historique de l'exécution des requêtes dans le tableau de bord "Insights sur les requêtes" :
-
databaseinsights.aggregatedStats.query
-
databaseinsights.timeSeries.query
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Par exemple, dans Database Insights, vous pouvez demander à votre administrateur de vous accorder le rôle prédéfini Lecteur de Database Insights (roles/databaseinsights.viewer
). Ensuite, dans Cloud SQL, vous pouvez demander à votre administrateur de vous attribuer l'un des rôles prédéfinis suivants :
- Éditeur Cloud SQL (
roles/cloudsql.editor
) - Administrateur Cloud SQL (
roles/cloudsql.admin
)
Activer l'augmentation automatique de l'espace de stockage
Assurez-vous que le paramètre d'instance permettant d'activer l'augmentation automatique de l'espace de stockage reste activé.Si vous avez précédemment désactivé ce paramètre d'instance, réactivez l'augmentation automatique de l'espace de stockage avant d'activer les insights sur les requêtes.
Activer les insights sur les requêtes
Les utilisateurs qui ont accès au tableau de bord Cloud SQL peuvent accéder aux métriques Query Insights. Si vous êtes autorisé à mettre à jour des instances, vous pouvez activer les insights sur les requêtes. Pour obtenir la liste des autorisations requises pour les instances Cloud SQL, consultez la page Contrôle des accès aux projets Cloud SQL. Si vous ne disposez pas de ces autorisations et que vous souhaitez activer les insights sur les requêtes dans vos instances, contactez votre administrateur.
Console
Activer les insights sur les requêtes pour une instance
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Personnaliser votre instance, développez Insights sur les requêtes.
- Cochez la case Activer Insights sur les requêtes.
- Facultatif. Sélectionnez une ou plusieurs des fonctionnalités supplémentaires de Query Insights suivantes:
- Cliquez sur Enregistrer.
Personnaliser la longueur des requêtes
Valeur par défaut : 1024
Définit la limite de longueur des requêtes sur une valeur spécifiée comprise entre 256 octets et 4 500 octets. Des longueurs de requête plus élevées sont plus utiles pour les requêtes analytiques, mais elles nécessitent également davantage de mémoire. Pour modifier la longueur de la requête, vous devez redémarrer l'instance.
Activer les insights sur les requêtes pour plusieurs instances
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Cliquez sur le menu Autres actions sur n'importe quelle ligne.
- Sélectionnez Activer Insights sur les requêtes.
- Dans la boîte de dialogue, cochez la case Activer Insights sur les requêtes pour plusieurs instances.
- Cliquez sur Activer.
- Dans la boîte de dialogue suivante, sélectionnez les instances pour lesquelles vous souhaitez activer Insights sur les requêtes.
- Cliquez sur Activer Insights sur les requêtes.
gcloud
Pour activer Insights sur les requêtes pour une instance Cloud SQL à l'aide de gcloud
, exécutez gcloud sql instances patch
avec l'option --insights-config-query-insights-enabled
comme illustré ci-dessous après avoir remplacé INSTANCE_ID par l'ID de l'instance.
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled
De plus, utilisez une ou plusieurs des options facultatives suivantes :
--insights-config-query-string-length
Définit la limite de longueur par défaut des requêtes de 256 à 4 500 octets. La longueur de requête par défaut est de 1 024 octets. Des longueurs de requête plus élevées sont plus utiles pour les requêtes analytiques, mais elles nécessitent également davantage de mémoire. Pour modifier la longueur de la requête, vous devez redémarrer l'instance.
Remplacez les éléments suivants :
- INSIGHTS_CONFIG_QUERY_STRING_LENGTH : longueur de la chaîne de requête à stocker, en octets.
- API_TIER_STRING : configuration d'instance personnalisée à utiliser pour l'instance.
- REGION : région de l'instance
gcloud sql instances patch INSTANCE_ID \ --insights-config-query-insights-enabled \ --insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH \ --tier=API_TIER_STRING \ --region=REGION
REST v1
Pour activer Insights sur les requêtes pour une instance Cloud SQL à l'aide de l'API REST, appelez la méthode instances.patch
avec les paramètres insightsConfig
.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID du projet
- instance-id : ID de l'instance.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Corps JSON de la requête :
{ "settings" : { "insightsConfig" : { "queryInsightsEnabled" : true } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2021-01-28T22:43:40.009Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Terraform
Pour utiliser Terraform pour activer Insights sur les requêtes pour une instance Cloud SQL, définissez l'indicateur query_insights_enabled
sur true
.
Vous pouvez également utiliser une ou plusieurs des options facultatives suivantes :
-
query_string_length
: la valeur par défaut est1024
, et vous pouvez la configurer sur une valeur comprise entre256
et4500
en octets. -
record_application_tags
: définissez la valeur surtrue
si vous souhaitez enregistrer les balises d'application à partir de la requête. -
record_client_address
: définissez la valeur surtrue
si vous souhaitez enregistrer l'adresse IP du client. -
query_plans_per_minute
: la valeur par défaut est5
, et vous pouvez la configurer sur une valeur comprise entre5
et20
.
Exemple :
Pour appliquer votre configuration Terraform dans un projet Google Cloud , suivez les procédures des sections suivantes.
Préparer Cloud Shell
- Lancez Cloud Shell.
-
Définissez le projet Google Cloud par défaut dans lequel vous souhaitez appliquer vos configurations Terraform.
Vous n'avez besoin d'exécuter cette commande qu'une seule fois par projet et vous pouvez l'exécuter dans n'importe quel répertoire.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Les variables d'environnement sont remplacées si vous définissez des valeurs explicites dans le fichier de configuration Terraform.
Préparer le répertoire
Chaque fichier de configuration Terraform doit avoir son propre répertoire (également appelé module racine).
-
Dans Cloud Shell, créez un répertoire et un nouveau fichier dans ce répertoire. Le nom du fichier doit comporter l'extension
.tf
, par exemplemain.tf
. Dans ce tutoriel, le fichier est appelémain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si vous suivez un tutoriel, vous pouvez copier l'exemple de code dans chaque section ou étape.
Copiez l'exemple de code dans le fichier
main.tf
que vous venez de créer.Vous pouvez également copier le code depuis GitHub. Cela est recommandé lorsque l'extrait Terraform fait partie d'une solution de bout en bout.
- Examinez et modifiez les exemples de paramètres à appliquer à votre environnement.
- Enregistrez les modifications.
-
Initialisez Terraform. Cette opération n'est à effectuer qu'une seule fois par répertoire.
terraform init
Vous pouvez également utiliser la dernière version du fournisseur Google en incluant l'option
-upgrade
:terraform init -upgrade
Appliquer les modifications
-
Examinez la configuration et vérifiez que les ressources que Terraform va créer ou mettre à jour correspondent à vos attentes :
terraform plan
Corrigez les modifications de la configuration si nécessaire.
-
Appliquez la configuration Terraform en exécutant la commande suivante et en saisissant
yes
lorsque vous y êtes invité :terraform apply
Attendez que Terraform affiche le message "Apply completed!" (Application terminée).
- Ouvrez votre projet pour afficher les résultats. Dans la console Google Cloud , accédez à vos ressources dans l'interface utilisateur pour vous assurer que Terraform les a créées ou mises à jour.
Les métriques devraient être disponibles dans les insights sur les requêtes quelques minutes après la fin de la requête.
Activer les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus
Vous ne pouvez activer les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus sur votre instance Cloud SQL qu'à l'aide de la console Google Cloud .
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Modifier.
- Dans la section Stockage, vérifiez que la case Activer l'augmentation automatique de l'espace de stockage est cochée.
- Dans la section Personnaliser votre instance, développez Insights sur les requêtes.
- Cochez la case Activer les fonctionnalités Enterprise Plus.
Après avoir activé les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus, vous pouvez modifier les champs suivants:
Personnaliser la longueur des requêtes: spécifiez la limite, en octets, de la longueur des requêtes. Vous pouvez spécifier un nombre compris entre
256
et20480
. Toute chaîne de requête qui dépasse la limite spécifiée est tronquée à l'écran. Une limite de longueur de requête plus élevée nécessite davantage de mémoire. La valeur par défaut est10240
octets (10 ko).
Cliquez sur Enregistrer.
Afficher le tableau de bord d'Insights sur les requêtes
Le tableau de bord d'Insights sur les requêtes affiche la charge de la requête en fonction des facteurs que vous sélectionnez. La charge de la requête correspond au calcul du travail total pour toutes les requêtes de l'instance au cours de la période sélectionnée. Le tableau de bord fournit une série de filtres qui vous aident à afficher la charge des requêtes.
Pour ouvrir le tableau de bord d'Insights sur les requêtes, procédez comme suit :
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Sélectionnez l'onglet Insights sur les requêtes dans le panneau de navigation de gauche ou cliquez sur le lien Accéder à Query Insights pour obtenir des informations plus détaillées sur les requêtes et les performances.
Le tableau de bord d'Insights sur les requêtes s'ouvre. Il affiche les informations suivantes concernant votre instance:
- Bases de données: permet de filtrer la charge des requêtes sur une base de données spécifique ou sur toutes les bases de données.
- Période: permet de filtrer la charge des requêtes par période, par exemple par heure, par jour, par semaine, par 30 jours ou selon une plage personnalisée.
- Graphique de la charge de la base de données: affiche le graphique de la charge des requêtes en fonction des données filtrées.
- Requêtes et Bases de données: permet de filtrer la charge des requêtes en fonction d'une requête ou d'une base de données sélectionnées. Consultez la section Filtrer la charge de la base de données.
Afficher la charge de la base de données pour toutes les requêtes
La charge de la requête de la base de données est une mesure du travail (en secondes du processeur) ayant exécuté les requêtes de la base de données sélectionnée au fil du temps. Chaque requête en cours d'exécution utilise ou attend des ressources du processeur, des ressources d'E/S ou des ressources de verrouillage. La charge des requêtes de la base de données correspond au ratio du temps pris par toutes les requêtes effectuées sur une période donnée par rapport à la durée d'exécution.
Le tableau de bord d'Insights sur les requêtes de premier niveau affiche le graphique Charge de la base de données par temps d'exécution. Les menus déroulants du tableau de bord vous permettent de filtrer le graphique pour toutes les bases de données ou une base de données spécifique.
Les lignes colorées du graphique indiquent la charge de la base de données par temps d'exécution. Examinez le graphique et utilisez les options de filtrage pour explorer les questions suivantes :
- La charge de la requête est-elle élevée ? Le graphique a-t-il connu un pic ou augmenté au fil du temps ? Si la charge n'est pas élevée, le problème ne vient pas de votre requête.
- Depuis combien de temps la charge est-elle élevée ? Est-elle élevée seulement maintenant ou depuis longtemps ? Utilisez le sélecteur de plage pour sélectionner différentes périodes afin de déterminer la durée du problème. Faites un zoom avant pour afficher une période dans laquelle des pics de la charge de requête ont été observés. Effectuez un zoom arrière pour afficher jusqu'à une semaine de la chronologie.
- Quelle base de données subit la charge ? Sélectionnez différentes bases de données dans le menu déroulant "Bases de données" pour trouver celles qui présentent les charges les plus élevées.
Filtrer la charge de la base de données
Vous pouvez filtrer la charge de la base de données par requêtes. Si vous utilisez Insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus, vous pouvez personnaliser le graphique de charge de la base de données pour ventiler les données affichées à l'aide de l'une des dimensions suivantes:Toutes les requêtes
Bases de données
Pour personnaliser le graphique de charge de la base de données, sélectionnez une dimension dans le menu déroulant Charge de la base de données par temps d'exécution.
Afficher les principaux contributeurs à la charge de la base de données
Pour afficher les principales dimensions contribuant à la charge de la base de données, vous pouvez utiliser le tableau Principales dimensions par charge de la base de données. Le tableau Principales dimensions par charge de la base de données affiche les principaux contributeurs pour la période et la dimension que vous sélectionnez dans le menu déroulant du graphique Charge de la base de données par temps d'exécution. Vous pouvez modifier la période ou la dimension pour afficher les principaux contributeurs pour une autre période ou dimension.
Dans le tableau Principales dimensions par chargement de données, vous pouvez sélectionner les onglets suivants.
Tabulation | Description |
---|---|
Requêtes | Le tableau affiche les principales requêtes normalisées par temps d'exécution total.
Pour chaque requête, les données affichées dans les colonnes sont listées comme suit :
|
Bases de données | Le tableau présente la liste des principales bases de données ayant contribué à la charge au cours de la période choisie pour toutes les requêtes exécutées.
|
Filtrer par requêtes
Le tableau Requêtes fournit un aperçu des requêtes qui provoquent les charges de requête les plus élevées. Le tableau affiche toutes les requêtes normalisées pour la période et les options sélectionnées dans le tableau de bord d'Insights sur les requêtes. Il trie les requêtes par durée d'exécution totale au cours de la période sélectionnée.
Pour trier le tableau, sélectionnez un en-tête de colonne. Le tableau présente les propriétés suivantes:
- Requête: chaîne de requête normalisée. Par défaut, Insights sur les requêtes n'affiche que 1 024 caractères dans la chaîne de requête.
- Database (Base de données) : base de données sur laquelle la requête a été exécutée.
- Temps d'exécution moyen (ms) : temps moyen d'exécution de la requête.
- Temps d'exécution total (ms): temps total d'exécution de la requête.
- Heures d'appel: nombre de fois que l'application a appelé la requête.
- Lignes renvoyées en moyenne: nombre moyen de lignes renvoyées pour la requête.
Insights sur les requêtes stocke et affiche uniquement les requêtes normalisées.
Désactiver les insights sur les requêtes
Console
Pour désactiver Insights sur les requêtes pour une instance Cloud SQL à l'aide de la console Google Cloud , procédez comme suit:
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Dans la tuile Configuration, cliquez sur Modifier la configuration.
- Dans la section Options de configuration, développez Insights sur les requêtes.
- Décochez la case Activer Insights sur les requêtes.
- Cliquez sur Save (Enregistrer).
gcloud
Pour désactiver Insights sur les requêtes pour une instance Cloud SQL à l'aide de gcloud
, exécutez gcloud sql instances patch
avec l'option --no-insights-config-query-insights-enabled
comme indiqué ci-dessous, après avoir remplacé INSTANCE_ID par l'ID de l'instance.
gcloud sql instances patch INSTANCE_ID
--no-insights-config-query-insights-enabled
REST
Pour désactiver Insights sur les requêtes pour une instance Cloud SQL à l'aide de l'API REST, appelez la méthode instances.patch
avec queryInsightsEnabled
défini sur false
comme suit.
Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :
- project-id : ID du projet
- instance-id : ID de l'instance.
Méthode HTTP et URL :
PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id
Corps JSON de la requête :
{ "settings" : { "insightsConfig" : { "queryInsightsEnabled" : false } } }
Pour envoyer votre requête, développez l'une des options suivantes :
Vous devriez recevoir une réponse JSON de ce type :
{ "kind": "sql#operation", "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id", "status": "PENDING", "user": "user@example.com", "insertTime": "2021-01-28T22:43:40.009Z", "operationType": "UPDATE", "name": "operation-id", "targetId": "instance-id", "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id", "targetProject": "project-id" }
Désactiver les insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus
Pour désactiver Insights sur les requêtes pour l'édition Cloud SQL Enterprise Plus, procédez comme suit:
-
Dans la console Google Cloud , accédez à la page Instances Cloud SQL.
- Pour ouvrir la page Présentation d'une instance, cliquez sur son nom.
- Cliquez sur Modifier.
- Dans la section Personnaliser votre instance, développez Insights sur les requêtes.
- Décochez la case Activer les fonctionnalités Enterprise Plus.
- Cliquez sur Enregistrer.
Étape suivante
- Blog sur le lancement : Observabilité de la base de données pour les développeurs : présentation de Cloud SQL Insights
- Blog : Boostez vos compétences en dépannage des performances à l'aide de Cloud SQL Insights
- Vidéo : Présentation de Cloud SQL Insights
- Podcast : Cloud SQL Insights
- Atelier de programmation Insights