Partager via


Explication de l’agrégation et de l’affichage des métriques Azure Monitor

Cet article explique l’agrégation des métriques dans la base de données de série chronologique où sont sauvegardées les métriques de plateforme et les métriques personnalisées d’Azure Monitor. Cet article s’applique également aux métriques d’Application Insights standard.

Les informations contenues dans cet article sont complexes et s’adressent à tous ceux qui souhaitent approfondir le système de métriques. La compréhension de ce système n’est pas nécessaire pour utiliser efficacement les métriques d’Azure Monitor.

Présentation et terminologie

Lorsque vous ajoutez une métrique à un graphique, Metrics Explorer présélectionne automatiquement son agrégation par défaut. La valeur par défaut convient aux scénarios de base. Toutefois, vous pouvez utiliser d’autres agrégations pour obtenir des insights supplémentaires sur la métrique. Pour afficher différentes agrégations sur un graphique, vous devez comprendre comment Metrics Explorer les gère.

Nous allons tout d’abord définir quelques termes :

  • Valeur de métrique : valeur de mesure collectée pour une ressource spécifique.
  • Base de données de série chronologique : base de données optimisée pour le stockage et la récupération de points de données contenant tous une valeur et un horodatage correspondant.
  • Période : période de temps générique.
  • Intervalle de temps : temps écoulé entre deux collectes de valeurs de métrique.
  • Plage temporelle : période affichée sur un graphique. La valeur par défaut est généralement de 24 heures. Seules les plages précises sont disponibles.
  • Granularité temporelle ou Fragment de temps : période utilisée pour agréger des valeurs en vue de leur affichage sur un graphique. Seules les plages précises sont disponibles. La valeur minimale est de 1 minute. Pour être utile, la valeur de granularité temporelle doit être inférieure à celle de la plage temporelle sélectionnée, sinon, une seule valeur sera affichée pour l’ensemble du graphique.
  • Type d’agrégation : type de statistique calculé à partir de plusieurs valeurs de métriques.
  • Agrégat : processus qui consiste à utiliser plusieurs valeurs d’entrée, puis à les utiliser pour produire une seule valeur de sortie via les règles définies par le type d’agrégation. Par exemple, en utilisant la moyenne de plusieurs valeurs.

Résumé du processus

Les métriques sont une série de valeurs stockées avec un horodatage. Dans Azure, la plupart des métriques sont stockées dans la base de données de série chronologique des métriques Azure. Lorsque vous tracez un graphique, les valeurs des métriques sélectionnées sont extraites de la base de données, puis agrégées séparément en fonction de la granularité temporelle choisie (également appelée fragment de temps). Vous sélectionnez la taille de la granularité temporelle à l’aide du sélecteur d’heure de l’explorateur de métriques. Si vous n’effectuez pas de sélection explicite, la granularité temporelle est automatiquement sélectionnée en fonction de la plage temporelle actuellement sélectionnée. Une fois la sélection effectuée, les valeurs de métriques qui ont été capturées à chaque intervalle de granularité temporelle sont agrégées et placées sur le graphique (un point de données par intervalle).

Types d’agrégation

Cinq types d’agrégation de base sont disponibles dans Metrics Explorer : L’explorateur de métriques masque les agrégations non pertinentes et ne peut pas être utilisé pour une métrique donnée.

  • Somme : somme de toutes les valeurs capturées au cours de l’intervalle d’agrégation. La somme est parfois appelée « agrégation totale ».
  • Nombre : nombre de mesures capturées au cours de l’intervalle d’agrégation. Il ne s’intéresse pas à la valeur de la mesure, mais uniquement au nombre d’enregistrements.
  • Moyenne : moyenne des valeurs de métriques capturées au cours de l’intervalle d’agrégation. Pour la plupart des métriques, cette valeur correspond à celle de Somme ou de Nombre.
  • Min : la plus petite valeur capturée au cours de l’intervalle d’agrégation.
  • Max : la plus grande valeur capturée au cours de l’intervalle d’agrégation.

