Créer des règles d'alerte basées sur des prévisions de valeur de métrique

Ce document explique comment utiliser la console Google Cloud pour créer une règle d'alerte qui envoie des notifications lorsque la règle prévoit que le seuil sera dépassé au cours de la période de prévision à venir. Une prévision indique si une série temporelle dépassera ou non un seuil au cours d'une fenêtre de prévision, c'est-à-dire une période future. La période de prévision peut aller de 1 heure (3 600 secondes) à 2,5 jours (216 000 secondes).

Ce contenu ne concerne pas les règles d'alerte basées sur les journaux. Pour en savoir plus sur les règles d'alerte basées sur les journaux, qui vous avertissent lorsqu'un message particulier s'affiche dans les journaux, consultez la page Surveiller vos journaux.

Ce document n'aborde pas les points suivants:

À propos des conditions de prévision

Vous pouvez utiliser les prévisions lorsque vous surveillez la plupart des métriques. Toutefois, lorsque vous surveillez une ressource limitée, comme un quota, un espace disque ou une utilisation de la mémoire, une condition de prévision peut vous en informer avant que le seuil ne soit dépassé. Cette fonctionnalité vous laisse plus de temps pour répondre à la façon dont cette ressource limitée est consommée avant que le seuil ne soit dépassé.

Pour chaque série temporelle que surveille une condition de prévision, la condition initialise un algorithme de décision. Une fois l'algorithme entraîné, il génère une prévision chaque fois que la condition est évaluée. Chaque prévision indique si la série temporelle dépassera ou non le seuil au cours de la période de prévision. Si une série temporelle surveillée présente une périodicité régulière, l'algorithme de décision de cette série temporelle intègre le comportement périodique dans ses prévisions.

Une condition de prévision est remplie lorsque l'une ou l'autre des conditions suivantes se produit:

  • Toutes les valeurs d'une série temporelle pendant une période de nouvelle analyse spécifique ne respectent pas le seuil.
  • Toutes les prévisions d'une série temporelle spécifique effectuées dans une période de nouvelle analyse prédisent que la série temporelle dépassera le seuil au cours de la période de prévision.

La durée d'entraînement initiale d'un algorithme de décision correspond au double de la durée de la période de prévision. Par exemple, si la période de prévision est d'une heure, deux heures d'entraînement sont nécessaires. L'algorithme de décision de chaque série temporelle est entraîné indépendamment. Lorsqu'un algorithme de décision est en cours d'entraînement, sa série temporelle ne remplit la condition que lorsque les valeurs de la série temporelle enfreignent le seuil de la période de nouvelle analyse spécifiée.

Une fois l'entraînement initial terminé, chaque algorithme de décision est continuellement entraîné à l'aide de données qui couvrent jusqu'à six fois la longueur de la période de prévision. Par exemple, lorsque la période de prévision est d'une heure, les six heures de données les plus récentes sont utilisées lors de l'entraînement continu.

Lorsque vous configurez une condition de prévision et que les données cessent d'arriver pendant plus de 10 minutes, la prévision est désactivée et la condition fonctionne comme une condition de seuil de métrique.

Des incidents sont créés lorsque la prévision prévoit qu'une série temporelle dépassera le seuil de la condition au cours de la période de prévision. La surveillance ferme automatiquement l'incident lorsque la prévision indique que la série temporelle ne dépassera pas le seuil au cours de la période de prévision.

Avant de commencer

  1. Pour obtenir les autorisations nécessaires pour créer et modifier des règles d'alerte à l'aide de la console Google Cloud, demandez à votre administrateur de vous accorder le rôle IAM Éditeur Monitoring (roles/monitoring.editor) sur votre projet. Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.

    Vous pouvez également obtenir les autorisations requises via des rôles personnalisés ou d'autres rôles prédéfinis.

    Pour en savoir plus sur les rôles Cloud Monitoring, consultez Contrôler les accès avec Identity and Access Management.

  2. Assurez-vous de bien maîtriser les concepts généraux des règles d'alerte. Pour en savoir plus sur ces sujets, consultez la page Présentation des alertes.

  3. Configurez les canaux de notification que vous souhaitez utiliser pour recevoir des notifications. À des fins de redondance, nous vous recommandons de créer plusieurs types de canaux de notification. Pour en savoir plus, consultez la page Créer et gérer des canaux de notification.

