À propos des métriques de valeur de distribution

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), alors 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 la table précédente enregistre l'histogramme des données de latence sous la forme mesurée à 1 h 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 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 :

Graphique de carte de densité pour l'exemple

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 utiliser l'Explorateur de métriques afin d'afficher la somme des Latences DAR d'une instance de VM, procédez comme suit: <ph type="x-smartling-placeholder">
    </ph>
  1. Dans la console Google Cloud, accédez à la page Explorateur 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.

  2. 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 :
    1. Dans le menu Ressources actives, sélectionnez Instance de VM.
    2. Dans le menu Catégories de métriques actives, sélectionnez Vm_flow.
    3. Dans le menu Métriques actives, sélectionnez Latences DAR.
    4. 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:

  1. Dans la barre d'outils du volet de création de requêtes, sélectionnez le bouton nommé  MQL ou  PromQL.
  2. 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.
  3. Saisissez une requête, puis exécutez-la.

Par exemple, saisissez la commande suivante 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. Comme 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 façon 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 une requête MQL qui se trouve 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)]

Du point de vue fonctionnel, l'expression précédente est équivalente à l'expression d'origine. Exemple de MQL.

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 dans l'histogramme ou pour calculer un centile.

Pour savoir comment afficher une métrique avec une valeur de distribution 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 de distribution, le graphique est configuré avec des valeurs pour afficher une carte de densité. Champs de l'élément Aggregation (Agrégation) sont définis sur Distribution et None.

  • L'interprétation de la 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 sur sum. Lorsqu'une valeur de distribution type de métrique a un genre de métrique CUMULATIVE, l'alignement par défaut est DELTA.

  • Le paramètre None permet de s'assurer que toutes les heures sont combinées.

Pour afficher une métrique avec une valeur de distribution dans un graphique en courbes, vous devez alors 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 :

  1. 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.

  2. Dans la barre d'outils, cliquez sur  Ajouter un widget.
  3. Dans la boîte de dialogue Ajouter un widget, sélectionnez  Métrique.
  4. Dans l'élément Métrique, sélectionnez Instance de VM – Latences DAR.
  5. Dans l'élément Agrégation, développez le premier menu et sélectionnez 99e centile.
  6. Dans le volet Affichage, définissez la valeur du menu Type de widget sur Graphique en courbes :
  7. Facultatif: Dans l'élément Agrégation, développez le deuxième menu et sélectionnez étiquettes utilisées pour regrouper les séries temporelles. Par défaut, aucun libellé n'est sélectionné, et donc une 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.