Supposons, par exemple, qu’un graphique montre la métrique Octets sortants réseau totaux pour une machine virtuelle, en utilisant l’agrégation SUM obtenue au cours des dernières 24 heures. La plage temporelle et la granularité peuvent être modifiées en haut à droite du graphique, comme le montre la capture d’écran suivante.

Capture d’écran montrant le sélecteur de plage temporelle et de granularité temporelle

Pour la granularité temporelle = 30 minutes et pour la plage temporelle = 24 heures :

  • Le graphique est dessiné à partir de 48 points de données se présentant sous la forme de points de données de 1 minute agrégés (24 heures x 2 points de données par heure (60 minutes/30 minutes)).
  • Le graphique en courbes connecte 48 points dans la zone de traçage du graphique.
  • Chaque point de données représente la somme de tous les octets sortants réseau qui sont envoyés au cours de chaque période de 30 minutes.

Capture d’écran montrant les données d’un graphique en courbes configuré sur une plage temporelle de 24 heures et une granularité temporelle de 30 minutes

Cliquez sur les images de cette section pour les afficher en plus grand.

Si vous configurez la granularité temporelle sur 15 minutes, le graphique sera dessiné à partir de 96 points de données agrégés. Autrement dit, 60 min/15 min = 4 points de données par heure x 24 heures.

Capture d’écran montrant les données d’un graphique en courbes configuré sur une plage temporelle de 24 heures et une granularité temporelle de 15 minutes

Pour une granularité temporelle de 5 minutes, vous obtenez 24 x (60/5) = 288 points.

Capture d’écran montrant les données d’un graphique en courbes configuré sur une plage temporelle de 24 heures et une granularité temporelle de 5 minutes

Pour une granularité temporelle de 1 minute (la plus petite possible sur le graphique), vous obtenez 24 x 60/1 = 1 440 points.

Capture d’écran montrant les données d’un graphique en courbes configuré sur une plage temporelle de 24 heures et une granularité temporelle de 1 minute

Comme vous pouvez le voir dans les captures d’écran précédentes, les graphiques ont une apparence différente selon les sommes. Remarquez que cette machine virtuelle dispose de nombreuses sorties pendant une courte période par rapport au reste de la fenêtre de temps.

La granularité temporelle vous permet d’ajuster le rapport signal/bruit sur un graphique. Les agrégations les plus élevées suppriment le bruit et aplanissent les pics. Remarquez les variations du graphique avec une granularité de 1 minute, ainsi que la façon dont elles s’aplanissent à mesure que les valeurs de granularité augmentent.

Ce comportement d’aplanissement est important lorsque vous envoyez ces données à d’autres systèmes, par exemple pour des alertes. En règle générale, vous ne souhaitez pas être alerté pour des pics courts en temps de processeur dépassant 90 %. Toutefois, si le processeur reste à 90 % pendant 5 minutes, il s’agit probablement d’un problème important. Si vous configurez une règle d’alerte pour le processeur (ou pour n’importe quelle métrique), le fait d’augmenter la granularité temporelle pourra réduire le nombre de fausses alertes que vous recevez.

Il est important de savoir ce qui est « normal » pour votre charge de travail afin de déterminer l’intervalle de temps le mieux adapté. Cela fait partie des avantages des alertes dynamiques, qui ne seront pas abordées ici.

Comment le système collecte les métriques

La collecte des données varie selon la métrique.

Remarque

Les exemples ci-dessous sont simplifiés pour l’illustration et les métriques réelles incluses dans chaque agrégation sont affectées par les données disponibles à la survenue de l’évaluation.

Fréquence de collecte des mesures

Il existe deux types de périodes de collecte.

  • Régulier : la métrique est collectée à un intervalle de temps invariable.

  • D’après l’activité : la métrique est collectée en fonction du moment où se produit une transaction d’un certain type. Chaque transaction est associée à une entrée de métrique et à un horodatage. Elle n’est pas collectée à intervalles réguliers. Par conséquent, le nombre d’enregistrements varie sur une période donnée.

Granularité

