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, indique quand vous pouvez calculer des ratios et décrit les anomalies que vous pouvez observer 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 de métriques en une forme différente et potentiellement plus utile. Prenons l'exemple d'un type de métrique qui comptabilise 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 en 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étriques, vous calculez le ratio entre les requêtes ayant échoué et le 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 PromQL. Vous pouvez utiliser PromQL avec l' API Cloud Monitoring et avec la Google Cloud console. La Google Cloud console inclut un éditeur de code qui fournit 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 n'êtes pas familiarisé avec PromQL, 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 graphiquement un ratio de données de métriques lorsque vous n'êtes pas familiarisé avec PromQL, nous vous recommandons d'utiliser la Google Cloud console et une interface pilotée par menu. Pour obtenir des instructions détaillées, consultez Représenter graphiquement un ratio de métriques et Ajouter des graphiques et des tableaux à un tableau de bord personnalisé.
Restrictions avec les 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 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 qu'après l'agrégation, les séries temporelles du numérateur et du dénominateur aient les mêmes libellés.
Prenons l'exemple d'une configuration dans laquelle la série temporelle du numérateur comporte les libellés
method,quota_metricetproject_id. La série temporelle du dénominateur comporte les libelléslimit_name,quota_metricetproject_id. Les choix valides pour le regroupement du dénominateur dépendent des sélections du numérateur :- Numérateur regroupé par le libellé
method: combinez la série temporelle du dénominateur en une seule série temporelle. Aucun autre regroupement ne permet aux libellés de la série temporelle du dénominateur d'être 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_metricetproject_id: regroupez le dénominateur par les deux libellés, par un seul libellé ou combinez la série temporelle du dénominateur en une seule série temporelle.
Les options d'agrégation valides pour le dénominateur éliminent toujours le libellé
limit_namede la série temporelle regroupée, car ce libellé n'est pas présent dans la série temporelle du numérateur.- Numérateur regroupé par le libellé
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 Google Cloud console. 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 nécessitent que la métrique du numérateur et du dénominateur soit de type
DOUBLEouINT64.Les séries temporelles alignées du numérateur et du 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 en un même type.
Prenons l'exemple d'une configuration dans laquelle une métrique
DELTAest sélectionnée pour le numérateur et une métriqueGAUGEest sélectionnée pour le dénominateur. Dans ce cas, utilisez l'aligneur de taux,ALIGN_RATE, pour convertir la métriqueDELTAen 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 une instance Compute Engine, la ressource de la métrique du dénominateur doit également être une instance 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 différents est soumis à 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 nombres plus élevés sont moins susceptibles de générer des valeurs insensées. 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.
Incidents erronés dus à des anomalies de calcul de ratio
Pour éviter les incidents erronés dus à des erreurs temporaires ou à des données manquantes, définissez la durée de votre requête PromQL sur au moins le double de l'intervalle d'évaluation :
- Google Cloud console : définissez la durée dans le champ Durée lorsque vous configurez la condition d'alerte.
- API Cloud Monitoring ou Terraform : spécifiez la durée à l'aide du champ
AlertPolicy.Condition.PrometheusQueryLanguageCondition.duration.
Étape suivante
Pour en savoir plus sur l'utilisation de PromQL pour configurer des règles d'alerte, consultez la présentation des alertes PromQL.
Pour en savoir plus sur la création de graphiques, consultez les documents suivants :
- Pour créer des graphiques temporaires, consultez Explorateur de métriques.
- Pour ajouter des graphiques à un tableau de bord à l'aide de la Google Cloud console, consultez Ajouter des graphiques et des tableaux à un tableau de bord personnalisé.
- Pour gérer des graphiques à l'aide de l'API Cloud Monitoring, consultez Créer et gérer des tableaux de bord à l'aide d'API.