Surveiller Azure SQL Database avec des métriques et des alertes

S’applique à Azure SQL Database

Vous pouvez utiliser desmétriques Azure Monitor pour surveiller la consommation et l’intégrité des ressources de pool élastique et de base de données. Vous pouvez utiliser des alertes pour envoyer des notifications lorsque les valeurs métriques indiquent un problème potentiel.

Métriques

Une métrique est une série de valeurs numériques mesurées à intervalles de temps réguliers, souvent à l’aide d’unités telles que count, percent, bytes, etc. Selon la nature de la métrique, vous pouvez utiliser des agrégations comme total, count, average, minimum, maximum pour calculer des valeurs métriques sur une durée. Vous pouvez fractionner certaines métriques par dimensions. Chaque dimension fournit un contexte supplémentaire aux valeurs numériques.

Voici quelques exemples de métriques Azure SQL Database disponibles : CPU percentage, Data space used, Deadlocks, Tempdb Percent Log Used.

Consultez les métriques de base de données et les métriques de pool élastique pour toutes les métriques disponibles dans Azure SQL Database.

Remarque

Certaines métriques s’appliquent uniquement aux types spécifiques de bases de données ou de pools élastiques. La description de chaque métrique mentionne si son utilisation est limitée à une base de données spécifique ou à un type de pool élastique, comme vCore, Hyperscale, serverless, etc.

Dans le portail Azure SQL Database, plusieurs métriques couramment utilisées sont décrites dans l’onglet Surveillance de la page Vue d’ensemble. Vous pouvez ainsi évaluer d'un coup d'œil la consommation de ressources et l'intégrité d'une base de données ou d'un pool élastique.

Capture d’écran du Portail Azure présentant un graphique de métriques affiché sur la page Vue d’ensemble d’Azure SQL Database.

Sous Métriques clés, sélectionnez Afficher toutes les métriques ou n’importe où dans le graphique pour ouvrir Metrics Explorer. Sur la page Métriques, vous pouvez afficher toutes les autres métriques disponibles pour la ressource de base de données ou de pool élastique. Dans Metrics Explorer, vous pouvez modifier l’intervalle de temps, la granularité et le type d’agrégation du graphique, changer le type de graphique, développer l’étendue pour inclure des métriques à partir d’autres ressources Azure, créer des règles d’alerte, etc. Vous pouvez également ouvrir Metrics Explorer en sélectionnant l’élément de menu Métriques dans la section Surveillance du menu de ressources.

Utiliser des métriques pour surveiller les bases de données et les pools élastiques

Vous pouvez utiliser des métriques pour surveiller la consommation et l’intégrité des ressources de pool élastique et de base de données. Par exemple, vous pouvez :

  • Dimensionner la base de données ou le pool élastique en fonction de la charge de travail de l'application
  • Détecter une augmentation progressive de la consommation des ressources et effectuer un scale-up proactif de la base de données ou du pool élastique
  • Détecter et résoudre les problèmes de performances

La table suivante décrit les métriques couramment utilisées dans Azure SQL Database.

