Annoter les incidents à l'aide d'étiquettes

Ce document décrit comment vous pouvez organiser et hiérarchiser vos incidents en leur attribuant des étiquettes définies par l'utilisateur. Ces libellés sont configurés sur les règles d'alerte et sont listés dans les règles d'alerte et les incidents. Selon votre configuration, les étiquettes sont également figurant dans certaines notifications.

À propos des libellés

Les étiquettes, qui sont des paires clé/valeur, sont utilisées pour associer une série temporelle, une règle d'alerte, un incident ou une notification. Par exemple, les étiquettes d'une série temporelle peuvent identifier instance de machine virtuelle (VM) à partir de laquelle les données ont été collectées. Les étiquettes sont prédéfinies ou définies par l'utilisateur.

Étiquettes personnalisés

Les étiquettes définies par l'utilisateur contiennent les informations que vous spécifiez. Ces libellés peuvent avoir des valeurs statiques ou dynamiques:

Les libellés doivent commencer par une lettre minuscule. Les clés d'étiquette et les étiquettes ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et tirets.

Étiquettes prédéfinis

Des libellés prédéfinis sont inclus dans les descripteurs de ressources. Ces libellés doivent être renseignés lors de l'écriture des données de séries temporelles. Ces libellés fournissent des informations sur la métrique collectée ou sur la ressource à laquelle la métrique est écrite. Par exemple, les étiquettes d'une série temporelle peuvent identifier une machine virtuelle (VM), une zone, un projet Google Cloud et un type d'appareil. Lorsque Monitoring crée un incident basé sur cette série temporelle, l'incident hérite de ces libellés.

Afficher les libellés

Vous pouvez afficher les libellés d'une règle d'alerte ou d'un incident sur la page d'informations d'un incident, la page d'informations d'une règle d'alerte et dans certaines notifications.

  • Règles d'alerte : les libellés statiques définis par l'utilisateur sont listés dans la section Libellés utilisateur. Libellés dynamiques définis par l'utilisateur et libellés prédéfinis ne sont pas visibles.
  • Incidents : les libellés statiques définis par l'utilisateur sont listés dans la section Libellés de stratégie, et les libellés dynamiques définis par l'utilisateur sont listés dans la section Libellés de métrique. Les étiquettes prédéfinies sont listées dans le menu Libellés de ressource surveillée. et Libellés de métriques.
  • Notifications : les libellés prédéfinis et les libellés définis par l'utilisateur sont listés dans les types de notifications suivants :

    • E-mail
    • Google Chat
    • PagerDuty
    • Pub/Sub
    • Webhook

Exemple: Ajouter des étiquettes définies par l'utilisateur avec des valeurs dynamiques

Vous pouvez utiliser MQL pour configurer un libellé afin que sa valeur change dynamiquement en fonction des données de séries temporelles. Par exemple, vous souhaitez que vos incidents comportent un libellé criticality dont la valeur change en fonction de la valeur de la métrique d'utilisation du processeur surveillée :

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
    add[
      criticality:
        if(val() >= 90 '%', 'CRITICAL',
          if(val() >= 80 '%', 'WARNING',
            if(val() >= 70 '%', 'INFO', 'GOOD')))
    ]
| condition val() >= 70 '%'

La figure suivante illustre comment les règles d'alerte qui utilisent des requêtes MQL traitent les données de séries temporelles qu'elles surveillent :

Illustration de la façon dont les règles d'alerte traitent leurs séries temporelles surveillées.

Le gestionnaire de règles traite les données d'utilisation du processeur et produit une série temporelle indiquant quand la condition est remplie. Dans l'exemple précédent, la condition est remplie lorsque l'utilisation du processeur est d'au moins 70 %. Pour chaque série temporelle d'entrée, le gestionnaire de règles peut générer l'une des quatre séries temporelles suivantes:

Nom de la série temporelle de sortie Condition remplie Description
"BON" Non Cette série temporelle possède les mêmes étiquettes que la série temporelle d'entrée. Il n'a pas d'étiquette de gravité.
"CRITICAL" Oui L'utilisation du processeur est d'au moins 90%. La série temporelle de sortie a les mêmes libellés que la série temporelle "BON", ainsi qu'un libellé de gravité dont la valeur est "CRITIQUE".
"AVERTISSEMENT" Oui L'utilisation du processeur est comprise entre 80% et 90%. La série temporelle de sortie a les mêmes libellés que la série temporelle "BON", ainsi qu'un libellé de gravité dont la valeur est "AVERTISSEMENT".
"INFO" Oui L'utilisation du processeur est d'au moins 70 %, mais inférieure à 80 %. La série temporelle de sortie a les mêmes étiquettes que la série "GOOD" série temporelle suivie d'une étiquette de gravité associée à la valeur "INFO".