La granularité temporelle minimale est de 1 minute, mais le système sous-jacent peut capturer des données plus rapidement en fonction de la métrique. Par exemple, le pourcentage d’UC pour une machine virtuelle Azure est capturé selon un intervalle de temps de 15 secondes. Étant donné que les échecs HTTP sont capturés comme des transactions, ils peuvent dépasser largement 1 minute. D’autres métriques, telles que le stockage SQL, sont capturées selon un intervalle de temps de 20 minutes. Ce choix dépend du fournisseur et du type de ressources. La plupart tentent de fournir le plus petit intervalle de temps possible.

Dimensions, fractionnement et filtrage

Des métriques sont capturées pour chaque ressource. Toutefois, le niveau auquel les métriques sont collectées, stockées et représentées sous forme de graphique peut varier. Ce niveau est représenté par d’autres métriques disponibles dans les dimensions de métriques. Chaque fournisseur de ressources choisit le niveau de détail des données collectées. Azure Monitor définit uniquement la manière dont ces détails sont présentés et stockés.

Dans Metrics Explorer, lorsque vous représentez une métrique sous forme de graphique, vous avez la possibilité de « fractionner » le graphique en fonction d’une dimension. Le fractionnement d’un graphique vous permet d’examiner les données sous-jacentes pour obtenir plus de détails, mais également de voir que les données sont représentées sous forme graphique ou qu’elles sont filtrées dans l’explorateur de métriques.

Par exemple, pour Microsoft.ApiManagement/service, Emplacement est une dimension qui est définie pour de nombreuses métriques.

  • Capacité fait partie de ces métriques. L’utilisation de la dimension Emplacement signifie que le système sous-jacent va stocker un enregistrement de métrique pour la capacité de chaque emplacement, plutôt qu’un seul pour la quantité agrégée. Vous pouvez ensuite récupérer ou fractionner ces informations dans un graphique de métriques.

  • Lorsque vous regardez Durée globale des demandes de passerelle, vous voyez deux dimensions : Emplacement et Nom d’hôte. Celles-ci vous indiquent l’emplacement d’une durée, ainsi que le nom d’hôte dont elle provient.

  • L’une des métriques les plus flexibles, Demandes, comporte 7 dimensions.

Pour plus d’informations sur chacune des métriques et sur les dimensions disponibles, consultez l’article Azure Monitor sur les métriques prises en charge. De plus, la documentation de chaque type et chaque fournisseur de ressources peut fournir des informations supplémentaires sur les dimensions et sur ce qu’elles permettent de mesurer.

Vous pouvez utiliser à la fois le fractionnement et le filtrage des données pour examiner un problème. Vous trouverez ci-dessous un exemple de graphique présentant la métrique Moy. disque, octets/écriture pour un groupe de machines virtuelles au sein d’un groupe de ressources. Avec cette métrique, nous avons un récapitulatif pour toutes les machines virtuelles. Toutefois, nous pourrions vouloir connaître les machines responsables des pics survenus aux environs de 6 h 00. S’agit-il d’une seule et même machine ? Combien de machines sont impliquées ?

Capture d’écran montrant le nombre total d’octets d’écriture sur le disque pour toutes les machines virtuelles appartenant au groupe de ressources Contoso Hotels

Cliquez sur les images de cette section pour les afficher en plus grand.

Lorsque nous appliquons le fractionnement, nous pouvons voir les données sous-jacentes, toutefois, leur affichage n’est pas très clair. Il se trouve que 20 machines virtuelles sont agrégées dans le graphique ci-dessus. Ici, nous avons utilisé notre souris pour pointer sur le pic de 6 h 00, qui nous indique que CH-DCVM11 est en cause. Toutefois, il est difficile de voir les autres données associées à cette machine virtuelle, car d’autres machines virtuelles encombrent le graphique.

Capture d’écran montrant le nombre d’octets d’écriture sur le disque pour toutes les machines virtuelles appartenant au groupe de ressources Contoso Hotels, avec une segmentation par nom de machine virtuelle

L’utilisation du filtrage nous permet de nettoyer le graphique pour voir ce qu’il se passe vraiment. Vous pouvez cocher ou décocher les machines virtuelles que vous souhaitez afficher. Remarquez les lignes en pointillés. Celles-ci seront mentionnées dans une prochaine section.