Créer une règle d'alerte

Pour créer une règle d'alerte qui envoie une notification en fonction d'une prévision, procédez comme suit:

  1. Dans la console Google Cloud, accédez à la page Alertes :

    Accéder à l'interface des alertes

    Si vous utilisez la barre de recherche pour trouver cette page, sélectionnez le résultat dont le sous-titre est Monitoring.

  2. Sélectionnez Créer une règle.
  3. Sélectionnez la série temporelle à surveiller :

    1. Cliquez sur Sélectionner une métrique, parcourez les menus pour sélectionner un type de ressource et un type de métrique, puis cliquez sur Appliquer.

      Le menu Sélectionner une métrique contient des fonctionnalités qui vous aident à trouver les types de métriques disponibles:

      • Pour rechercher un type de métrique spécifique, utilisez la barre de filtre . Par exemple, si vous saisissez util, le menu ne répertorie que les entrées incluant util. Les entrées s'affichent lorsqu'elles réussissent un test "contient" non sensible à la casse.
      • Pour afficher tous les types de métriques, même ceux sans données, cliquez sur Active (Actif). Par défaut, les menus n'affichent que les types de métriques associés à des données. Pour en savoir plus, consultez la section Métrique non listée dans le menu.

      Vous pouvez surveiller n'importe quelle métrique intégrée ou tout type de métrique défini par l'utilisateur dont le type de valeur est double ou int64, qui est une métrique de contrainte et qui n'est pas une métrique pour une instance de VM Amazon.

      Si vous sélectionnez un type de métrique qui entraîne la surveillance de plus de 64 séries temporelles, la surveillance effectue des prévisions pour les 64 séries temporelles dont les valeurs sont les plus proches du seuil ou qui le dépassent déjà. Pour les autres séries temporelles, leurs valeurs sont comparées au seuil.

    2. Facultatif: Pour surveiller un sous-ensemble de la série temporelle correspondant aux métriques et aux types de ressources que vous avez sélectionnés à l'étape précédente, cliquez sur Ajouter un filtre. Dans la boîte de dialogue de filtrage, sélectionnez le libellé à filtrer, un comparateur, puis la valeur du filtre. Par exemple, le filtre zone =~ ^us.*.a$ utilise une expression régulière correspondant à toutes les données de séries temporelles dont le nom de zone commence par us et se terine par a. Pour en savoir plus, consultez la section Filtrer la série temporelle sélectionnée.

    3. Facultatif: Pour modifier l'alignement des points d'une série temporelle, dans la section Transformer les données, définissez les champs Fenêtre glissante et Fonction de fenêtre glissante.

      Si vous surveillez une métrique basée sur les journaux, nous vous recommandons de définir le menu Fenêtre glissante sur au moins 10 minutes.

      Ces champs indiquent comment les points enregistrés dans une fenêtre sont combinés. Par exemple, supposons que la fenêtre soit de 15 minutes et que la fenêtrage soit max. Le point aligné correspond à la valeur maximale de tous les points au cours des 15 dernières minutes. Pour en savoir plus, consultez la section Alignement: régularisation dans la série.

      Vous pouvez également surveiller le taux de variation d'une valeur de métrique à l'aide du champ Fonction de fenêtre mobile pour calculer le pourcentage de variation. Pour en savoir plus, consultez Surveiller un taux de variation.

    4. Facultatif: Combinez des séries temporelles lorsque vous souhaitez réduire le nombre de séries temporelles surveillées par une stratégie ou lorsque vous ne souhaitez surveiller qu'une collection de séries temporelles. Par exemple, au lieu de surveiller l'utilisation du processeur de chaque instance de VM, vous pouvez calculer la moyenne de l'utilisation du processeur pour toutes les VM d'une zone, puis surveiller cette moyenne. Par défaut, les séries temporelles ne sont pas combinées. Pour en savoir plus, consultez la section Réduction: combiner des séries temporelles.

      Pour combiner toutes les séries temporelles, procédez comme suit:

      1. Dans la section Sur les séries temporelles, cliquez sur Développer.
      2. Définissez le champ Agrégation de séries temporelles sur une valeur autre que none. Par exemple, pour afficher la valeur moyenne de la série temporelle, sélectionnez mean.
      3. Vérifiez que le champ Grouper les séries temporelles par est vide.

      Pour combiner ou regrouper des séries temporelles en fonction des valeurs de libellé, procédez comme suit:

      1. Dans la section Sur les séries temporelles, cliquez sur Développer.
      2. Définissez le champ Agrégation de séries temporelles sur une valeur autre que none.
      3. Dans le champ Grouper les séries temporelles par, sélectionnez les libellés de regroupement.

      Par exemple, si vous regroupez par libellé zone, puis que vous définissez le champ d'agrégation sur mean, le graphique affiche une série temporelle pour chaque zone pour laquelle des données sont disponibles. La série temporelle affichée pour une zone spécifique correspond à la moyenne de toutes les séries temporelles de cette zone.

    5. Cliquez sur Suivant.

  4. Configurez le déclencheur de condition:

    1. Sélectionnez Forecast (Prévision) comme type de condition.

    2. Facultatif: modifiez le menu Déclencheur d'alerte, qui contient les valeurs suivantes:

      • Toute violation de série temporelle: paramètre par défaut. Toute série temporelle qui ne respecte pas le seuil ou qui est prévue de ne pas le respecter pendant toute la période de nouvelle analyse entraîne la satisfaction de la condition.

      • Pourcentage de séries temporelles enfreintes: un pourcentage de séries temporelles doit dépasser le seuil ou être prévu pour dépasser le seuil pendant toute la période de nouvelle analyse avant que la condition ne soit remplie. Par exemple, vous pouvez recevoir une notification lorsque 50% de la série temporelle surveillée ne respectent pas le seuil pour l'ensemble de la période de nouvelle analyse.

      • Nombre de séries temporelles enfreintes: un nombre spécifique de séries temporelles doit dépasser le seuil ou être prévu pour dépasser le seuil pendant toute la période de nouvelle analyse avant que la condition ne soit remplie. Par exemple, vous pouvez être averti lorsque 32 des séries temporelles surveillées ne respectent pas le seuil pour l'ensemble de la période de nouvelle analyse.

      • Toutes les séries temporelles enfreintes: toutes les séries temporelles doivent dépasser le seuil ou être prévues pour dépasser le seuil pendant toute la période de nouvelle analyse avant que la condition ne soit remplie.

      Pour en savoir plus sur les intervalles utilisés par la surveillance pour aligner et mesurer les données de séries temporelles, consultez la section Périodes d'alignement et périodes de nouvelle analyse.

    3. Sélectionnez une valeur pour la Période de prévision. La valeur que vous sélectionnez correspond à la période de prévision. Vous devez définir cette valeur sur au moins une heure (3 600 secondes) et au plus deux jours et demi (216 000 secondes).

    4. Indiquez quand la valeur prévue de la métrique sélectionnée ne respecte pas le seuil à l'aide des champs Position du seuil et Valeur du seuil. Par exemple, si vous définissez ces valeurs sur Au-dessus du seuil et 10, toute valeur prédite supérieure à 10 ne respecte pas le seuil.

    5. Facultatif: développez Options avancées et définissez la valeur de l'Intervalle de nouvelle analyse. La valeur par défaut de ce champ est No retest (Pas de nouvelle analyse).

      Nous vous recommandons de définir ce champ sur au moins 10 minutes.

      Par exemple, supposons que vous configuriez la condition de prévision de sorte que n'importe quelle série temporelle puisse la remplir. Supposons également que la fenêtre de nouveau test est définie sur 15 minutes, que la fenêtre de prévision est définie sur une heure et qu'une infraction se produit lorsque la valeur de la série temporelle est supérieure au seuil, qui est défini sur 10. Cette condition est remplie si l'une des conditions suivantes est remplie:

      • Toutes les valeurs d'une série temporelle deviennent supérieures à 10 et restent à ce niveau pendant au moins 15 minutes.
      • Dans un intervalle de 15 minutes, chaque prévision pour une série temporelle prédit que sa valeur dépassera le seuil de 10 dans l'heure à venir.
    6. Facultatif: Pour spécifier comment Monitoring évalue la condition lorsque les données ne sont plus reçues, développez Options avancées, puis utilisez le menu Évaluation des données manquantes.

      Le menu Évaluation des données manquantes est désactivé lorsque la valeur du champ Délai avant un nouveau test est Aucun nouveau test.

      Lorsqu'il manque des données pendant plus de 10 minutes, une condition de prévision cesse de faire des prévisions et utilise plutôt la valeur du champ Évaluation des données manquantes pour déterminer comment gérer les incidents. Lorsque les observations redémarrent, les prévisions redémarrent également.

      Console Google Cloud
      Champ "Évaluation des données manquantes"
      Résumé Détails
      Données manquantes vides Les incidents ouverts restent ouverts.
      Aucun nouvel incident n'est ouvert.

      Pour les conditions remplies, elles continuent d'être remplies lorsque les données cessent d'arriver. Si un incident est ouvert pour cette condition, il reste ouvert. Lorsqu'un incident est ouvert et qu'aucune donnée n'arrive, le minuteur de fermeture automatique se déclenche après un délai d'au moins 15 minutes. Si le minuteur expire, l'incident est clos.

      Pour les conditions qui ne sont pas remplies, la condition ne continue pas d'être remplie lorsque les données cessent d'arriver.

      Points de données manquants traités comme des valeurs qui ne respectent pas la condition du règlement Les incidents ouverts restent ouverts.
      Vous pouvez ouvrir de nouveaux incidents.

      Pour les conditions remplies, elles continuent d'être remplies lorsque les données cessent d'arriver. Si un incident est ouvert pour cette condition, il reste ouvert. Lorsqu'un incident est ouvert et qu'aucune donnée n'arrive pendant la durée de fermeture automatique plus 24 heures, l'incident est fermé.

      Pour les conditions non remplies, ce paramètre fait en sorte que la condition de seuil de métrique se comporte comme un metric-absence condition. Si les données n'arrivent pas dans le délai spécifié par la période de nouvelle analyse, la condition est considérée comme remplie. Pour une règle d'alerte avec une seule condition, le respect de la condition entraîne l'ouverture d'un incident.

      Les points de données manquants sont traités comme des valeurs qui ne enfreignent pas la condition du règlement Les incidents ouverts sont fermés.
      Aucun nouvel incident n'est ouvert.

      Pour les conditions remplies, elles cessent d'être remplies lorsque les données cessent d'arriver. Si un incident est ouvert pour cette condition, il est fermé.

      Pour les conditions qui ne sont pas remplies, la condition ne continue pas d'être remplie lorsque les données cessent d'arriver.

    7. Cliquez sur Suivant.

  5. Facultatif: Créez une règle d'alerte avec plusieurs conditions.

    La plupart des règles surveillent un seul type de métrique. Par exemple, une règle peut surveiller le nombre d'octets écrits dans une instance de VM. Lorsque vous souhaitez surveiller plusieurs types de métriques, créez une règle avec plusieurs conditions. Chaque condition surveille un type de métrique. Une fois les conditions créées, vous spécifiez comment elles sont combinées. Pour en savoir plus, consultez la section Règles comportant plusieurs conditions.

    Pour créer une règle d'alerte avec plusieurs conditions, procédez comme suit:

    1. Pour chaque condition supplémentaire, cliquez sur Ajouter une condition d'alerte, puis configurez cette condition.
    2. Cliquez sur Suivant et configurez la combinaison des conditions.
    3. Cliquez sur Next (Suivant) pour passer à la configuration des notifications et de la documentation.
  6. Configurez les notifications:

    1. Développez le menu Notifications et nom, puis sélectionnez vos canaux de notification. À des fins de redondance, nous vous recommandons d'ajouter à une règle d'alerte plusieurs types de canaux de notification. Pour en savoir plus, consultez Gérer les canaux de notification.

    2. Facultatif: Pour recevoir une notification en cas de fermeture d'un incident, cochez la case Notifier en cas de fermeture des incidents. Par défaut, si vous créez une règle d'alerte avec la console Google Cloud, il y a envoi d'une notification uniquement à la création d'un incident.

    3. (Facultatif) Pour modifier la durée pendant laquelle Monitoring attend avant de fermer un incident lorsque les données cessent d'arriver, sélectionnez une option dans le menu Durée de fermeture automatique des incidents. Par défaut, lorsque les données cessent d'arriver, Monitoring attend sept jours avant de fermer un incident ouvert.

    4. Sélectionnez une option dans le menu Niveau de gravité de la règle. Les incidents et les notifications affichent le niveau de gravité.

    5. Facultatif: Pour ajouter des libellés personnalisés à la règle d'alerte, dans la section Libellés utilisateur de la règle, procédez comme suit:

      1. Cliquez sur Ajouter un libellé, puis dans le champ Clé, saisissez un nom pour le libellé. Les noms de libellés doivent commencer par une lettre minuscule et peuvent contenir des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Par exemple, saisissez severity.
      2. Cliquez sur Valeur, puis saisissez une valeur pour votre libellé. Les valeurs de libellé peuvent contenir des lettres minuscules, des chiffres, des traits de soulignement et des tirets. Par exemple, saisissez critical.

      Pour savoir comment utiliser les libellés de règles pour vous aider à gérer vos notifications, consultez la section Annoter les incidents avec des libellés.

  7. Facultatif: Dans la section Documentation, saisissez le contenu que vous souhaitez inclure avec la notification.

    Pour mettre en forme votre documentation, vous pouvez utiliser du texte brut, Markdown et des variables. Vous pouvez également inclure des liens pour aider les utilisateurs à déboguer l'incident, tels que des liens vers des playbooks internes, des tableaux de bord Google Cloud et des pages externes. Par exemple, le modèle de documentation suivant décrit un incident d'utilisation du processeur pour une ressource gce_instance et inclut plusieurs variables pour faire référence à la règle d'alerte et aux ressources REST de condition. Le modèle de documentation redirige ensuite les lecteurs vers des pages externes pour les aider à déboguer.

    Lors de la création des notifications, Monitoring remplace les variables de documentation par leurs valeurs. Les valeurs remplacent les variables uniquement dans les notifications. Le volet d'aperçu et les autres emplacements dans la console Google Cloud n'affichent que le format Markdown.

    Aperçu

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}  
    Alerting policy resource name: ${policy.name}  
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com  
    Internal troubleshooting guide: example.com  
    ${resource.type} dashboard: example.com
    

    Format dans la notification

    Exemple de rendu de la documentation dans une notification.

    Pour en savoir plus, consultez les pages Annoter les notifications avec une documentation définie par l'utilisateur et Utiliser des commandes de canal.

  8. Cliquez sur Nom de l'alerte et saisissez un nom pour la règle d'alerte.

  9. Cliquez sur Créer une règle.

