Ce document vous aide à choisir la meilleure approche pour représenter ou surveiller un ratio de données métriques. Il inclut également des liens vers des exemples, identifie les cas où vous pouvez calculer des ratios et décrit les anomalies que vous pouvez constater lorsque vous représentez graphiquement un ratio de deux métriques différentes. Ces anomalies sont dues à des différences dans le taux d'échantillonnage ou les paramètres d'alignement.
Les ratios vous permettent de transformer vos données métriques en une forme différente, 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étrique 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, par exemple "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étrique, nous vous recommandons d'utiliser PromQL. Vous pouvez utiliser PromQL avec l'API Cloud Monitoring et la console Google Cloud. La console Google Cloud inclut un éditeur de code qui propose des suggestions, la détection d'erreurs et d'autres fonctionnalités permettant de créer des requêtes PromQL valides.
Pour créer une règle d'alerte qui surveille un ratio de métriques lorsque vous ne connaissez pas PromQL, utilisez l'API Cloud Monitoring et incluez un filtre de série temporelle. Pour obtenir un exemple, consultez la section Ratio de métriques.
Pour représenter un ratio de données de métrique lorsque vous ne connaissez pas PromQL, 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 les pages Afficher un ratio de métriques et Ajouter des graphiques et des tableaux à 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 libellés de la série temporelle du dénominateur doivent être identiques ou constituer un sous-ensemble des libellés de la série temporelle du numérateur.
Nous vous recommandons de sélectionner des options d'agrégation de sorte que, après l'agrégation, les séries temporelles du numérateur et du dénominateur aient les mêmes libellés.
Prenons une configuration dans laquelle la série temporelle du numérateur comporte les libellés
method
,quota_metric
etproject_id
. La série temporelle du dénominateur comporte les libelléslimit_name
,quota_metric
etproject_id
. Les options valides pour le regroupement du dénominateur dépendent des sélections pour le numérateur:- Numérateur regroupé par l'étiquette
method
: combinez les séries temporelles du dénominateur en une seule série temporelle. Aucun autre regroupement ne fait que les libellés de la série temporelle du dénominateur soient un sous-ensemble des libellés de la série temporelle du numérateur. - Numérateur regroupé par le libellé
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 libellés
quota_metric
etproject_id
: regroupez le dénominateur par les deux libellés, par un seul libellé ou combinez les séries temporelles du dénominateur en une seule série temporelle.
Les options d'agrégation du dénominateur valides éliminent toujours l'étiquette
limit_name
de la série temporelle groupée, car cette étiquette n'est pas présente dans la série temporelle du numérateur.- Numérateur regroupé par l'étiquette
La période d'alignement doit être la même pour le numérateur et le dénominateur lorsque vous configurez 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 typeDOUBLE
.Les ratios exigent que la métrique du numérateur et du dénominateur ait un type de valeur
DOUBLE
ouINT64
.Les séries temporelles alignées pour le numérateur et le dénominateur doivent avoir le même type de métrique. Lorsque les deux métriques sont de types différents, vous devez utiliser des aligneurs pour les convertir au même type.
Prenons l'exemple d'une configuration dans laquelle une métrique
DELTA
est sélectionnée pour le dénominateur et une métriqueGAUGE
pour le dénominateur. Dans ce cas, utilisez l'aligneur de taux,ALIGN_RATE
, pour convertir la métriqueDELTA
en métriqueGAUGE
. Pour obtenir un exemple, consultez la section Règles d'alerte de ratio sur l'utilisation du quota de débit pour une limite.Pour les ratios qui ne sont pas définis avec PromQL, 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 du numérateur est des instances Compute Engine, la ressource de la métrique du dénominateur doit également être des instances Compute Engine.
Anomalies dues à des diffé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 est soumis à des anomalies en raison de périodes d'échantillonnage et de 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 nombres plus élevés sont moins susceptibles de générer des valeurs absurdes. Vous pouvez obtenir des nombres plus élevés 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.
Étape suivante
Pour en savoir plus sur l'utilisation de PromQL pour configurer des règles d'alerte, consultez la section Règles d'alerte avec PromQL.
Pour en savoir plus sur la création de graphiques, consultez les documents suivants:
- Pour créer des graphiques temporaires, consultez la section Explorateur de métriques.
- Pour ajouter des graphiques à un tableau de bord à l'aide de la console Google Cloud, consultez la page Ajouter des graphiques et des tableaux à un tableau de bord personnalisé.
- Pour gérer les graphiques à l'aide de l'API Cloud Monitoring, consultez la page Créer et gérer des tableaux de bord à l'aide d'API.