Ce document explique comment créer et interpréter un graphique qui affiche les données des métriques de type Distribution
.
Ce type de valeur est utilisé par les services lorsque les mesures individuelles sont trop nombreuses à collecter, mais que des informations statistiques, telles que des moyennes ou des centiles, concernent ces mesures.
Par exemple, lorsqu'une application repose sur le trafic HTTP, vous pouvez utiliser une métrique de valeur de distribution qui capture la latence de réponse HTTP afin d'évaluer la vitesse de traitement des requêtes HTTP.
Pour illustrer la façon dont un histogramme est créé, prenons l'exemple d'un service qui mesure la latence HTTP des requêtes et signale ces données à l'aide d'une métrique de type valeur de distribution. Les données sont consignées toutes les minutes. Le service définit des plages de valeurs pour la métrique, appelées buckets, et enregistre le nombre de valeurs mesurées comprises dans chaque bucket. Par exemple, lorsqu'une requête HTTP se termine, le service incrémente le décompte dans le bucket dont la plage inclut la valeur de latence de la requête. Ces décomptes créent un histogramme des valeurs pour cette minute.
Supposons que les latences mesurées dans un intervalle d'une minute soient de 5, 1, 3, 5, 6, 10 et 14. Si les buckets sont [0, 4), [4, 8), [8, 12) et [12, 16), l'histogramme de ces données est [2, 3, 1, 1]. Le tableau suivant montre l'impact des mesures individuelles sur le décompte de chaque bucket :
Bucket | Mesures de latence | Nombre de valeurs dans le bucket |
---|---|---|
[12,16) | 14 | 1 |
[8,12) | 10 | 1 |
[4,8) | 5, 5, 6 | 3 |
[0,4) | 1, 3 | 2 |
Lorsque ces données sont écrites dans la série temporelle, un objet Point
est créé. Pour les métriques ayant une valeur de distribution, cet objet inclut l'histogramme des valeurs. Pour cette période d'échantillonnage, Point
contient [2, 3, 1, 1]. Les mesures individuelles ne sont pas écrites dans la série temporelle.
Supposons que le tableau précédent enregistre l'histogramme des données de latence mesurées à l'heure 1:00. Ce tableau montre comment prendre une série de mesures et les convertir en nombres de buckets. Supposons que les nombres de buckets aux heures 1:01, 1:02 et 1:03 soient comme indiqué dans le tableau suivant:
Bucket | Histogramme pour 1:00 |
Histogramme pour 1:01 |
Histogramme pour 1:02 |
Histogramme pour 1:03 |
---|---|---|---|---|
[12,16) | 1 | 6 | 0 | 1 |
[8,12) | 1 | 0 | 2 | 2 |
[4,8) | 3 | 1 | 1 | 8 |
[0,4) | 2 | 6 | 10 | 3 |
Le tableau précédent affiche une séquence d'histogrammes indexés par temps. Chaque colonne du tableau représente les données de latence pour une période d'une minute. Pour obtenir le nombre de mesures à un moment donné, additionnez les nombres de buckets. Toutefois, les mesures réelles ne sont pas affichées, car elles ne sont pas disponibles dans les métriques de valeur de distribution.
Graphiques de cartes de densité
Les graphiques de carte de densité sont conçus pour afficher une série temporelle unique avec des valeurs de distribution. Pour ces graphiques, l'axe des abscisses représente le temps, l'axe des coordonnées représente les buckets, et la couleur représente la valeur. Plus la couleur est élevée, plus la valeur est élevée. Par exemple, les zones sombres de la carte de densité indiquent des compteurs de buckets inférieurs à ceux des zones jaunes ou blanches.
La figure suivante représente une carte de densité pour l'exemple précédent :
Dans la figure précédente, la carte de densité utilise du noir pour représenter le plus petit nombre de buckets (0) et du jaune pour le plus grand nombre (10). Les valeurs rouges et orange représentent des valeurs comprises entre ces deux extrêmes.
Comme les graphiques de carte de densité ne peuvent afficher qu'une seule série temporelle, vous devez définir les options d'agrégation pour combiner toutes les séries temporelles.
Pour afficher la somme des latences DAR d'une instance de VM à l'aide de l'explorateur de métriques, procédez comme suit :-
Dans la console Google Cloud, accédez à la page leaderboardExplorateur de métriques :
Accéder à l'explorateur de métriques
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Dans l'élément Métrique, développez le menu Sélectionner une métrique, saisissez
RTT latencies
dans la barre de filtre, puis utilisez les sous-menus pour sélectionner un type de ressource et des métriques spécifiques :- Dans le menu Ressources actives, sélectionnez Instance de VM.
- Dans le menu Catégories de métriques actives, sélectionnez Vm_flow.
- Dans le menu Métriques actives, sélectionnez Latences RTT.
- Cliquez sur Appliquer.
Dans l'exemple précédent, le graphique de carte de densité est configuré en sélectionnant des valeurs dans des menus. Toutefois, vous pouvez également utiliser le langage MQL (Monitoring Query Language) pour représenter graphiquement les métriques à valeurs de distribution. Pour saisir une requête MQL, procédez comme suit:
- Dans la barre d'outils du volet de création de requêtes, sélectionnez le bouton nommé code MQL ou code PromQL.
- Vérifiez que MQL est sélectionné dans le bouton d'activation Langage. Le bouton de langage se trouve dans la barre d'outils qui vous permet de mettre en forme votre requête.
- Saisissez une requête, puis exécutez-la.
Par exemple, saisissez ce qui suit dans l'éditeur de code:
fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [aggregate(value.rtt)]
Dans l'expression précédente, les données de la série temporelle sont extraites, alignées, puis regroupées. Le processus d'alignement utilise une fonction d'alignement delta
avec une période d'alignement d'une minute. Étant donné que le premier argument de group_by
est []
, toutes les séries temporelles sont combinées.
Le second argument, [aggregate(value.rtt)]
, définit la façon dont les séries temporelles sont combinées. Dans cet exemple, pour chaque code temporel, les valeurs du champ rtt
des différentes séries temporelles sont combinées à la fonction aggregate
, qui est sélectionnée par MQL.
Si vous utilisez des menus pour sélectionner la métrique, puis passez à MQL, vos sélections sont converties en une requête MQL au format strict:
fetch gce_instance
| metric 'networking.googleapis.com/vm_flow/rtt'
| align delta(1m)
| every 1m
| group_by [], [value_rtt_aggregate: aggregate(value.rtt)]
L'expression précédente est fonctionnellement équivalente à l'exemple MQL d'origine.
Pour en savoir plus sur le langage MQL, consultez la présentation du langage MQL.
Graphiques en courbes et à barres
Les graphiques en courbes, les graphiques à barres empilées et les graphiques en courbes empilées, conçus pour afficher des données scalaires, ne peuvent pas afficher les valeurs de distribution. Pour afficher une métrique avec une valeur de distribution correspondant à l'un de ces types de graphique, vous devez convertir les valeurs de l'histogramme en valeurs scalaires. Par exemple, vous pouvez définir les options d'agrégation pour calculer la moyenne des valeurs de l'histogramme ou pour calculer un centile.
Pour savoir comment afficher une métrique à valeur de distribution sur un graphique en courbes, consultez la section suivante.
Métriques d'agrégation et de distribution
L'agrégation consiste à régulariser des points dans une série temporelle et à combiner plusieurs séries temporelles. L'agrégation est identique pour les métriques de type distribution et les métriques dont le type de valeur est un nombre entier ou double. Toutefois, le type de graphique prend en compte les contraintes liées aux choix d'alignement et de regroupement des séries temporelles.
Graphiques de cartes de densité
Les graphiques de carte de densité affichent une série temporelle de valeur de distribution. Par conséquent, la fonction d'alignement et la fonction de regroupement doivent être définies pour créer une seule série temporelle.
Sélectionnez une fonction d'alignement sum
ou delta
lorsqu'un graphique affiche une carte de densité.
Ces fonctions combinent, au niveau du bucket, tous les échantillons d'une seule série temporelle qui se trouvent dans la même période d'alignement. Le résultat est une valeur de distribution. Par exemple, si deux échantillons adjacents d'une série temporelle sont [2, 3, 1, 1] et [2, 5, 4, 1], la fonction d'alignement de somme produit [4, 8, 5, 2].
La fonction de regroupement définit la manière dont les différentes séries temporelles sont combinées. Cette fonction est parfois appelée "agrégateur" ou "réducteur".
Pour les cartes de densité, définissez la fonction de regroupement sur la fonction sum
.
La fonction de somme ajoute les valeurs des mêmes buckets dans tous les histogrammes, ce qui génère un nouvel histogramme. Par exemple, la somme de la valeur [2, 3, 1, 1] de la série temporelle A et de la valeur [1, 5, 2, 2] de la série temporelle B est [3, 8, 3, 3].
Graphique en courbes
Les graphiques en courbes n'affichent que les séries temporelles à valeurs scalaires. Si vous sélectionnez une métrique avec une valeur de distribution, le graphique est configuré avec des paramètres optimaux pour afficher une carte de densité. Les champs de l'élément Aggregation (Agrégation) sont définis sur Distribution et None (Aucun).
L'interprétation de Distribution dépend de la métrique spécifique. Pour les types de métriques à valeur de distribution qui ont un type de métrique
GAUGE
, la fonction d'alignement par défaut est définie sursum
. Lorsqu'un type de métrique avec valeur de distribution comporte un genre de métriqueCUMULATIVE
, la fonction d'alignement par défaut estDELTA
.Le paramètre Aucun garantit que toutes les périodes sont combinées.
Si vous souhaitez afficher une métrique à valeur de distribution sur un graphique en courbes, vous devez modifier les paramètres par défaut de votre graphique. Par exemple, pour configurer un graphique en courbes dans un tableau de bord afin d'afficher le 99e centile de chaque série temporelle pour une métrique de valeur de distribution, procédez comme suit :
-
Dans la console Google Cloud, accédez à la page Tableaux de bord .
Accéder à la page Tableaux de bord
Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.
- Dans la barre d'outils, cliquez sur add Ajouter un widget.
- Dans la boîte de dialogue Ajouter un widget, sélectionnez leaderboard Métrique.
- Dans l'élément Métrique, sélectionnez la métrique Instance de VM -DAR RTT.
- Dans l'élément Agrégation, développez le premier menu et sélectionnez 99e centile.
- Dans le volet Affichage, définissez la valeur du menu Type de widget sur Graphique en courbes.
- Facultatif: Dans l'élément Agrégation, développez le deuxième menu et sélectionnez les libellés utilisés pour regrouper les séries temporelles. Par défaut, aucun libellé n'est sélectionné. Par conséquent, une seule ligne s'affiche sur le graphique.
Étape suivante
Pour savoir comment déterminer le modèle de bucket d'une métrique et interpréter les centiles, consultez la page Centiles et métriques à valeur de distribution.