Analyser les performances de la base de données avec des événements étendus

Cette page explique comment utiliser des événements étendus (XEvents) sur vos instances.

Cloud SQL est compatible avec l'utilisation de XEvents pour surveiller, identifier et dépanner les performances de votre base de données. Pour ce faire, vous devez créer des sessions XEvent et lire les fichiers de sortie XEvent. Vous pouvez lire les fichiers de sortie XEvent sur l'instance ou en les téléchargeant à partir d'un bucket Cloud Storage.

Avant de commencer

Si vous souhaitez importer vos fichiers XEvent dans un bucket Cloud Storage, créez un bucket dans votre compte Google Cloud.

Bonnes pratiques

  • Pour éviter de transférer des fichiers volumineux entre plusieurs régions, nous vous recommandons d'effectuer l'une des opérations suivantes :
    • Créer des buckets Cloud Storage multirégionaux
    • Configurer le bucket Cloud Storage de destination dans la même région que l'instance
  • Avant d'utiliser XEvents, activez l'augmentation automatique de l'espace de stockage. Les fichiers de sortie XEvent, en fonction de leur taille totale et de leurs intervalles de conservation, peuvent nécessiter un espace disque important.
  • Pour éviter de conserver trop de fichiers XEvent pendant une longue période, configurez une règle de conservation des données pour votre bucket Cloud Storage.
  • Si vous créez une session XEvent à l'aide de l'UI SSMS, mais que certaines zones de valeurs d'entrée ne s'affichent pas, redimensionnez la fenêtre Create XEvent Session (Créer une session XEvent).

Créer des sessions XEvent

XEvents est automatiquement activé sur vos instances.

Utilisez la commande CREATE EVENT SESSION pour définir de nouvelles sessions XEvent. Vous pouvez également utiliser l'interface utilisateur de SQL Server Management Studio (SSMS) pour créer des sessions XEvent.

Cloud SQL applique les paramètres suivants pour toutes les sessions XEvent :

Paramètre Description Valeurs autorisées
FILENAME Spécifie le nom de fichier et le chemin d'accès pour le stockage des données de session XEvents. Tous les chemins commençant par /var/opt/mssql/xevents/
MAX_FILE_SIZE Spécifie la taille maximale de chaque fichier de sortie avant la création d'un nouveau fichier. 10 Mo minimum
1 Go maximum
MAX_MEMORY Spécifie la quantité maximale de mémoire à allouer à la session pour la mise en mémoire tampon des événements. 4 Mo minimum
8 Mo maximum
MAX_DISPATCH_LATENCY Spécifie la durée maximale (en secondes) pendant laquelle les événements peuvent rester dans la file d'attente de distribution avant d'être envoyés à la cible. 1 s minimum
30 s maximum
MAX_EVENT_SIZE Définit la taille maximale de chaque événement, en octets. 4 Mo minimum
8 Mo maximum

Paramètres de configuration de la session XEvent

Vous pouvez configurer des sessions XEvent en utilisant les paramètres suivants en tant qu'options personnalisées :

Paramètre Description
cloud sql xe bucket name Spécifiez le bucket Cloud Storage dans lequel vous souhaitez importer la sortie de la session XEvent. Si cette valeur n'est pas spécifiée, Cloud SQL n'importe pas les données de sortie de session XEvent dans Cloud Storage.
cloud sql xe output total disk size (mb) Spécifiez la quantité d'espace disque à réserver pour le résultat de toutes les sessions XEvent. Si cette valeur n'est pas spécifiée, Cloud SQL utilise un espace disque par défaut de 512 Mo. Si les fichiers de sortie XEvent utilisent un espace disque supérieur à la valeur de cloud sql xe output total disk size (mb), Cloud SQL supprime ces fichiers du disque.
cloud sql xe file retention (mins) Spécifiez la durée de conservation de l'instance en minutes pour les fichiers générés par les cibles de fichiers des sessions XEvent. Si cette valeur n'est pas spécifiée, Cloud SQL utilise une valeur par défaut de 7 jours.
cloud sql xe upload interval (mins) Spécifiez l'intervalle d'importation pour les fichiers XEvent importés dans Cloud Storage. Si cette valeur n'est pas spécifiée, Cloud SQL utilise une valeur par défaut de 10 minutes.