Les données de séries temporelles générées par le gestionnaire de règles sont l'entrée du gestionnaire d'incidents, qui détermine quand les incidents sont créés et fermés. Pour déterminer quand fermer un incident, le gestionnaire d'incidents utilise l'API les valeurs de duration, evaluationMissingData, et autoClose.

Bonnes pratiques

Pour vous assurer qu'un seul incident est ouvert à la fois lorsque vous créez des libellés dont les valeurs sont définies de manière dynamique, procédez comme suit :

  • Dans l'objet MetricThreshold, remplacez la des valeurs par défaut pour les champs suivants:

    • Champ duration : définissez-le sur une valeur non nulle.
    • Champ evaluationMissingData: défini pour que les incidents soient fermés lorsque les données cessent d'arriver. Lorsque vous utilisez l'API Cloud Monitoring, définissez ce champ sur EVALUATION_MISSING_DATA_INACTIVE. Lorsque vous utilisez la console Google Cloud, définissez le champ "Points de données manquants traités comme des valeurs qui n'enfreignent pas la condition du règlement".
  • Dans l'objet AlertStrategy, définissez le champ autoClose sur sa valeur minimale de 30 minutes. Lorsque vous utilisez l'API Cloud Monitoring, définissez ce champ sur 30m.

Pour en savoir plus, consultez la section Données de métrique partielles.

Flux d'incident

Supposons que les mesures d'utilisation du processeur soient inférieures à 70 % lorsque la stratégie d'alerte est créée. La séquence suivante montre comment les incidents sont ouvertes et fermées:

  1. Comme les mesures d'utilisation du processeur sont inférieures à 70%, le gestionnaire de règles génère l'état "BON" des séries temporelles qu'aucun incident n'est ouvert.

  2. Supposons ensuite que l'utilisation du processeur passe à 93 %. Gestionnaire de règles cesse de générer le résultat "BON" de séries temporelles et commence à générer des données le "CRITICAL" de séries temporelles.

    Le gestionnaire d'incidents voit une nouvelle série temporelle "CRITIQUE" qui remplit la condition, puis ouvre un incident. Cette notification inclut une étiquette de gravité associée à la valeur CRITICAL.

  3. Supposons que l'utilisation du processeur tombe à 75%. Le gestionnaire de règles cesse de générer la série temporelle "CRITICAL" et commence à générer la série temporelle "INFO".

    Le gestionnaire d'incidents voit de séries temporelles qui respecte puis ouvre un incident. La notification inclut l'étiquette de gravité avec une valeur de INFO.

    Le gestionnaire d'incidents constate qu'aucune donnée n'arrive pour la série temporelle "CRITICAL" et qu'un incident est ouvert pour cette série temporelle. Étant donné que la règle est configurée pour fermer les incidents lorsque les données ne sont plus reçues, le gestionnaire d'incidents ferme l'incident associé à la série temporelle "CRITICAL". Par conséquent, seul l'incident dont l'étiquette de gravité a la valeur INFO reste ouvert.

  4. Enfin, supposons que l'utilisation du processeur tombe à 45%. Cette valeur est inférieure que tous les seuils, de sorte que le gestionnaire de règles cesse de générer INFO série temporelle et commence à générer le résultat de séries temporelles.

    Le gestionnaire d'incidents constate qu'aucune donnée n'arrive pour l'erreur "INFO". série temporelle et qu'un incident est ouvert pour cette série temporelle. En effet, utilise les paramètres recommandés, l'incident est clôturé.

Si vous n'utilisez pas la valeur recommandée pour le champ evaluationMissingData, les incidents ouverts ne sont pas fermés immédiatement lorsque les données cessent d'arriver. Par conséquent, vous pouvez voir plusieurs incidents ouverts pour la même série temporelle d'entrée. Pour en savoir plus, consultez la section Données de métrique partielles.

Étape suivante