Capture d’écran montrant le nombre d’octets d’écriture sur le disque pour toutes les machines virtuelles appartenant au groupe de ressources Contoso Hotels, avec une segmentation et un filtrage par nom de machine virtuelle

Pour plus d’informations sur la façon d’afficher des données fractionnées par dimension sur un graphique Metrics Explorer, consultez Fonctionnalités avancées de Metrics Explorer - Filtres et fractionnement.

Valeurs NULL et égales à zéro

Lorsque le système s’attend à recevoir des données de métriques d’une ressource, mais ne les reçoit pas, il enregistre une valeur NULL. Une valeur NULL n’équivaut pas à une valeur de zéro, ce qu’il est très important de prendre en compte lors du calcul des agrégations et de la génération des graphiques. Les valeurs NUL ne sont pas comptabilisées comme des mesures valides.

Les valeurs NULL s’affichent différemment selon les graphiques. Les nuages de points ne montrent pas l’un des points sur le graphique. Les graphiques à barres ne montrent pas la barre. Sur les graphiques en courbes, les valeurs NULL peuvent s’afficher sous forme de lignes en traits ou en pointillés, comme celles que montre la capture d’écran de la section précédente. Lorsque vous calculez des moyennes comprenant des valeurs NULL, il y a moins de points de données desquels utiliser la moyenne. Ce comportement peut parfois entraîner une baisse inattendue des valeurs d’un graphique, même si, généralement, cela se produit plus lorsque la valeur a été convertie en un zéro, puis utilisée comme un point de données valide.

Les métriques personnalisées utilisent toujours des valeurs NULL lorsqu’elles ne reçoivent aucune donnée. Avec les métriques de plateforme, chaque fournisseur de ressources décide s’il faut utiliser des zéros ou des valeurs NULL en fonction de ce qui convient le mieux pour une métrique donnée.

Les alertes Azure Monitor utilisent les valeurs que le fournisseur de ressources écrit dans la base de données de métriques. Il est donc important de savoir comment le fournisseur de ressources gère les valeurs NULL en affichant d’abord les données.

Fonctionnement de l’agrégation

Les graphiques de métriques du système précédent affichent différents types de données agrégées. Le système pré-agrège les données afin que les graphiques demandés puissent s’afficher plus rapidement sans nécessiter plusieurs calculs répétés.

Dans cet exemple :

  • Nous collectons une métrique transactionnelle fictive appelée Échecs HTTP
  • La dimension Serveur est une dimension pour la métrique Échecs HTTP.
  • Nous avons trois serveurs : les serveurs A, B et C.

Pour simplifier l’explication, nous commençons uniquement par le type d’agrégation SUM.

Agrégation allant de moins d’une minute à 1 minute

Les premières données de métriques brutes sont collectées et stockées dans la base de données de métriques Azure Monitor. Dans ce cas, chaque serveur stocke des enregistrements de transaction avec un horodatage, car Serveur est une dimension. Étant donné que la plus courte période que vous pouvez afficher en tant que client est égale à 1 minute, ces horodatages sont d’abord regroupés en valeurs de métriques d’une minute pour chacun des serveurs. Le processus d’agrégation pour le serveur B est indiqué dans le graphique ci-dessous. L’agrégation des serveurs A et C est effectuée de la même façon, et ceux-ci comportent des données différentes.

Capture d’écran montrant les entrées transactionnelles inférieures à 1 minute agrégées pour former des entrées de 1 minute.

Les valeurs agrégées de 1 minute obtenues sont stockées en tant que nouvelles entrées dans la base de données de métriques, afin qu’elles puissent être collectées dans le cadre de prochains calculs.

Capture d’écran montrant plusieurs entrées agrégées de 1 minute pour la dimension Serveur. Les serveurs A, B et C sont affichés individuellement

Agrégation des dimensions

Les calculs de 1 minute sont ensuite réduits par dimension et stockés à nouveau comme des enregistrements individuels. Dans ce cas, toutes les données de tous les serveurs sont agrégées dans une métrique d’intervalle de 1 minute, puis elles sont stockées dans la base de données de métriques en vue d’une utilisation dans de prochaines agrégations.

