Annoter les incidents avec des libellés

Ce document explique comment organiser et hiérarchiser vos incidents en leur attribuant des libellés définis par l'utilisateur. Ces libellés sont configurés dans les règles d'alerte et sont listés dans les règles d'alerte et les incidents. En fonction de votre configuration, les libellés sont également listés dans certaines notifications.

À propos des libellés

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

Étiquettes personnalisés

Les libellés définis 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 et les valeurs de libellé ne peuvent contenir que des lettres minuscules, des chiffres, des traits de soulignement et des tirets.

Libellés prédéfinis

Les libellés prédéfinis sont inclus dans les descripteurs de ressources. Ils doivent être renseignés lorsque des données de séries temporelles sont écrites. Ces libellés affichent des informations sur la métrique collectée ou sur la ressource par rapport à laquelle la métrique est écrite. Par exemple, les libellés 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.

Libellés App Hub

App Hub ajoute des libellés aux données de journaux, de métriques et de trace générées par une application, ainsi que par ses services et charges de travail. Ces libellés permettent à l'infrastructure Google Cloud de créer des tableaux de bord pour les applications, les services et les charges de travail qui affichent les données de métriques et de journaux. Pour en savoir plus, consultez l'un des documents suivants :

Afficher les libellés

Vous pouvez afficher les libellés d'une règle d'alerte ou d'un incident sur la page de détails d'un incident, la page de détails 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. Les libellés dynamiques définis par l'utilisateur et les 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 règles, et les libellés dynamiques définis par l'utilisateur sont listés dans la section Libellés de métriques. Les libellés prédéfinis sont listés dans les sections Libellés de ressources surveillées et Libellés de métriques.
  • Notifications : les libellés prédéfinis et 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 libellés définis par l'utilisateur avec des valeurs dynamiques

Vous pouvez utiliser PromQL pour configurer un libellé afin que sa valeur change de manière dynamique en fonction des données de série temporelle. Par exemple, vous souhaitez que vos incidents aient un libellé criticality dont la valeur change en fonction de la valeur de la métrique d'utilisation du processeur surveillée :

  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
    "criticality", "CRITICAL", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
    "criticality", "WARNING", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
    "criticality", "INFO", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
    "criticality", "GOOD", "", ""
  )

La figure suivante illustre la façon dont les règles d'alerte qui utilisent des requêtes PromQL traitent les données de séries temporelles qu'elles surveillent :

Illustration du traitement des séries temporelles surveillées par les règles d'alerte.

Le gestionnaire de règles traite les données d'utilisation du processeur et génère une série temporelle qui indique 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
"GOOD" Non Cette série temporelle comporte les mêmes libellés que la série temporelle d'entrée. Il n'est associé à aucun libellé de gravité.
"CRITICAL" Oui L'utilisation du processeur est d'au moins 90 %. La série temporelle de sortie comporte les mêmes libellés que la série temporelle "GOOD", plus un libellé de gravité avec la valeur "CRITICAL".
"AVERTISSEMENT" Oui L'utilisation du processeur est d'au moins 80 %, mais inférieure à 90 %. La série temporelle de sortie comporte les mêmes libellés que la série temporelle "GOOD", plus un libellé de gravité avec la valeur "WARNING".
"INFO" Oui L'utilisation du processeur est d'au moins 70 %, mais inférieure à 80 %. La série temporelle de sortie comporte les mêmes libellés que la série temporelle "GOOD", plus un libellé de gravité avec la valeur "INFO".

Les données de séries temporelles générées par le gestionnaire de règles sont les données d'entrée du gestionnaire d'incidents, qui détermine quand les incidents sont créés et clôturés. Pour déterminer quand clore un incident, le responsable des incidents utilise les valeurs des champs duration, evaluationMissingData et autoClose.

Bonnes pratiques

Pour vérifier qu'au maximum un 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 les valeurs par défaut des champs suivants :

    • Champ duration : définissez une valeur non nulle.
    • Champ evaluationMissingData : définissez-le de sorte 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 sur "Les points de données manquants sont traités comme des valeurs qui ne violent pas la condition de la règle".
  • 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 Données de métriques partielles.

Flux d'incidents

Supposons que les mesures d'utilisation du processeur soient inférieures à 70 % lorsque la règle d'alerte est créée. La séquence suivante illustre l'ouverture et la clôture des incidents :

  1. Étant donné que les mesures d'utilisation du processeur sont inférieures à 70 %, le gestionnaire de règles génère la série temporelle "BON" et aucun incident n'est ouvert.

  2. Ensuite, supposons que l'utilisation du processeur passe à 93 %. Le gestionnaire de règles cesse de générer les données de série temporelle "GOOD" et commence à générer des données pour la série temporelle "CRITICAL".

    Le responsable des incidents voit une nouvelle série temporelle "CRITIQUE" qui remplit la condition, puis ouvre un incident. La notification inclut le libellé de gravité avec 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 responsable des incidents voit une nouvelle série temporelle "INFO" qui remplit la condition, puis ouvre un incident. La notification inclut le libellé de gravité avec la valeur INFO.

    Le responsable des 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 cessent d'arriver, le gestionnaire d'incidents ferme l'incident associé à la série temporelle "CRITIQUE". Par conséquent, seul l'incident dont le libellé de gravité a la valeur INFO reste ouvert.

  4. Enfin, supposons que l'utilisation du processeur tombe à 45 %. Cette valeur est inférieure à tous les seuils. Le gestionnaire de règles cesse donc de générer la série temporelle "INFO" et commence à générer la série temporelle "GOOD".

    Le responsable des incidents constate qu'aucune donnée n'arrive pour la série temporelle "INFO" et qu'un incident est ouvert pour cette série temporelle. L'incident est clos, car la règle utilise les paramètres recommandés.

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 Données de métriques partielles.

Étapes suivantes