À 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], 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 à 1h00. Ce tableau montre comment effectuer une série de mesures et les convertir en nombres de buckets. Supposons que les heures 1:01, 1:02 et 1:03 du bucket correspondent aux valeurs indiquées 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 présente une séquence d'histogrammes indexés par heure. Chaque colonne du tableau représente les données de latence sur une période d'une minute. Pour obtenir le nombre de mesures à un moment précis, additionnez les nombres des buckets. Toutefois, les mesures réelles ne sont pas affichées, car elles ne sont pas disponibles dans les métriques à 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 X représente le temps, l'axe des X 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 cartes 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 utiliser l'Explorateur de métriques afin d'afficher la somme des latences DAR d'une instance de VM, procédez comme suit :
  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Explorateur de métriques :

    Accéder à l'Explorateur de métriques

  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, le graphique de carte de densité est configuré en sélectionnant des valeurs dans les menus. Toutefois, vous pouvez également utiliser le langage MQL (Monitoring Query Language) pour représenter des métriques de valeur de distribution sous forme de graphiques. Pour saisir une requête MQL, procédez comme suit:

  1. Dans la barre d'outils du volet du générateur de requêtes, sélectionnez le bouton dont le nom est  MQL ou  PromQL.
  2. Vérifiez que MQL est sélectionné dans le bouton Langage. Le bouton d'activation/de désactivation de la langue 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 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 deuxième argument, [aggregate(value.rtt)], définit la manière 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 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 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 la page 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 dans 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, les fonctions 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 la valeur [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 à valeur de distribution, le graphique est configuré avec les paramètres optimaux pour afficher une carte de densité. Les champs de l'élément Aggregation (Agrégation) sont définis sur Distribution (Distribution) et None (Aucune).

  • L'interprétation de Distribution dépend de la métrique spécifique. Pour les types de métriques à valeur de distribution qui possèdent le genre de métrique GAUGE, la fonction d'alignement par défaut est définie sur sum. Lorsqu'un type de métrique à valeur de distribution possède un genre de métrique CUMULATIVE, la fonction d'alignement par défaut est DELTA.

  • Le paramètre None garantit que toutes les heures sont combinées.

Si vous souhaitez afficher une métrique de valeur de distribution dans 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 :

  1. Dans le panneau de navigation de la console Google Cloud, sélectionnez Monitoring, puis  Tableaux de bord :

    Accéder à la page Tableaux de bord

  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 la métrique Instance de VM – Latences DAR.
  5. Dans l'élément Agrégation, développez le premier menu, puis sélectionnez 99e centile.
  6. Dans le volet Display (Affichage), définissez la valeur du menu Widget Type (Type de widget) sur Line chart (Graphique en courbes).
  7. Facultatif: Dans l'élément Aggregation (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 ligne s'affiche sur le graphique.

Étapes suivantes

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.