Capture d’écran montrant plusieurs entrées agrégées de 1 minute pour les serveurs A, B et C, agrégées sous la forme d’entrées de 1 minute pour tous les serveurs

Par souci de clarté, le tableau suivant montre la méthode d’agrégation.

Période Serveur A serveur B. le serveur C. Somme (A+B+C)
Minute 1 1 1 1 3
Minute 2 0 5 1 6
Minute 3 0 5 1 6
Minute 4 2 3 4 9
Minute 5 1 0 3 4
Minute 6 1 0 4 5
Minute 7 1 2 4 7
Minute 8 0 1 0 1
Minute 9 1 1 4 6
Minute 10 2 1 0 3

Une seule dimension est présentée ci-dessus. Toutefois, le même processus d’agrégation et de stockage se produit pour toutes les dimensions qui sont prises en charge par une métrique.

  • Collectez les valeurs dans un ensemble agrégé de 1 minute selon cette dimension. Stockez ces valeurs.
  • Réduisez la dimension en une somme agrégée de 1 minute. Stockez ces valeurs.

Nous allons présenter une autre dimension de la métrique Échecs HTTP : « NetworkAdapter ». Supposons que nous ayons un nombre variable de cartes par serveur.

  • Le serveur A a 1 carte
  • Le serveur B a 2 cartes
  • Le serveur C a 3 cartes

Nous allons collecter les données des transactions suivantes séparément. Celles-ci seront associées aux éléments suivants :

  • Un horodatage
  • Une valeur
  • Le serveur d’où provient la transaction
  • La carte d’où provient la transaction

Ces flux inférieurs à 1 minute sont ensuite agrégés en valeurs de série chronologique de 1 minute, puis ils sont stockés dans la base de données de métriques Azure Monitor :

  • Serveur A, Carte 1
  • Serveur B, Carte 1
  • Serveur B, Carte 2
  • Serveur C, Carte 1
  • Serveur C, Carte 2
  • Serveur C, Carte 3

En outre, les agrégations réduites suivantes sont également stockées :

  • Serveur A, carte 1 (étant donné qu’il n’y a rien à réduire, les données sont à nouveau stockées)
  • Serveur B, Cartes 1+2
  • Serveur C, Cartes 1+2+3
  • Tous les serveurs et toutes les cartes

Cela montre que les métriques qui ont un grand nombre de dimensions comportent un plus grand nombre d’agrégations. Il n’est pas nécessaire de connaître toutes les permutations, mais simplement de comprendre le raisonnement. Le système souhaite que les données individuelles et les données agrégées soient stockées en vue d’être récupérées rapidement à partir de n’importe quel graphique. Le système sélectionne l’agrégation stockée ou les données brutes sous-jacentes les plus pertinentes en fonction de ce que vous choisissez d’afficher.

Agrégation sans dimension

Étant donné que cette métrique comporte une dimension Serveur, vous pouvez accéder aux données sous-jacentes des serveurs A, B et C ci-dessus via le fractionnement et le filtrage, comme expliqué plus haut dans cet article. Si la métrique n’avait pas la dimension Serveur, vous, en tant que client, pourriez uniquement accéder aux sommes agrégées de 1 minute qui s’affichent en noir sur le diagramme. Ce sont les valeurs 3, 6, 6, 9, etc. Le système ne va pas non plus effectuer le travail sous-jacent pour agréger les valeurs fractionnées, il ne va pas les utiliser dans Metrics Explorer, ni les envoyer par l’API REST pour les métriques.

Affichage des granularités temporelles supérieures à 1 minute

Si vous demandez des métriques en utilisant une granularité plus longue, le système utilisera les sommes agrégées de 1 minute afin de calculer les sommes pour des granularités temporelles supérieures. Les lignes en pointillés ci-dessous montrent la méthode de somme qui est employée pour les granularités temporelles de 2 et 5 minutes. Là encore, nous n’affichons que le type d’agrégation SUM pour des raisons de simplicité.

