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 et les convertir en nombres en buckets. Supposons que le bucket les nombres aux heures 1:01, 1:02 et 1:03 sont présentés 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 précis, additionner le nombre de bins. Toutefois, les mesures réelles ne s'affichent pas, car elles ne sont pas disponibles des métriques basées sur la 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.
Étant donné que les graphiques de carte de densité ne peuvent afficher qu'une seule série temporelle, vous devez définir le paramètre agrégation pour combiner toutes les séries temporelles.
Pour afficher la somme des latences RTT 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 DAR.
- Cliquez sur Appliquer.
Dans l'exemple précédent, la carte de densité est configurée en sélectionnant des valeurs dans les menus. Toutefois, vous pouvez aussi utiliser le langage MQL (Monitoring Query Language) pour créer des graphiques avec des métriques basées sur la 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 séries temporelles sont récupérées, alignées,
regroupées. Le processus d'alignement utilise une fonction d'alignement delta
avec une clause 1
d'alignement d'une minute. Étant donné que le premier argument de group_by
est []
, toutes les séries temporelles sont combinées.
Le deuxième argument, [aggregate(value.rtt)]
, définit la manière dont les séries temporelles
combinés. Dans cet exemple, pour chaque code temporel, les valeurs du champ rtt
des différentes séries temporelles sont combinées avec 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 requête MQL forme stricte:
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 MQL, consultez Présentation du langage de requête Monitoring
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, le fonction d'alignement et fonction de regroupement doit être défini 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 : [2, 3, 1, 1] et [2, 5, 4, 1], l'alignement de la 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 avec une valeur de distribution ayant un genre de métrique
GAUGE
: la fonction d'alignement par défaut est définie sursum
. Lorsqu'une valeur de distribution type de métrique a un genre de métriqueCUMULATIVE
, l'alignement par défaut estDELTA
.Le paramètre Aucun permet de s'assurer que toutes les heures 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 Instance de VM – Latences DAR.
- 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.