Nom de métrique ID de la métrique Description
Pourcentage de processeur cpu_percent Cette métrique indique la consommation de l’UC par rapport à la limite de la charge de travail de l'utilisateur d'une base de données ou d'un pool élastique, exprimée en pourcentage. Pour plus d’informations, consultez Consommation de ressources par les charges de travail utilisateur et les processus internes.
Pourcentage de processeur de l’instance SQL sql_instance_cpu_percent Cette métrique indique la consommation totale de l’UC par les charges de travail utilisateur et système, exprimée en pourcentage. Comme cette métrique et celle du pourcentage de l'UC sont mesurées sur des échelles différentes, elles ne sont pas directement comparables l'une à l'autre. Pour plus d’informations, consultez Consommation de ressources par les charges de travail utilisateur et les processus internes.
Pourcentage E/S des données physical_data_read_percent Cette métrique indique la consommation d’E/S des fichiers par rapport à la limite de la charge de travail de l'utilisateur d'une base de données ou d'un pool élastique, exprimée en pourcentage. Pour plus d'informations, consultez Gouvernance des données d’E/S.
Pourcentage E/S du journal log_write_percent Cette métrique indique la consommation du débit d'écriture du journal des transactions par rapport à la limite de la charge de travail de l'utilisateur d'une base de données ou d'un pool élastique, exprimée en pourcentage. Pour plus d'informations, consultez la section Gouvernance des taux du journal des transactions.
Pourcentage de travaux workers_percent Cette métrique indique la consommation de threads de travail par rapport à la limite de la charge de travail de l'utilisateur d'une base de données ou d'un pool élastique, exprimée en pourcentage.
Pourcentage DTU dtu_consumption_percent Cette métrique indique la consommation de DTU par rapport à la limite de la charge de travail de l'utilisateur d'une base de données ou d'un pool élastique, exprimée en pourcentage. Le pourcentage de DTU est dérivé de trois autres métriques : le pourcentage de l'UC, le pourcentage des E/S de données et le pourcentage des E/S de journal. À tout moment, le pourcentage de DTU correspond à la valeur la plus élevée parmi ces trois métriques.
UC utilisée cpu_used Cette métrique indique la consommation de l’UC par rapport à la limite de la charge de travail de l'utilisateur d'une base de données ou d'un pool élastique, exprimée en nombre de vCore. Pour plus d'informations, consultez la section Diagnostiquer et résoudre les problèmes d'utilisation élevée de l’UC sur Azure SQL Database.
DTU utilisé dtu_used Cette métrique indique le nombre de DTU utilisés par une base de données ou un pool élastique.
Processeur d'application facturé app_cpu_billed Pour les bases de données serverless, cette métrique indique la quantité de calcul (UC et mémoire) facturée, exprimée en secondes vCore. Pour plus d’informations, consultez la section Facturation dans le niveau de calcul serverless.
Pourcentage processeur d'application app_cpu_percent Pour les bases de données serverless, cette métrique indique la consommation de l’UC par rapport à la limite maximale vCore du package de l’application, exprimée en pourcentage. Pour plus d’informations, consultez la section Supervision dans le niveau de calcul serverless.
Pourcentage de mémoire de l’application app_memory_percent Pour les bases de données serverless, cette métrique indique la consommation de mémoire par rapport à la limite maximale de mémoire du package de l’application, exprimée en pourcentage. Pour plus d’informations, consultez la section Supervision dans le niveau de calcul serverless.
Nombre de sessions sessions_count Cette métrique indique le nombre de sessions utilisateur établies pour une base de données ou un pool élastique.
Espace de données utilisé storage Pour les bases de données, cette métrique indique la quantité d’espace de stockage utilisée dans les fichiers de données d’une base de données.
Espace de données utilisé storage_used Pour les pools élastiques, cette métrique indique la quantité d’espace de stockage utilisée dans les fichiers de données de toutes les bases de données d’un pool élastique.
Espace de données alloué allocated_data_storage Cette métrique indique la quantité d’espace de stockage occupé par les fichiers de données d’une base de données ou par les fichiers de données de toutes les bases de données d’un pool élastique. Les fichiers de données peuvent contenir des espaces vides. De ce fait, l'espace de données alloué est souvent supérieur à l'espace de données utilisé pour la même base de données ou le même pool élastique. Pour plus d’informations, consultez la section Gérer l’espace de fichiers pour les bases de données dans Azure SQL Database.
Pourcentage d'espace de données utilisé storage_percent Pour les bases de données, cette métrique indique la quantité d’espace de stockage utilisée dans les fichiers de données d’une base de données par rapport à la limite de taille de données d’une base de données. Pour les pools élastiques, cette métrique indique la quantité d’espace de stockage utilisée dans les fichiers de données de toutes les bases de données d’un pool élastique, exprimée en pourcentage par rapport à la limite de taille de données d’un pool élastique. La limite de taille des données pour une base de données ou un pool élastique peut être configurée en dessous de la limite maximale de taille des données. Pour trouver la limite maximale de taille de données, consultez les limites de ressources pour les bases de données vCore, les pools élastiques vCore, les bases de données DTU et les pools élastiques DTU.
Pourcentage d'espace de données alloué allocated_data_storage_percent Pour les pools élastiques, cette métrique indique la quantité d'espace de stockage occupée par les fichiers de données de toutes les bases de données d'un pool élastique par rapport à la limite de taille des données du pool, exprimée en pourcentage.
Pourcentage d’utilisation du journal tempdb tempdb_log_used_percent Cette métrique indique la consommation de l'espace du journal des transactions dans la base de données tempdb par rapport à la taille maximale du journal, exprimée en pourcentage. Pour plus d’informations, consultez la section tempdb dans Azure SQL Database.
Connexions réussies connection_successful Cette métrique indique le nombre de connexions établies avec succès à une base de données. Cette métrique peut être divisée en deux dimensions, SslProtocol et ValidatedDriverNameAndVersion, pour afficher le nombre de connexions en utilisant une version spécifique du protocole de chiffrement ou d’un pilote client spécifique.
Échec des connexions : erreurs système connection_failed Cette métrique indique le nombre de tentatives de connexion à une base de données qui ont échoué en raison d'erreurs de service interne. La plupart du temps, ces erreurs sont temporaires. Cette métrique peut être divisée en deux dimensions, Error et ValidatedDriverNameAndVersion, pour afficher le nombre de tentatives de connexion échouées en raison d'une erreur spécifique, ou à partir d'un pilote client spécifique.
Échec des connexions : erreurs utilisateur connection_failed_user_error Cette métrique indique le nombre de tentatives de connexion à une base de données qui ont échoué en raison d'erreurs corrigeables par l'utilisateur, comme un mot de passe incorrect ou une connexion bloquée par un pare-feu. Cette métrique peut être divisée en deux dimensions, Error et ValidatedDriverNameAndVersion, pour afficher le nombre de tentatives de connexion échouées en raison d'une erreur spécifique, ou à partir d'un pilote client spécifique.
Interblocages deadlock Cette métrique indique le nombre de blocages dans une base de données.