Capture d’écran montrant plusieurs entrées agrégées de 1 minute pour la dimension Serveur, qui sont ensuite agrégées en périodes de 2 et 5 minutes.

Pour la granularité temporelle de 2 minutes.

Période Sommes
Minutes 1 et 2 (3 + 6) = 9
Minutes 3 et 4 (6 + 9) = 15
Minutes 4 et 5 (4 + 5) = 9
Minutes 6 et 7 (7 + 1) = 8
Minutes 8 et 9 (6 + 3) = 9

Pour la granularité temporelle de 5 minutes.

Période Sommes
Minutes de 1 à 5 3 + 6 + 6 + 9 + 4 = 28
Minutes de 6 à 10 5 + 7 + 1 + 6 + 3 = 22

Le système utilise les données agrégées stockées qui offrent les meilleures performances.

Vous trouverez ci-dessous une version plus complexe du diagramme montrant le processus d’agrégation de 1 minute, auquel nous avons retiré certaines flèches pour améliorer la lisibilité.

Capture d’écran montrant la consolidation des trois captures d’écran précédentes. Plusieurs entrées agrégées de 1 minute pour la dimension Serveur, qui sont ensuite agrégées à intervalles de 1, 2 et 5 minutes. Les serveurs A, B et C sont affichés individuellement

Exemple plus complexe

Voici un exemple plus complexe qui utilise des valeurs pour une métrique fictive appelée « Temps de réponse HTTP en millisecondes ». Ici, nous utilisons d’autres niveaux de complexité.

  1. Nous affichons l’agrégation pour Somme, Nombre, Min et Max, et le calcul pour Moyenne.
  2. Nous montrons les valeurs NULL et la façon dont elles affectent les calculs.

Considérez l'exemple suivant. Les flèches et les données encadrées montrent comment les valeurs sont agrégées et calculées.

Le processus de préagrégation de 1 minute qui est décrit dans la section précédente se produit également pour Sommes, Nombre, Minimum et Maximum. Toutefois, la moyenne N’est PAS préagrégée. Cela est recalculé à l’aide de données agrégées pour éviter des erreurs de calcul.

Capture d’écran montrant un exemple complexe d’agrégation et de calcul pour Somme, Nombre, Min, Max et Moyenne, allant de 1 minute à 10 minutes.

Prenons la minute 6 pour l’agrégation de 1 minute qui est mise en évidence ci-dessus. Cette minute correspond au moment où le serveur B a été mis hors connexion et a arrêté les données de rapport, peut-être en raison d’un redémarrage.

À partir de la minute 6 ci-dessus, les types d’agrégation de 1 minute calculés sont les suivants :

Type d’agrégation Valeur Notes
SUM 53+20=73
Nombre 2 Montre l’effet des valeurs NULL. Si le serveur avait été en ligne, la valeur aurait été de 3.
Minimum 20
Maximale 53
Average 73/2 Toujours la somme divisée par le nombre. Elle n’est jamais stockée et toujours recalculée pour chaque granularité temporelle à l’aide des nombres agrégés pour cette granularité. Remarquez le recalcul pour les granularités temporelles de 5 minutes et 10 minutes qui est mis en évidence ci-dessus.

Le texte en rouge indique les valeurs qui peuvent être considérées comme étant en dehors de la plage normale, et montre comment elles se propagent (ou échouent) à mesure que la granularité temporelle augmente. Remarquez que les valeurs Min et Max indiquent des anomalies sous-jacentes, et que Moyenne et Sommes perdent ces informations à mesure que la granularité temporelle augmente.

Vous pouvez également voir que les valeurs NULL offrent un meilleur calcul de moyenne que les zéros.

Notes

Même si ce n’est pas le cas dans cet exemple, Nombre est égal à Somme lorsqu’une métrique est systématiquement capturée avec une valeur de 1. C’est courant lorsqu’une métrique effectue le suivi de l’occurrence d’un événement transactionnel (par exemple, le nombre d’échecs HTTP mentionnés dans un précédent exemple de cet article).

Étapes suivantes