Crea gruppi contenenti le regole di avviso per le metriche o i log del tuo progetto nella console GDC. Le regole delle metriche inviano avvisi in base ai dati delle metriche, mentre le regole dei log inviano avvisi in base ai dati di logging. Devi inserire l'espressione del linguaggio di query che determina se l'avviso deve passare a uno stato in attesa. Inoltre, puoi includere valori facoltativi come etichette e annotazioni.
Le etichette consentono di distinguere le caratteristiche di un avviso come una mappa di coppie chiave-valore. Utilizza le etichette per aggiungere o sovrascrivere informazioni, ad esempio il livello di gravità (errore, critico, avviso o informazioni), il codice di avviso e un nome breve per identificare la risorsa.
D'altra parte, utilizza le annotazioni per aggiungere metadati non identificativi agli avvisi. Ad esempio, puoi includere valori per messaggi ed espressioni visualizzati nei campi dell'interfaccia utente o URL runbook per facilitare le azioni risolutive.
In alternativa, puoi creare regole di avviso utilizzando l'API Observability per interagire direttamente con una risorsa personalizzata e aggiornare le modifiche nello spazio dei nomi del progetto.
Prima di iniziare
Prima di continuare, assicurati di disporre delle seguenti autorizzazioni obbligatorie:
Creare regole di avviso basate sui log
Per ottenere le autorizzazioni necessarie per creare o visualizzare regole di avviso basate sui log, chiedi all'amministratore IAM del progetto di concederti uno dei seguenti ruoli nello spazio dei nomi del progetto:
- Logging Rule Creator: crea risorse personalizzate
LoggingRule
. Richiedi il ruolo Creatore regole di Logging (loggingrule-creator
). - Editor regole di logging: modifica le risorse personalizzate
LoggingRule
. Richiedi il ruolo Editor regole di Logging (loggingrule-editor
). - Visualizzatore regole di logging: visualizza le risorse personalizzate
LoggingRule
. Richiedi il ruolo Visualizzatore regole di logging (loggingrule-viewer
).
Creare regole di avviso basate sulle metriche
Per ottenere le autorizzazioni necessarie per creare o visualizzare regole di avviso basate sulle metriche, chiedi all'amministratore IAM del progetto di concederti uno dei seguenti ruoli nello spazio dei nomi del progetto:
- Editor delle regole di monitoraggio: modifica le risorse personalizzate
MonitoringRule
. Richiedi il ruolo Editor regole di monitoraggio (monitoringrule-editor
). - Visualizzatore regole di monitoraggio: visualizza le risorse personalizzate
MonitoringRule
. Richiedi il ruolo Visualizzatore regole di monitoraggio (monitoringrule-viewer
).
Per ulteriori informazioni sulle assegnazioni dei ruoli, consulta Descrizioni dei ruoli predefiniti.
Creare regole
Puoi creare regole di avviso utilizzando la console GDC, che è il metodo preferito, o eseguendo il deployment di una risorsa personalizzata utilizzando l'API Observability nello spazio dei nomi del progetto.
Console
Segui questi passaggi per creare regole di avviso dalla console GDC:
- Nella console GDC, seleziona un progetto.
- Nel menu di navigazione, fai clic su Operazioni > Avvisi.
- Fai clic sulla scheda Policy di avviso.
- Fai clic su Crea gruppo di regole.
- Seleziona se vuoi creare un gruppo per Metriche o Log. Le regole delle metriche inviano avvisi in base ai dati di monitoraggio del sistema e le regole di logging inviano avvisi in base ai dati di logging del sistema.
- Nel campo Nome gruppo di regole di avviso, inserisci un nome per il gruppo.
- Nel campo Intervallo di valutazione delle regole, inserisci il numero di secondi per ogni intervallo.
- Nel campo Limite, inserisci il numero massimo di avvisi. Inserisci
0
per avvisi illimitati. - Nella sezione Regole di avviso, fai clic su Crea regola di avviso.
- Inserisci un nome per la regola di avviso.
Inserisci un'espressione per la regola di avviso:
- Per una regola di logging di sistema, inserisci un'espressione LogQL (Log Query Language).
- Per una regola di monitoraggio del sistema, inserisci un'espressione PromQL (Prometheus Query Language).
Questa espressione deve restituire un'istruzione true o false, che determina se l'avviso deve passare a uno stato in attesa o meno.
Nel campo Durata, inserisci il numero di secondi per definire quando un avviso attivo passa dallo stato in attesa allo stato aperto. Nota: se imposti la durata su un valore di
0
, il sistema di osservabilità invia l'avviso immediatamente dopo che la condizione è soddisfatta.Nel campo Gravità, scegli il livello di gravità, ad esempio Errore o Avviso.
Inserisci un nome breve per identificare la risorsa correlata, ad esempio
AIS
oDHCP
.Inserisci un codice di avviso per identificare l'avviso.
Inserisci un URL runbook o informazioni per risolvere il problema.
Inserisci un messaggio o una descrizione dell'avviso.
(Facoltativo) Fai clic su Aggiungi etichetta per aggiungere etichette come coppie chiave-valore.
(Facoltativo) Fai clic su Aggiungi annotazione per aggiungere annotazioni come coppie chiave-valore.
Fai clic su Salva per creare la regola.
Fai clic su Crea per creare il gruppo di regole. Il gruppo di regole viene visualizzato nell'elenco Gruppo di regole di avviso.
API
Puoi creare regole di monitoraggio e logging del sistema in GDC utilizzando l'API Observability mediante il deployment di risorse personalizzate. Una risorsa personalizzata MonitoringRule
o LoggingRule
è costituita da una o più query ed espressioni per formare una condizione, la frequenza di valutazione e, facoltativamente, la durata durante la quale la condizione viene soddisfatta.
Segui questi passaggi per creare regole di avviso eseguendo il deployment di una risorsa personalizzata nello spazio dei nomi del progetto:
- Crea un file YAML per la risorsa personalizzata utilizzando i seguenti modelli per le regole di avviso di monitoraggio o logging:
- Per creare regole di monitoraggio del sistema e inviare avvisi in base ai dati delle metriche, utilizza la risorsa personalizzata
MonitoringRule
. - Per creare regole di logging del sistema e inviare avvisi in base ai dati di logging, utilizza la risorsa personalizzata
LoggingRule
.
- Per creare regole di monitoraggio del sistema e inviare avvisi in base ai dati delle metriche, utilizza la risorsa personalizzata
- Nel campo
namespace
della risorsa personalizzata, inserisci lo spazio dei nomi del progetto. - Nel campo
name
, inserisci un nome per la configurazione della regola di avviso. - (Facoltativo) Se stai configurando la risorsa personalizzata
LoggingRule
per le regole di logging, puoi scegliere l'origine log per gli avvisi nel camposource
. Ad esempio, inserisci un valore comeoperational
oaudit
. - Nel campo
interval
, inserisci il numero di secondi per la durata dell'intervallo di valutazione della regola. - (Facoltativo) Nel campo
limit
, inserisci il numero massimo di avvisi. Inserisci0
per avvisi illimitati. (Facoltativo) Se vuoi anche calcolare le metriche e configurare le regole di registrazione, inserisci le seguenti informazioni nel campo
recordRules
:- Nel campo
record
, inserisci il nome della registrazione. Questo valore definisce la serie temporale in cui scrivere la regola di registrazione e deve essere un nome di metrica valido. Nel campo
expr
, inserisci un'espressione per la regola di registrazione:- Per una regola di logging di sistema, inserisci un'espressione LogQL (Log Query Language).
- Per una regola di monitoraggio del sistema, inserisci un'espressione PromQL (Prometheus Query Language).
Questa espressione deve essere risolta in un valore numerico per essere registrata come nuova metrica.
(Facoltativo) Nel campo
labels
, definisci le etichette che vuoi aggiungere o sovrascrivere come coppie chiave-valore.
- Nel campo
Nel campo
alertRules
, inserisci le seguenti informazioni per configurare le regole di avviso:- Nel campo
alert
, inserisci il nome dell'avviso. Nel campo
expr
, inserisci un'espressione per la regola di avviso:- Per una regola di logging di sistema, inserisci un'espressione LogQL.
- Per una regola di monitoraggio del sistema, inserisci un'espressione PromQL.
Questa espressione deve restituire un'istruzione true o false, che determina se l'avviso deve passare a uno stato in attesa o meno.
(Facoltativo) Nel campo
for
, inserisci la durata in secondi durante la quale la condizione specificata deve essere soddisfatta per spostare l'avviso dallo stato In attesa allo stato Aperto. La durata predefinita se non specifichi un altro valore è0
secondi.Nel campo
labels
, definisci le etichette che vuoi aggiungere o sovrascrivere come coppie chiave-valore. Sono richieste le seguenti etichette:severity
: scegli il livello di gravità, ad esempioerror
,critical
,warning
oinfo
.code
: inserisci il codice dell'avviso per identificarlo.resource
: inserisci un nome breve per identificare la risorsa correlata, ad esempioAIS
oDHCP
.
(Facoltativo) Nel campo
annotations
, aggiungi annotazioni come coppie chiave-valore.
- Nel campo
Salva il file YAML della risorsa personalizzata.
Esegui il deployment della risorsa personalizzata nello spazio dei nomi del progetto del cluster di amministrazione per creare le regole di avviso.
Configura le regole di logging e monitoraggio del sistema dalle risorse personalizzate
Questa sezione contiene i modelli YAML che devi utilizzare per creare regole di avviso mediante il deployment di risorse personalizzate. Se crei avvisi dalla console GDC, puoi saltare questa sezione.
Risorsa personalizzata MonitoringRule
Per creare regole di monitoraggio del sistema, devi creare una risorsa personalizzata MonitoringRule
. Un MonitoringRule
è costituito da regole di registrazione e regole di avviso che descrivono le condizioni per l'invio di un avviso.
Il seguente file YAML mostra un modello della risorsa personalizzata 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>
Sostituisci PROJECT_NAMESPACE con lo spazio dei nomi del tuo progetto.
Risorsa personalizzata LoggingRule
Per creare regole di logging di sistema, devi creare una risorsa personalizzata LoggingRule
. Un LoggingRule
è costituito da regole di registrazione e regole di avviso che descrivono le condizioni per l'invio di un avviso.
# 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>
Sostituisci PROJECT_NAMESPACE con lo spazio dei nomi del tuo progetto.