Alertes

Vous pouvez créer des règles d’alerte pour vous avertir que la valeur d’une métrique ou de plusieurs métriques se situe en dehors d’une plage prévue.

Vous pouvez définir l’étendue d’une règle d’alerte de plusieurs manière pour répondre à vos besoins. Par exemple, l’étendue de la règle d’alerte peut être définie sur :

  • Une base de données unique
  • Un pool élastique
  • Toutes les bases de données ou pools élastiques dans un groupe de ressources
  • Toutes les bases de données ou pools élastiques d’un abonnement dans une région Azure
  • Toutes les bases de données ou pools élastiques dans un abonnement dans toutes les régions

Les règles d’alerte évaluent périodiquement les valeurs métriques agrégées sur une période de recherche, en les comparant à une valeur seuil. Vous pouvez configurer la valeur seuil, la fréquence d’évaluation et la période de recherche.

Si une règle d’alerte est déclenchée, vous êtes averti selon vos préférences de notification, que vous spécifiez dans le groupe d’actions lié à la règle d’alerte. Par exemple, vous pouvez recevoir un e-mail, un SMS ou une notification vocale. Une règle d'alerte peut également déclencher des actions comme des webhooks, des runbooks d'automatisation, des fonctions, des applications logiques, etc. Vous pouvez intégrer les alertes aux produits de gestion des services informatiques pris en charge.

Pour en savoir plus sur les alertes Azure Monitor, consultez la section Vue d’ensemble des alertes Azure Monitor. Pour vous familiariser avec les alertes de métriques, consultez les sections Alertes de métriques, Gérer les règles d'alerte et Groupes d'action.

Les métriques et les seuils optimaux à utiliser dans les règles d'alerte varient en fonction du large éventail de charges de travail des clients dans Azure SQL Database.

