À propos des ratios de métriques

Ce document vous aide à choisir la meilleure approche pour représenter graphiquement ou surveiller un ratio de données de métriques. Il inclut également des liens vers des exemples, identifie quand vous pouvez calculer des ratios et décrit les anomalies que vous pourriez rencontrer lorsque vous représentez un ratio de deux métriques différentes. Ces anomalies sont dues à des différences au niveau du taux d'échantillonnage ou des paramètres d'alignement.

Les ratios vous permettent de transformer vos données de métriques dans un format différent, et potentiellement plus utile. Prenons l'exemple d'un type de métrique qui compte le nombre de réponses HTTP par code de réponse. Les données de métriques indiquent le nombre d'erreurs, mais pas la proportion de requêtes ayant échoué. Toutefois, les exigences de performances sont souvent spécifiées sous forme de pourcentage, comme "Le taux d'erreur doit être inférieur à 0,1%". Pour déterminer le taux d'erreur à l'aide des données de métrique, vous calculez le ratio des requêtes ayant échoué par rapport au nombre total de requêtes.

Bonnes pratiques

Pour surveiller ou représenter graphiquement un ratio de données de métriques, nous vous recommandons d'utiliser le langage MQL (Monitoring Query Language). Vous pouvez utiliser MQL avec l'API Cloud Monitoring et la console Google Cloud. La console Google Cloud inclut un éditeur de code qui fournit des suggestions, permet de détecter les erreurs et facilite la création de requêtes MQL valides. Pour en savoir plus et obtenir des exemples, consultez les documents suivants:

Pour créer une règle d'alerte qui surveille un ratio de métriques lorsque vous ne connaissez pas MQL, utilisez l'API Cloud Monitoring et incluez un filtre de séries temporelles. Pour obtenir un exemple, consultez la section Ratio de métriques.

Pour représenter un ratio de données de métriques lorsque vous ne connaissez pas MQL, nous vous recommandons d'utiliser la console Google Cloud et une interface basée sur des menus. Pour obtenir des instructions détaillées, consultez Représenter un ratio de métriques et Ajouter des graphiques et des tables à un tableau de bord personnalisé.

Restrictions avec des ratios

Lorsque vous configurez un ratio, les restrictions suivantes s'appliquent:

  • Après l'agrégation, les étiquettes de la série temporelle du dénominateur doivent être identiques à celles de la série temporelle du numérateur ou être un sous-ensemble de celles-ci.

    Nous vous recommandons de sélectionner des options d'agrégation de sorte que les séries temporelles du numérateur et du dénominateur aient les mêmes libellés après l'agrégation.

    Prenons l'exemple d'une configuration dans laquelle la série temporelle du numérateur comporte les étiquettes method, quota_metric et project_id. La série temporelle du dénominateur comporte les étiquettes limit_name, quota_metric et project_id. Les choix valides pour le regroupement de dénominateurs dépendent des sélections effectuées pour le numérateur:

    • Numérateur regroupé par le libellé method : combinez les séries temporelles du dénominateur en une seule série temporelle. Aucun autre regroupement ne signifie que les libellés du dénominateur de série temporelle sont un sous-ensemble des libellés de la série temporelle du numérateur.
    • Numérateur regroupé par étiquette quota_metric : regroupez le dénominateur par ce libellé ou combinez toutes les séries temporelles du dénominateur en une seule série temporelle.
    • Numérateur regroupé par les étiquettes quota_metric et project_id : regroupez le dénominateur selon les deux étiquettes selon une seule étiquette, ou combinez les séries temporelles du dénominateur en une seule série temporelle.

    Les options d'agrégation valides du dénominateur éliminent toujours l'étiquette limit_name des séries temporelles groupées, car elle n'est pas présente dans la série temporelle du numérateur.

    Pour obtenir des exemples, consultez les exemples de règles d'alerte MQL.

  • La période d'alignement doit être identique pour le numérateur et le dénominateur lors de la configuration d'un graphique à l'aide de la console Google Cloud. Toutefois, ces champs peuvent être différents lorsque vous utilisez l'API Cloud Monitoring.

    Nous vous recommandons d'utiliser la même période d'alignement pour le numérateur et le dénominateur, quel que soit l'outil que vous utilisez pour créer le graphique.

  • Le numérateur et le dénominateur doivent avoir le même type de valeur. Par exemple, lorsque le numérateur est de type DOUBLE, le dénominateur doit également être de type DOUBLE.

    Les ratios nécessitent que les métriques du numérateur et du dénominateur aient un type de valeur DOUBLE ou INT64.

  • Les séries temporelles alignées du numérateur et du dénominateur doivent avoir le même genre de métrique. Lorsque les deux métriques ont des genres différents, vous devez utiliser des aligneurs pour les convertir en le même genre.

    Prenons une configuration dans laquelle une métrique DELTA est sélectionnée pour le numérateur et une métrique GAUGE pour le dénominateur. Dans ce cas, utilisez l'aligneur de taux, ALIGN_RATE, pour convertir la métrique DELTA en métrique GAUGE. Pour obtenir un exemple, consultez la section Rationaliser les règles d'alerte sur l'utilisation du quota de débit pour une limite.

  • Pour les ratios non définis avec MQL, le type de ressource surveillée doit être le même pour le numérateur et le dénominateur.

    Par exemple, si la ressource de la métrique de numérateur est des instances Compute Engine, la ressource de la métrique de dénominateur doit également être des instances Compute Engine.