Pour en savoir plus sur la configuration de ces options, consultez la section Configurer des options de base de données.

Lire les fichiers de sortie de la session XEvent

Vous pouvez lire les fichiers de sortie de session XEvent à partir d'une instance Cloud SQL ou d'un bucket Cloud Storage.

Lire les fichiers de sortie XEvent à partir d'une instance

Pour récupérer les données d'un fichier XEvent créé par une session XEvent, utilisez la fonction sys.fn_xe_file_target_read_file.

Exemple :

SELECT * FROM sys.fn_xe_file_target_read_file('/var/opt/mssql/xevents/filename*, NULL, NULL, NULL);

Lire les fichiers de sortie XEvent à partir d'un bucket

Pour lire les fichiers de sortie XEvent d'un bucket Cloud Storage, téléchargez-les sur une instance SQL Server. Vous pouvez effectuer le téléchargement depuis l'une des instances suivantes :

  • Instance Windows Compute Engine
  • Instance Linux Compute Engine
  • Autre type d'instance exécutant SQL Server

Ensuite, transférez les fichiers de sortie XEvent du bucket vers un emplacement accessible à cette instance, tel que son disque local. Ensuite, pour renvoyer des informations à partir du fichier de sortie XEvent, exécutez la fonction sys.fn_xe_file_target_read_file avec un compte disposant de l'autorisation VIEW SERVER STATE sur le serveur. Pour en savoir plus sur les autorisations, consultez la page Autorisations.

Métriques de surveillance

Vous pouvez surveiller les opérations liées à xevent suivantes dans le cadre des métriques Cloud SQL, disponibles via l'explorateur de métriques:

  • database/sqlserver/xevents_upload_count: indique le nombre total de tentatives d'importation de fichiers Xevent réussies et échouées. Consultez cette métrique pour vérifier si vos importations ont réussi.
  • database/sqlserver/xevents_size: indique l'espace disque utilisé par les fichiers xevent stockés sur l'instance, en octets.

Surveiller les sessions XEvent

Vous pouvez surveiller les activités liées à la session XEvent via le fichier xevents.log pour les opérations suivantes :

  • Les fichiers de sortie XEvent supprimés du disque, qui n'ont pas été importés dans Cloud Storage et occupaient un espace disque supérieur à la valeur associée à cloud sql xe output total disk size (mb).
  • Les fichiers de sortie XEvent supprimés du disque, qui n'ont pas été importés dans Cloud Storage et sont antérieurs à la valeur associée à cloud sql xe file retention.

Éléments à prendre en compte pour les instances répliquées avec accès en lecture

Cette section contient des informations sur les sessions XEvent pour les instances répliquées avec accès en lecture nouvelles et existantes.

Pour les nouvelles instances répliquées avec accès en lecture

  • Tous les paramètres de configuration de session XEvent transmis via des options de base de données sur l'instance d'origine sont disponibles sur l'instance répliquée avec accès en lecture qui vient d'être créée.
  • Toutes les sessions XEvent présentes sur l'instance d'origine lors de la création des instances répliquées avec accès en lecture sont disponibles sur l'instance répliquée avec accès en lecture. Notez que les sessions XEvent sur l'instance répliquée avec accès en lecture doivent être démarrées manuellement, sauf si elles sont configurées pour démarrer automatiquement. Pour en savoir plus, consultez la section Créer des sessions XEvent.
  • Si vous clonez une instance principale, toutes les options de base de données qui apparaissent sur l'instance principale sont propagées vers l'instance clonée. En outre, vous devez accorder des autorisations au compte de service de l'instance clonée pour accéder de nouveau au bucket Cloud Storage.

Pour les instances répliquées existantes avec accès en lecture

  • Les paramètres de configuration de session XEvent transmis par le biais d'options de base de données à l'instance d'origine ne sont pas propagés aux instances répliquées avec accès en lecture.
  • Les sessions XEvent créées sur l'instance d'origine ne sont pas propagées aux instances répliquées avec accès en lecture.