Crie grupos que contenham as regras de alerta para métricas ou registos do seu projeto na consola do GDC. As regras de métricas enviam alertas com base nos dados de métricas e as regras de registo enviam alertas com base nos dados de registo. Tem de introduzir a expressão de linguagem de consulta que determina se o alerta tem de passar para um estado pendente. Além disso, pode incluir valores opcionais, como etiquetas e anotações.
As etiquetas permitem-lhe diferenciar as caraterísticas de um alerta como um mapa de pares de chave-valor. Use etiquetas para adicionar ou substituir informações, como o nível de gravidade (erro, crítico, aviso ou informação), o código do alerta e um nome curto para identificar o recurso.
Por outro lado, use anotações para adicionar metadados não identificadores aos alertas. Por exemplo, pode incluir valores para mensagens e expressões que são apresentadas nos campos da interface do utilizador (IU) ou nos URLs do manual de operações para ajudar com as ações resolutivas.
Em alternativa, pode criar regras de alerta através da API Observability para interagir diretamente com um recurso personalizado e atualizar as alterações no espaço de nomes do seu projeto.
Antes de começar
Antes de continuar, certifique-se de que tem as seguintes autorizações necessárias:
Crie regras de alerta com base nos registos
Para receber as autorizações necessárias para criar ou ver regras de alerta com base em registos, peça ao administrador de IAM do projeto que lhe conceda uma das seguintes funções no espaço de nomes do projeto:
- Logging Rule Creator: cria
LoggingRule
recursos personalizados. Peça a função de criador de regras de registo (loggingrule-creator
). - Editor de regras de registo: edita ou modifica
LoggingRule
recursos personalizados. Peça a função Editor de regras de registo (loggingrule-editor
). - Logging Rule Viewer: vê recursos personalizados do
LoggingRule
. Peça a função de visitante da regra de registo (loggingrule-viewer
).
Crie regras de alerta com base em métricas
Para receber as autorizações necessárias para criar ou ver regras de alerta com base em métricas, peça ao administrador de IAM do projeto que lhe conceda uma das seguintes funções no espaço de nomes do projeto:
- Editor de regras de monitorização: edita ou modifica
MonitoringRule
recursos personalizados. Peça a função de editor de regras de monitorização (monitoringrule-editor
). - Visualizador de regras de monitorização: vê
MonitoringRule
recursos personalizados. Peça a função de visitante da regra de monitorização (monitoringrule-viewer
).
Para mais informações sobre atribuições de funções, consulte o artigo Descrições de funções predefinidas.
Crie regras
Pode criar regras de alerta através da consola GDC, que é o método preferencial, ou implementando um recurso personalizado através da API Observability no espaço de nomes do seu projeto.
Consola
Siga os passos seguintes para criar regras de alerta a partir da consola do GDC:
- Na consola do GDC, selecione um projeto.
- No menu de navegação, clique em Operações > Alertas.
- Clique no separador Política de alertas.
- Clique em Criar grupo de regras.
- Selecione se quer criar um grupo para Métricas ou Registos. As regras de métricas enviam alertas com base nos dados de monitorização do sistema e as regras de registo enviam alertas com base nos dados de registo do sistema.
- No campo Nome do grupo de regras de alerta, introduza um nome para o grupo.
- No campo Intervalo de avaliação de regras, introduza o número de segundos para cada intervalo.
- No campo Limite, introduza o número máximo de alertas. Introduza
0
para alertas ilimitados. - Na secção Regras de alerta, clique em Criar regra de alerta.
- Introduza um nome para a regra de alerta.
Introduza uma expressão para a regra de alerta:
- Para uma regra de registo do sistema, introduza uma expressão LogQL (idioma de consulta de registos).
- Para uma regra de monitorização do sistema, introduza uma expressão PromQL (Prometheus Query Language).
Esta expressão tem de ser avaliada como uma declaração verdadeira ou falsa, que determina se o alerta tem de passar para um estado pendente ou não.
No campo Duração, introduza o número de segundos para definir quando um alerta ativo passa do estado pendente para o estado aberto. Nota: se definir a duração para um valor de
0
, o sistema de observabilidade envia o alerta imediatamente após a condição ser cumprida.No campo Gravidade, escolha o nível de gravidade, como Erro ou Aviso.
Introduza um nome curto para identificar o recurso relacionado, como
AIS
ouDHCP
.Introduza um código de alerta para identificar o alerta.
Introduza um URL ou informações de um manual de procedimentos para ajudar a resolver o problema.
Introduza uma mensagem ou uma descrição do alerta.
Opcional: clique em Adicionar etiqueta para adicionar etiquetas como pares de chave-valor.
Opcional: clique em Adicionar anotação para adicionar anotações como pares de chave-valor.
Clique em Guardar para criar a regra.
Clique em Criar para criar o grupo de regras. O grupo de regras é apresentado na lista Grupo de regras de alertas.
API
Pode criar regras de registo e monitorização do sistema no GDC através da API Observability implementando recursos personalizados. Um recurso personalizado MonitoringRule
ou LoggingRule
consiste numa ou mais consultas e expressões para formar uma condição, a frequência de avaliação e, opcionalmente, a duração durante a qual a condição é cumprida.
Siga os passos abaixo para criar regras de alerta implementando um recurso personalizado no espaço de nomes do seu projeto:
- Crie um ficheiro YAML para o recurso personalizado através dos seguintes modelos para regras de alerta de monitorização ou registo:
- Para criar regras de monitorização do sistema e enviar alertas com base em dados de métricas, use o recurso personalizado
MonitoringRule
. - Para criar regras de registo do sistema e enviar alertas com base nos dados de registo, use o recurso personalizado
LoggingRule
.
- Para criar regras de monitorização do sistema e enviar alertas com base em dados de métricas, use o recurso personalizado
- No campo
namespace
do recurso personalizado, introduza o espaço de nomes do seu projeto. - No campo
name
, introduza um nome para a configuração da regra de alerta. - Opcional: se estiver a configurar o recurso personalizado
LoggingRule
para regras de registo, pode escolher a origem do registo para alertas no camposource
. Por exemplo, introduza um valor comooperational
ouaudit
. - No campo
interval
, introduza o número de segundos para a duração do intervalo de avaliação da regra. - Opcional: no campo
limit
, introduza o número máximo de alertas. Introduza0
para alertas ilimitados. Opcional: se também quiser calcular métricas e configurar regras de gravação, introduza as seguintes informações no campo
recordRules
:- No campo
record
, introduza o nome da gravação. Este valor define a série temporal na qual escrever a regra de gravação e tem de ser um nome de métrica válido. No campo
expr
, introduza uma expressão para a regra de gravação:- Para uma regra de registo do sistema, introduza uma expressão LogQL (idioma de consulta de registos).
- Para uma regra de monitorização do sistema, introduza uma expressão PromQL (Prometheus Query Language).
Esta expressão tem de ser resolvida como um valor numérico para ser registada como uma nova métrica.
Opcional: no campo
labels
, defina as etiquetas que quer adicionar ou substituir como pares de chave-valor.
- No campo
No campo
alertRules
, introduza as seguintes informações para configurar regras de alerta:- No campo
alert
, introduza o nome do alerta. No campo
expr
, introduza uma expressão para a regra de alerta:- Para uma regra de registo do sistema, introduza uma expressão LogQL.
- Para uma regra de monitorização do sistema, introduza uma expressão PromQL.
Esta expressão tem de ser avaliada como uma declaração verdadeira ou falsa, que determina se o alerta tem de passar para um estado pendente ou não.
Opcional: no campo
for
, introduza a duração em segundos durante a qual a condição especificada tem de ser cumprida para mover o alerta do estado pendente para o estado aberto. A duração predefinida, se não especificar outro valor, é de0
segundos.No campo
labels
, defina as etiquetas que quer adicionar ou substituir como pares de chave-valor. As seguintes etiquetas são obrigatórias:severity
: escolha o nível de gravidade, comoerror
,critical
,warning
ouinfo
.code
: introduza o código do alerta para identificar o alerta.resource
: introduza um nome abreviado para identificar o recurso relacionado, comoAIS
ouDHCP
.
Opcional: no campo
annotations
, adicione anotações como pares de chave-valor.
- No campo
Guarde o ficheiro YAML do recurso personalizado.
Implemente o recurso personalizado no espaço de nomes do projeto do cluster de administrador para criar as regras de alerta.
Configure regras de registo e monitorização do sistema a partir de recursos personalizados
Esta secção contém os modelos YAML que tem de usar para criar regras de alerta implementando recursos personalizados. Se criar alertas a partir da consola do GDC, pode ignorar esta secção.
O MonitoringRule
recurso personalizado
Para criar regras de monitorização do sistema, tem de criar um MonitoringRule
recurso personalizado. Um MonitoringRule
consiste em regras de registo e regras de alerta que descrevem as condições para enviar um alerta.
O ficheiro YAML seguinte mostra um modelo do MonitoringRule
recurso personalizado:
# 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>
Substitua PROJECT_NAMESPACE pelo espaço de nomes do seu projeto.
O LoggingRule
recurso personalizado
Para criar regras de registo do sistema, tem de criar um LoggingRule
recurso personalizado. Um LoggingRule
consiste em regras de registo e regras de alerta que descrevem as condições para enviar um alerta.
# 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>
Substitua PROJECT_NAMESPACE pelo espaço de nomes do seu projeto.