Filtrer la série temporelle sélectionnée

Les filtres permettent de s'assurer que seules les séries temporelles répondant à un ensemble de critères sont surveillées. Lorsque vous appliquez des filtres, vous pouvez réduire le nombre de lignes sur le graphique, ce qui peut améliorer ses performances. Vous pouvez également réduire la quantité de données surveillées en appliquant une agrégation. Les filtres permettent de s'assurer que seules les séries temporelles répondant à un ensemble de critères sont utilisées. Lorsque vous appliquez des filtres, il y a moins de séries temporelles à évaluer, ce qui peut améliorer les performances de l'alerte.

Un filtre est composé d'un libellé, d'un comparateur et d'une valeur. Par exemple, pour faire correspondre toutes les séries temporelles dont le libellé zone commence par "us-central1", vous pouvez utiliser le filtre zone=~"us-central1.*", qui utilise une expression régulière pour effectuer la comparaison.

Lorsque vous filtrez par ID de projet ou conteneur de ressources, vous devez utiliser l'opérateur d'égalité, (=). Lorsque vous filtrez par d'autres libellés, vous pouvez utiliser n'importe quel comparateur compatible. En règle générale, vous pouvez filtrer les libellés de métrique et de ressource, ainsi que par groupe de ressources.

Lorsque vous fournissez plusieurs critères de filtrage, seules les séries temporelles qui correspondent à tous les critères sont surveillées.