Les alertes recommandées dans la table suivante constituent un point de départ pour vous aider à définir la configuration optimale des alertes pour vos ressources Azure SQL Database. Selon vos besoins, votre configuration peut différer de cet exemple. Vous pouvez utiliser différents seuils, différentes fréquences d'évaluation ou différentes périodes de recherche. Vous pouvez choisir de créer des alertes supplémentaires ou d'utiliser différentes configurations de règles d'alerte pour différentes applications et différents environnements.

Voici des exemples de configurations de règle d’alerte classiques.

Nom de la règle d’alerte Métrique (signal) Logique d'alerte Quand évaluer Gravité suggérée
Utilisation élevée de l’UC de l’utilisateur Pourcentage de processeur Seuil : Static
Agrégation :
Averageopérateur : Greater than
valeur seuil :90
Vérifier chaque : 1 minute
Période de recherche : 10 minutes
2 - Avertissement
Utilisation totale élevée de l’UC Pourcentage de processeur de l’instance SQL Seuil : Static
Agrégation :
Averageopérateur : Greater than
valeur seuil :90
Vérifier chaque : 1 minute
Période de recherche : 10 minutes
2 - Avertissement
Utilisation élevée du Worker Pourcentage de travaux Seuil : Static
Agrégation :
Minimumopérateur : Greater than
valeur seuil :60
Vérifier chaque : 1 minute
Période de recherche : 5 minutes
1 - Erreur
Utilisation élevée des données E/S Pourcentage E/S des données Seuil : Static
Agrégation :
Averageopérateur : Greater than
valeur seuil :90
Vérifier chaque : 1 minute
Période de recherche : 15 minutes
3 - Informations
Peu d’espace pour les données Pourcentage d'espace de données utilisé Seuil : Static
Agrégation :
Minimumopérateur : Greater than
valeur seuil :95
Vérifier chaque : 15 minute
Période de recherche : 15 minutes
1 - Erreur
Peu d’espace pour les journaux tempdb Pourcentage d’utilisation du journal tempdb Seuil : Static
Agrégation :
Minimumopérateur : Greater than
valeur seuil :60
Vérifier chaque : 1 minute
Période de recherche : 5 minutes
1 - Erreur
Blocages Interblocages Seuil : Dynamic
Agrégation :
TotalOpérateur : Greater than
Sensibilité du seuil :Medium
Vérifier chaque : 15 minutes
Période de recherche : 1 hour
3 - Informations
Échec des connexions (erreurs utilisateur) Échec des connexions : erreurs utilisateur Seuil : Dynamic
Agrégation :
TotalOpérateur : Greater than
Sensibilité du seuil :Medium
Vérifier chaque : 5 minutes
Période de recherche : 15 minutes
2 - Avertissement
Échec des connexions (erreurs système) Échec des connexions : erreurs système Seuil : Static
Agrégation : Total
Opérateur : Greater than
Unité : Count
Valeur seuil :10
Vérifier chaque : 1 minute
Période de recherche : 5 minutes
2 - Avertissement
Taux de connexion anormale Connexions réussies Seuil : Dynamic
Agrégation :
TotalOpérateur : Greater or Less than
Sensibilité du seuil :Low
Vérifier chaque : 5 minutes
Période de recherche : 15 minutes
2 - Avertissement

Certaines des règles d’alerte recommandées utilisent des seuils dynamiques pour détecter des modèles de métriques anormales susceptibles de nécessiter une attention particulière. Les règles d’alerte basées sur des seuils dynamiques ne se déclenchent pas tant que des données historiques suffisantes n’ont pas été collectées pour établir des modèles normaux. Pour plus d'informations, consultez la section Seuils dynamiques dans les alertes de métriques.

Par défaut, les alertes de métriques sont des alertes avec état. Cela signifie qu’une fois qu’une règle d’alerte est déclenchée, l’alerte n’est déclenchée qu’une seule fois. L'alerte reste dans l’état fired jusqu'à ce qu'elle soit résolue, après quoi une notification est envoyée. Une règle d’alerte déclenche une nouvelle alerte une fois l’alerte précédente résolue. Les alertes avec état évitent les notifications fréquentes concernant une situation en cours. Pour plus d’informations sur les alertes avec état et sans état, consultez la section Alertes et état.