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. Les métriques vous permettent d’é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.
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. |
Disponibilité | availability |
La disponibilité est déterminée en fonction de la base de données opérationnelle pour les connexions. Pour chaque point de données d’une minute, les valeurs possibles sont 100% ou 0% . Pour plus d’informations, consultez Métriques de disponibilité. |
Métrique de disponibilité
La métrique de disponibilité effectue le suivi de la disponibilité au niveau de la base de données Azure SQL individuel. Actuellement, cette fonctionnalité est uniquement disponible en tant que version préliminaire.
La disponibilité est granulaire à une minute de panne de connexion. La disponibilité est déterminée en fonction de la base de données opérationnelle pour les connexions. Une minute est considérée comme un temps d'arrêt ou une indisponibilité si toutes les tentatives continues des utilisateurs d'établir une connexion à la base de données pendant cette minute échouent en raison d'un problème de service. S’il existe une indisponibilité intermittente, la durée de l’indisponibilité continue doit traverser la limite de minute à considérer comme un temps d’arrêt. En règle générale, la latence d’affichage de la disponibilité est inférieure à trois minutes.
Voici la logique utilisée pour calculer la disponibilité pour chaque intervalle d’une minute :
- S’il existe au moins une connexion réussie, la disponibilité est de 100 %.
- Si toutes les connexions échouent en raison d’erreurs utilisateur, la disponibilité est de 100 %.
- En l’absence de tentatives de connexion, la disponibilité est de 100 %.
- Si toutes les connexions échouent en raison d’erreurs système, la disponibilité est de 0 %.
- Actuellement, les données des métriques de disponibilité ne sont pas encore prises en charge pour le niveau de calcul serverless et sont affichées sous forme de 100 %.
La métrique de disponibilité est donc une métrique composite dérivée des métriques existantes suivantes :
- Connexions réussies
- Échec des connexions : erreurs utilisateur
- Bloqué par le pare-feu
- Échec des connexions : erreurs système
Les erreurs utilisateur incluent toutes les connexions qui échouent en raison de la configuration utilisateur, de la charge de travail ou de la gestion. Les erreurs système incluent toutes les connexions qui échouent en raison de problèmes temporaires liés au service de la base de données Azure SQL.
Exemples d’erreurs provoquées par la configuration utilisateur :
Exemples d’erreurs provoquées par la charge de travail de l’utilisateur :
Exemples d’erreurs provoquées par la gestion des utilisateurs :
- Monter ou descendre en puissance la base de données ou le pool élastique
- Géoréplication planifiée ou un basculement non planifié
- Basculement planifié ou non planifié du groupe de basculement
- Base de données secondaire géo dans l’état d’amorçage
- Base de données en état de restauration en raison d’une limite de restauration dans le temps (PITR), d’une restauration à long terme (LTR) ou d’une restauration à partir d’une base de données supprimée
- Base de données qui n’est pas encore copiée (copie de 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.
Règles d’alerte recommandées
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 : Average opé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 : Average opé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 : Minimum opé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 : Average opé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 : Minimum opé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 : Minimum opé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 : Total Opé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 : Total Opé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 : Total Opé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.
Contenu connexe
- Vue d’ensemble des métriques Azure Monitor
- Surveiller les charges de travail Azure SQL avec l’observateur de base de données (aperçu)
- Analyser les métriques avec l’Explorateur de métriques Azure Monitor
- Explication de l’agrégation et l’affichage des métriques Azure Monitor
- Vue d’ensemble des alertes Azure Monitor
- Tutoriel : Créer une alerte de métrique pour une ressource Azure
- Bonnes pratiques pour les alertes d’Azure Insights
- Résolution des problèmes relatifs aux alertes Azure Monitor
- Supervision et réglage des performances dans Azure SQL Database et Azure SQL Managed Instance
- Configurer l’exportation en continu de la télémétrie de diagnostic d’Azure SQL Database et de SQL Managed Instance