Pour ajouter un filtre, cliquez sur Ajouter un filtre, remplissez la boîte de dialogue, puis cliquez sur OK. Dans la boîte de dialogue, utilisez le champ Filtre pour sélectionner le critère à filtrer, l'opérateur de comparaison, puis la valeur. Chaque ligne du tableau suivant présente un opérateur de comparaison, sa signification et un exemple:

OpérateurSignificationExemple
= Égalité resource.labels.zone = "us-central1-a"
!= Inégalité resource.labels.zone != "us-central1-a"
=~ Égalitté expression_régulière2 monitoring.regex.full_match("^us.*")
!=~ Inégalité expression régulière2 monitoring.regex.full_match("^us.*")
starts_with Valeur commençant par resource.labels.zone = starts_with("us")
ends_with Valeur se terminant par resource.labels.zone = ends_with("b")
has_substring La valeur contient resource.labels.zone = has_substring("east")
one_of Une resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with La valeur ne commence pas par resource.labels.zone != starts_with("us")
!ends_with La valeur ne se termine pas par resource.labels.zone != ends_with("b")
!has_substring La valeur ne contient pas resource.labels.zone != has_substring("east")
!one_of La valeur ne correspond pas à l'une des valeurs suivantes resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")

Résoudre les problèmes

Cette section contient des conseils de dépannage.

