Règles d'alerte avec une condition basée sur le langage MQL (Monitoring Query Language) vous permettent de configurer votre environnement d'alerte pour de nombreux cas d'utilisation possibles. Certaines configurations ne sont disponibles Requêtes MQL.
Ce document décrit plusieurs cas d'utilisation et des exemples de requêtes. pour déployer des règles d'alerte avec une condition basée sur MQL dans un environnement de production.
Alerte sur les seuils dynamiques
Vous pouvez utiliser une requête MQL pour configurer une règle d'alerte qui déclenche des alertes en fonction d'un seuil qui varie au fil du temps, en tant que jours de la semaine. Cette configuration n'est pas compatible avec les alertes sans requêtes MQL.
Par exemple : vous disposez d'une requête MQL qui envoie une alerte si l'utilisation du CPU d'une instance Compute Engine dépasse 95%:
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | condition utilization > 95'%'
Toutefois, vous pouvez définir un seuil d'utilisation plus bas (85%, par exemple) week-ends, afin de tenir compte des délais de réponse plus longs de la part de l'équipe d'assistance. Dans ce cas, vous pouvez configurer votre requête avec une colonne de valeur qui contient le seuil d'alerte:
fetch gce_instance :: compute.googleapis.com/instance/cpu/utilization | align | every 30s | value add [day_of_week: end().timestamp_to_string('%w').string_to_int64] | value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6] | value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')] | condition utilization > scale(max_allowed_utilization)
Les opérations value effectuent les opérations suivantes:
value add [day_of_week: end().timestamp_to_string('%w').string_to_int64]
ajoute une colonne de valeur dont la valeur est un nombre compris entre 0 et 6, où0
correspond à dimanche et6
à samedi.value [utilization, is_weekend: day_of_week = 0 || day_of_week = 6]
remplace le numéro du jour par une valeur booléenne indiquant si le point de données était un week-end ou un jour de semaine.value [utilization, max_allowed_utilization: if(is_weekend, 85'%', 95'%')]
remplace la valeur booléenne par un seuil qui varie en fonction de la valeur suris_weekend
.
La condition, condition utilization > scale(max_allowed_utilization)
,
compare les deux colonnes de valeurs.
Prenons l'exemple d'une règle d'alerte avec une condition basée sur MQL qui configure les niveaux de gravité des incidents en fonction de critères dynamiques, Créer des niveaux de gravité dynamiques à l'aide de MQL.
Alerter sur les seuils en fonction du taux de variation
Vous pouvez configurer des requêtes MQL de règles d'alerte pour évaluer les seuils
en fonction du taux de variation d'une métrique. Par exemple, vous voulez évaluer
le taux d'erreurs 5xx
par instance de resource.method
dans votre
Requêtes API, où votre tarif équivaut au nombre de requêtes par seconde. Si le tarif
est supérieure à 5 réponses d'erreur par seconde, Cloud Monitoring
envoie une alerte:
fetch consumed_api | metric 'serviceruntime.googleapis.com/api/request_count' | filter (metric.response_code_class == '5xx') | align rate(10m) | every 30s | group_by [resource.method], [value_request_count_mean: mean(value.request_count)] | condition val() > 0.05'1/s'
Vous pouvez créer des règles d'alerte de taux d'évolution sans utiliser MQL:
- Pour voir un exemple d'utilisation de la console Google Cloud, consultez Surveiller un taux de variation.
- Pour obtenir un exemple utilisant l'API Cloud Monitoring, consultez Règle concernant les taux de changement.
Alerte sur les seuils basés sur un ratio
Votre règle d'alerte peut utiliser une requête MQL pour évaluer
les ratios obtenus en associant deux métriques, puis en divisant les colonnes de valeur.
Par exemple, vous souhaitez interroger le ratio de read
octets par rapport à write
pour chacune de vos instances Compute Engine. Si le ratio est supérieur
supérieur à 3/5
, soit 60%, Cloud Monitoring envoie une alerte:
{ fetch gce_instance :: compute.googleapis.com/instance/disk/read_bytes_count; fetch gce_instance :: compute.googleapis.com/instance/disk/write_bytes_count } | every 30s | join | value val(0) / val(1) | condition val() > 0.6
Vous pouvez également interroger le ratio des valeurs agrégées. Par exemple, vous voulez
calculer le temps d'utilisation moyen du processeur par cœur sur l'ensemble Compute Engine
Compute Engine. Si le ratio est supérieur à 3/5
ou à 60%, alors
Cloud Monitoring envoie une alerte. Dans cet exemple, vous devez également inclure
Une fonction cast_units
pour aligner les unités de mesure
{ fetch gce_instance :: compute.googleapis.com/instance/cpu/usage_time | group_by [], .sum; fetch gce_instance :: compute.googleapis.com/instance/cpu/reserved_cores | group_by [], .sum | cast_units('s{CPU}') } | every 30s | ratio | condition val() > 0.6
Vous pouvez créer des règles d'alerte basées sur des ratios sans utiliser MQL:
- Pour voir un exemple d'utilisation de la console Google Cloud, consultez Calculer des ratios
- Pour obtenir un exemple utilisant l'API Cloud Monitoring, consultez Ratio de métriques :