Anomalies dues à des incohérences d'échantillonnage et d'alignement

En général, il est préférable de calculer les ratios en fonction des séries temporelles collectées pour un type de métrique unique, à l'aide de valeurs de libellés. Un ratio calculé sur deux types de métriques différents peut présenter des anomalies dues à des périodes d'échantillonnage et des fenêtres d'alignement différentes.

Par exemple, supposons que vous disposiez de deux types de métriques différents (nombre de RPC total et nombre de RPC en erreur), et que vous souhaitiez calculer le ratio du nombre de RPC en erreur par rapport au nombre de RPC total. Les RPC ayant échoué sont comptabilisés dans la série temporelle des deux types de métriques. Par conséquent, lorsque vous alignez la série temporelle, il se peut qu'un RPC en échec n'apparaisse pas dans le même intervalle d'alignement pour les deux séries temporelles. Cette différence peut se produire pour plusieurs raisons :

  • Étant donné que deux séries temporelles enregistrent le même événement, deux valeurs de compteur sous-jacentes mettent en œuvre la collection et ne sont pas mises à jour de manière atomique.
  • Les taux d'échantillonnage peuvent varier. Lorsque les séries temporelles sont alignées sur une période commune, les décomptes d'un seul événement peuvent apparaître dans des intervalles d'alignement adjacents dans la série temporelle des différentes métriques.

La différence du nombre de valeurs dans les intervalles d'alignement correspondants peut générer des valeurs de ratio error/total insensées, telles que 1/0 ou 2/1.

Les ratios de grands nombres sont moins susceptibles de donner des valeurs incompréhensibles. Vous pouvez obtenir des nombres plus importants par agrégation, soit en utilisant une fenêtre d'alignement plus longue que la période d'échantillonnage, soit en regroupant les données pour certains libellés. Ces techniques réduisent l'effet de différences mineures du nombre de points dans un intervalle donné. En d'autres termes, une disparité de deux points est plus importante lorsque le nombre attendu de points dans un intervalle est de 3 par rapport au nombre attendu de 300.

Si vous utilisez des types de métriques intégrés, vous n'aurez peut-être pas d'autre choix que de calculer les ratios sur l'ensemble des types de métriques pour obtenir la valeur souhaitée.

Si vous concevez des métriques personnalisées pouvant comptabiliser la même chose (par exemple, des RPC qui renvoient des états d'erreur) dans deux métriques différentes, envisagez plutôt d'utiliser une seule métrique, qui inclut un décompte à la fois. Par exemple, supposons que vous comptabilisiez les RPC et que vous souhaitiez suivre le ratio entre les RPC ayant échoué et tous les RPC. Pour résoudre ce problème, créez un seul type de métrique pour comptabiliser les RPC et utilisez un libellé pour enregistrer l'état de l'appel, y compris l'état "OK". Chaque valeur d'état (erreur ou état "OK") est ensuite enregistrée en mettant à jour un seul compteur pour ce cas.

Étapes suivantes