Métrique non listée dans le menu des métriques disponibles

Pour surveiller une métrique qui ne figure pas dans le menu Sélectionner une métrique, procédez comme suit:

  • Pour créer une règle d'alerte qui surveille une métrique Google Cloud, développez le menu Sélectionner une métrique, puis cliquez sur Active (Actif). Lorsque cette option est désactivée, le menu liste toutes les métriques pour les services Google Cloud et toutes les métriques avec données.

  • Pour configurer une condition pour un type de métrique personnalisée avant que ce type de métrique ne génère des données, vous devez spécifier le type de métrique à l'aide d'un filtre de surveillance:

    1. Sélectionnez ? dans l'en-tête de la section Sélectionner une métrique, puis sélectionnez Mode de filtrage direct dans l'info-bulle.
    2. Saisissez un filtre de surveillance ou un sélecteur de série temporelle. Pour en savoir plus sur la syntaxe, consultez les documents suivants:

Surveiller un taux de variation

Pour surveiller le taux de variation d'une valeur de métrique, définissez le champ Fonction de fenêtre glissante sur Variation en pourcentage. Lorsque la condition est évaluée, Monitoring calcule le taux de variation de la métrique en pourcentage, puis compare ce pourcentage au seuil de la condition. Ce processus de comparaison comprend deux étapes:

  1. Si la série temporelle a un type de métrique DELTA ou CUMULATIVE, elle est convertie en une série temporelle de type GAUGE. Pour en savoir plus sur la conversion, consultez la section Genres, types et conversions.
  2. La surveillance calcule le pourcentage de variation en comparant la valeur moyenne de la fenêtre glissante de 10 minutes la plus récente à la valeur moyenne de la fenêtre glissante de 10 minutes avant le début de la période d'alignement.

Vous ne pouvez pas modifier la période glissante de 10 minutes utilisée pour les comparaisons dans une règle d'alerte de taux de changement. Cependant, c'est vous qui spécifiez la période d'alignement lorsque vous créez la condition.

Restrictions

  • Vous pouvez configurer la condition à l'aide de l'interface basée sur les menus de la console Google Cloud ou à l'aide de filtres de surveillance. Vous ne pouvez pas configurer la condition à l'aide du langage de requête Monitoring ou de PromQL.
  • Toutes les métriques dont le type de valeur est double ou int64 sont acceptées, à l'exception de celles provenant d'instances de VM Amazon.

Étape suivante