Créez des groupes contenant les règles d'alerte pour les métriques ou les journaux de votre projet dans la console GDC. Les règles de métriques envoient des alertes en fonction des données de métriques, tandis que les règles de journaux envoient des alertes en fonction des données de journaux. Vous devez saisir l'expression du langage de requête qui détermine si l'alerte doit passer à l'état "En attente". Vous pouvez également inclure des valeurs facultatives telles que des libellés et des annotations.
Les libellés vous permettent de différencier les caractéristiques d'une alerte sous forme de mappage de paires clé/valeur. Utilisez des libellés pour ajouter ou remplacer des informations, comme le niveau de gravité (erreur, critique, avertissement ou information), le code d'alerte et un nom court pour identifier la ressource.
En revanche, utilisez les annotations pour ajouter des métadonnées non identifiantes aux alertes. Par exemple, vous pouvez inclure des valeurs pour les messages et les expressions qui s'affichent dans les champs de l'interface utilisateur ou les URL de runbook pour faciliter les actions de résolution.
Vous pouvez également créer des règles d'alerte à l'aide de l'API Observability pour interagir directement avec une ressource personnalisée et mettre à jour les modifications dans l'espace de noms de votre projet.
Avant de commencer
Avant de continuer, assurez-vous de disposer des autorisations requises suivantes :
Créer des règles d'alerte basées sur les journaux
Pour obtenir les autorisations nécessaires pour créer ou afficher des règles d'alerte basées sur des journaux, demandez à l'administrateur IAM de votre projet de vous accorder l'un des rôles suivants dans l'espace de noms de votre projet :
- Créateur de règles de journalisation : crée des ressources personnalisées
LoggingRule
. Demandez le rôle Créateur de règles Logging (loggingrule-creator
). - Éditeur de règles de journalisation : permet de modifier les ressources personnalisées
LoggingRule
. Demandez le rôle Éditeur de règles de journalisation (loggingrule-editor
). - Lecteur de règles de journalisation : affiche les ressources personnalisées
LoggingRule
. Demandez le rôle Lecteur de règles de journalisation (loggingrule-viewer
).
Créer des règles d'alerte basées sur des métriques
Pour obtenir les autorisations nécessaires pour créer ou afficher des règles d'alerte basées sur des métriques, demandez à l'administrateur IAM de votre projet de vous accorder l'un des rôles suivants dans l'espace de noms de votre projet :
- Éditeur de règles de surveillance : permet de modifier les ressources personnalisées
MonitoringRule
. Demandez le rôle Éditeur de règles de surveillance (monitoringrule-editor
). - Lecteur de règles de surveillance : affiche les ressources personnalisées
MonitoringRule
. Demandez le rôle Lecteur des règles de surveillance (monitoringrule-viewer
).
Pour en savoir plus sur les attributions de rôles, consultez Descriptions des rôles prédéfinis.
Créer des règles
Vous pouvez créer des règles d'alerte à l'aide de la console GDC (méthode recommandée) ou en déployant une ressource personnalisée à l'aide de l'API Observability dans l'espace de noms de votre projet.
Console
Suivez les étapes ci-dessous pour créer des règles d'alerte à partir de la console GDC :
- Dans la console GDC, sélectionnez un projet.
- Dans le menu de navigation, cliquez sur Opérations > Alertes.
- Cliquez sur l'onglet Règle d'alerte.
- Cliquez sur Créer un groupe de règles.
- Indiquez si vous souhaitez créer un groupe pour les métriques ou les journaux. Les règles de métriques envoient des alertes en fonction des données de surveillance du système, et les règles de journalisation envoient des alertes en fonction des données de journalisation du système.
- Dans le champ Nom du groupe de règles d'alerte, saisissez un nom pour le groupe.
- Dans le champ Intervalle d'évaluation des règles, saisissez le nombre de secondes pour chaque intervalle.
- Dans le champ Limite, saisissez le nombre maximal d'alertes. Saisissez
0
pour un nombre illimité d'alertes. - Dans la section Règles d'alerte, cliquez sur Créer une règle d'alerte.
- Saisissez le nom de la règle d'alerte.
Saisissez une expression pour la règle d'alerte :
- Pour une règle de journalisation système, saisissez une expression LogQL (Log Query Language).
- Pour une règle de surveillance du système, saisissez une expression PromQL (Prometheus Query Language).
Cette expression doit correspondre à une instruction "vrai" ou "faux", qui détermine si l'alerte doit passer à l'état "En attente" ou non.
Dans le champ Durée, saisissez le nombre de secondes pour définir le moment où une alerte active passe de l'état "En attente" à l'état "Ouverte". Remarque : Si vous définissez la durée sur la valeur
0
, le système Observability envoie l'alerte immédiatement après que la condition est remplie.Dans le champ Gravité, choisissez le niveau de gravité, par exemple Erreur ou Avertissement.
Saisissez un nom court pour identifier la ressource associée, par exemple
AIS
ouDHCP
.Saisissez un code d'alerte pour identifier l'alerte.
Saisissez l'URL d'un runbook ou des informations pour résoudre le problème.
Saisissez un message ou une description pour l'alerte.
Facultatif : Cliquez sur Ajouter une étiquette pour ajouter des étiquettes sous forme de paires clé-valeur.
Facultatif : Cliquez sur Ajouter une annotation pour ajouter des annotations sous forme de paires clé-valeur.
Cliquez sur Enregistrer pour créer la règle.
Cliquez sur Créer pour créer le groupe de règles. Le groupe de règles s'affiche dans la liste Groupe de règles d'alerte.
API
Vous pouvez créer des règles de surveillance et de journalisation du système dans GDC à l'aide de l'API Observability en déployant des ressources personnalisées. Une ressource personnalisée MonitoringRule
ou LoggingRule
se compose d'une ou plusieurs requêtes et expressions pour former une condition, la fréquence d'évaluation et, éventuellement, la durée pendant laquelle la condition est remplie.
Suivez les étapes ci-dessous pour créer des règles d'alerte en déployant une ressource personnalisée dans l'espace de noms de votre projet :
- Créez un fichier YAML pour la ressource personnalisée à l'aide des modèles suivants pour les règles d'alerte de surveillance ou de journalisation :
- Pour créer des règles de surveillance du système et envoyer des alertes basées sur des données de métriques, utilisez la ressource personnalisée
MonitoringRule
. - Pour créer des règles de journalisation du système et envoyer des alertes en fonction des données de journalisation, utilisez la ressource personnalisée
LoggingRule
.
- Pour créer des règles de surveillance du système et envoyer des alertes basées sur des données de métriques, utilisez la ressource personnalisée
- Dans le champ
namespace
de la ressource personnalisée, saisissez l'espace de noms de votre projet. - Dans le champ
name
, saisissez un nom pour la configuration de la règle d'alerte. - Facultatif : Si vous configurez la ressource personnalisée
LoggingRule
pour les règles de journalisation, vous pouvez choisir la source de journaux pour les alertes dans le champsource
. Par exemple, saisissez une valeur telle queoperational
ouaudit
. - Dans le champ
interval
, saisissez le nombre de secondes correspondant à la durée de l'intervalle d'évaluation de la règle. - Facultatif : Dans le champ
limit
, saisissez le nombre maximal d'alertes. Saisissez0
pour définir un nombre illimité d'alertes. (Facultatif) Si vous souhaitez également calculer des métriques et configurer des règles d'enregistrement, saisissez les informations suivantes dans le champ
recordRules
:- Dans le champ
record
, saisissez le nom de l'enregistrement. Cette valeur définit la série temporelle dans laquelle écrire la règle d'enregistrement. Il doit s'agir d'un nom de métrique valide. Dans le champ
expr
, saisissez une expression pour la règle d'enregistrement :- Pour une règle de journalisation système, saisissez une expression LogQL (Log Query Language).
- Pour une règle de surveillance du système, saisissez une expression PromQL (Prometheus Query Language).
Cette expression doit correspondre à une valeur numérique pour être enregistrée en tant que métrique.
Facultatif : Dans le champ
labels
, définissez les libellés que vous souhaitez ajouter ou remplacer sous forme de paires clé/valeur.
- Dans le champ
Dans le champ
alertRules
, saisissez les informations suivantes pour configurer les règles d'alerte :- Dans le champ
alert
, saisissez le nom de l'alerte. Dans le champ
expr
, saisissez une expression pour la règle d'alerte :- Pour une règle de journalisation système, saisissez une expression LogQL.
- Pour une règle de surveillance du système, saisissez une expression PromQL.
Cette expression doit correspondre à une instruction "vrai" ou "faux", qui détermine si l'alerte doit passer à l'état "En attente" ou non.
Facultatif : Dans le champ
for
, saisissez la durée en secondes pendant laquelle la condition spécifiée doit être remplie pour que l'alerte passe de l'état "En attente" à l'état "Ouverte". La durée par défaut est de0
secondes si vous n'en spécifiez pas d'autre.Dans le champ
labels
, définissez les libellés que vous souhaitez ajouter ou remplacer sous forme de paires clé/valeur. Les libellés suivants sont obligatoires :severity
: choisissez le niveau de gravité, par exempleerror
,critical
,warning
ouinfo
.code
: saisissez le code d'alerte pour identifier l'alerte.resource
: saisissez un nom court pour identifier la ressource associée, par exempleAIS
ouDHCP
.
Facultatif : Dans le champ
annotations
, ajoutez des annotations sous forme de paires clé/valeur.
- Dans le champ
Enregistrez le fichier YAML de la ressource personnalisée.
Déployez la ressource personnalisée dans l'espace de noms de votre projet du cluster d'administrateur pour créer les règles d'alerte.
Configurer les règles de journalisation et de surveillance du système à partir de ressources personnalisées
Cette section contient les modèles YAML que vous devez utiliser pour créer des règles d'alerte en déployant des ressources personnalisées. Si vous créez des alertes à partir de la console GDC, vous pouvez ignorer cette section.
Ressource personnalisée MonitoringRule
Pour créer des règles de surveillance du système, vous devez créer une ressource personnalisée MonitoringRule
. Un MonitoringRule
se compose de règles d'enregistrement et d'alerte qui décrivent les conditions d'envoi d'une alerte.
Le fichier YAML suivant montre un modèle de la ressource personnalisée MonitoringRule
:
# Configures either an alert or a target record for precomputation
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose namespace that matches the project namespace
# Note: The alert or record will be produced in the same namespace
namespace: PROJECT_NAMESPACE
name: alerting-config
spec:
# Rule evaluation interval
interval: 60s
# Configure limit for number of alerts (0: no limit)
# Optional. Default: 0 (no limit)
limit: 0
# Configure recording rules to generate new metrics based on pre-existing metrics.
# Recording rules precompute expressions that are frequently needed or computationally expensive.
# These rules save their result as a new set of time series.
recordRules:
# Define which timeseries to write to. The value must be a valid metric name.
- record: MyMetricsName
# Define PromQL expression to evaluate for this rule
expr: rate({service_name="bob-service"} [1m])
# Define labels to add or overwrite
# Optional. Map of key-value pairs
labels:
<label_key>: <label_value>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define PromQL expression to evaluate for this rule
# https://prometheus.io/docs/prometheus/latest/configuration/alerting_rules/
expr: rate({service_name="bob-service"} [1m])
# Define when an active alert moves from pending to open
# Optional. Default: 0s
for: 0s
# Define labels to add or overwrite
# Required, Map of key-value pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to the alert
# additional labels are optional
labels:
severity: error
code: 202
resource: AIS
<label_key>: <label_value>
# Define annotations to add
# Optional. Map of key-value pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<label_key>: <label_value>
Remplacez PROJECT_NAMESPACE par l'espace de noms de votre projet.
Ressource personnalisée LoggingRule
Pour créer des règles de journalisation du système, vous devez créer une ressource personnalisée LoggingRule
. Un LoggingRule
se compose de règles d'enregistrement et d'alerte qui décrivent les conditions d'envoi d'une alerte.
# Configures either an alert or a target record for precomputation
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose namespace that matches the project namespace
# Note: The alert or record will be produced in the same namespace
namespace: PROJECT_NAMESPACE
name: alerting-config
spec:
# Choose which log source to base alerts on (Operational/Audit Logs)
# Optional. Default: Operational
source: operational
# Rule evaluation interval
interval: 60s
# Configure limit for number of alerts (0: no limit)
# Optional. Default: 0 (no limit)
limit: 0
# Configure recording rules to generate new metrics based on pre-existing logs.
# Recording rules generate metrics based on logs.
# Use recording rules for complex alerts, which query the same expression repeatedly every time they are evaluated.
recordRules:
# Define which timeseries to write to. The value must be a valid metric name.
- record: MyMetricsName
# Define LogQL expression to evaluate for this rule
# https://grafana.com/docs/loki/latest/rules/
expr: rate({service_name="bob-service"} [1m])
# Define labels to add or overwrite
# Optional. Map of key-value pairs
labels:
<label_key>: <label_value>
# Configure alert rules
alertRules:
# Define alert name
- alert: <string>
# Define LogQL expression to evaluate for this rule
expr: rate({service_name="bob-service"} [1m])
# Define when an active alert moves from pending to open
# Optional. Default: 0s
for: 0s
# Define labels to add or overwrite
# Required, Map of key-value pairs
# Required labels:
# severity: [error, critical, warning, info]
# code:
# resource: component/service/hardware related to alert
# additional labels are optional
labels:
severity: warning
code: 202
resource: AIS
<label_name>: <label_value>
# Define annotations to add
# Optional. Map of key-value pairs
# Recommended annotations:
# message: value of Message field in UI
# expression: value of Rule field in UI
# runbookurl: URL for link in Actions to take field in UI
annotations:
<label_name>: <label_value>
Remplacez PROJECT_NAMESPACE par l'espace de noms de votre projet.