Crie grupos com as regras de alerta para métricas ou registros do seu projeto no console do GDC. As regras de métricas enviam alertas com base em dados de métricas, e as regras de registros enviam alertas com base em dados de registros. Insira a expressão da linguagem de consulta que determina se o alerta precisa passar para um estado pendente. Além disso, é possível incluir valores opcionais, como rótulos e anotações.
Com os rótulos, é possível diferenciar as características de um alerta como um mapa de pares de chave-valor. Use rótulos 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 abreviado para identificar o recurso.
Por outro lado, use anotações para adicionar metadados não identificadores aos alertas. Por exemplo, você pode incluir valores para mensagens e expressões que aparecem nos campos da interface do usuário (UI) ou URLs de runbook para ajudar com ações resolutivas.
Como alternativa, é possível criar regras de alerta usando a API Observability para interagir diretamente com um recurso personalizado e atualizar as mudanças no namespace do projeto.
Antes de começar
Antes de continuar, verifique se você tem as seguintes permissões necessárias:
Criar regras de alerta com base em registros
Para receber as permissões necessárias para criar ou visualizar regras de alerta com base em registros, peça ao administrador do IAM do projeto para conceder a você um dos seguintes papéis no namespace do projeto:
- Criador de regras de geração de registros: cria recursos personalizados
LoggingRule
. Solicite o papel de criador de regras do Logging (loggingrule-creator
). - Editor de regras de geração de registros: edita ou modifica recursos personalizados
LoggingRule
. Solicite o papel de editor de regras de geração de registros (loggingrule-editor
). - Visualizador de regras de geração de registros: mostra recursos personalizados
LoggingRule
. Solicite o papel de leitor de regras do Logging (loggingrule-viewer
).
Criar regras de alerta com base em métricas
Para receber as permissões necessárias para criar ou visualizar regras de alerta com base em métricas, peça ao administrador do IAM do projeto para conceder a você um dos seguintes papéis no namespace do projeto:
- Editor de regras de monitoramento: edita ou modifica recursos personalizados
MonitoringRule
. Solicite o papel de editor de regras do Monitoring (monitoringrule-editor
). - Leitor de regras do Monitoring: visualiza recursos personalizados
MonitoringRule
. Solicite o papel Leitor de regras do Monitoring (monitoringrule-viewer
).
Para mais informações sobre atribuições de papéis, consulte Descrições de papéis predefinidos.
Criar regras
É possível criar regras de alerta usando o console do GDC, que é o método preferido, ou implantando um recurso personalizado usando a API Observability no namespace do projeto.
Console
Siga estas etapas para criar regras de alerta no console do GDC:
- No console do GDC, selecione um projeto.
- No menu de navegação, clique em Operações > Alertas.
- Clique na guia Política de alertas.
- Clique em Criar grupo de regras.
- Selecione se você quer criar um grupo para Métricas ou Registros. As regras de métricas enviam alertas com base nos dados de monitoramento do sistema, e as regras de geração de registros enviam alertas com base nos dados de geração de registros do sistema.
- No campo Nome do grupo de regras de alerta, insira um nome para o grupo.
- No campo Intervalo de avaliação da regra, insira o número de segundos de cada intervalo.
- No campo Limite, insira o número máximo de alertas. Insira
0
para alertas ilimitados. - Na seção Regras de alerta, clique em Criar regra de alerta.
- Insira um nome para a regra de alerta.
Insira uma expressão para a regra de alerta:
- Para uma regra de geração de registros do sistema, insira uma expressão LogQL (linguagem de consulta de registros).
- Para uma regra de monitoramento do sistema, insira uma expressão PromQL (linguagem de consulta do Prometheus).
Essa expressão precisa resultar em uma declaração verdadeira ou falsa, que determina se o alerta precisa passar para um estado pendente ou não.
No campo Duração, insira o número de segundos para definir quando um alerta ativo passa do estado pendente para o estado aberto. Observação: se você definir a duração como
0
, o sistema de observabilidade vai enviar o alerta imediatamente após a condição ser atendida.No campo Gravidade, escolha o nível de gravidade, como Erro ou Aviso.
Insira um nome curto para identificar o recurso relacionado, como
AIS
ouDHCP
.Insira um código para identificar o alerta.
Insira um URL ou informações de runbook para ajudar a resolver o problema.
Digite uma mensagem ou descrição do alerta.
Opcional: clique em Adicionar rótulo para incluir rótulos como pares de chave-valor.
Opcional: clique em Adicionar anotação para incluir anotações como pares de chave-valor.
Clique em Salvar para criar a regra.
Clique em Criar para criar o grupo de regras. O grupo de regras aparece na lista Grupo de regras de alerta.
API
É possível criar regras de monitoramento e geração de registros do sistema no GDC usando a API Observability ao implantar recursos personalizados. Um recurso personalizado MonitoringRule
ou LoggingRule
consiste em uma ou mais consultas e expressões para formar uma condição, a frequência de avaliação e, opcionalmente, a duração em que a condição é atendida.
Siga estas etapas para criar regras de alerta implantando um recurso personalizado no namespace do projeto:
- Crie um arquivo YAML para o recurso personalizado usando os seguintes modelos de regras de alerta de monitoramento ou geração de registros:
- Para criar regras de monitoramento do sistema e enviar alertas com base em dados de métricas, use o recurso personalizado
MonitoringRule
. - Para criar regras de registro do sistema e enviar alertas com base nos dados de registro, use o recurso personalizado
LoggingRule
.
- Para criar regras de monitoramento do sistema e enviar alertas com base em dados de métricas, use o recurso personalizado
- No campo
namespace
do recurso personalizado, insira o namespace do projeto. - No campo
name
, insira um nome para a configuração da regra de alerta. - Opcional: se você estiver configurando o recurso personalizado
LoggingRule
para regras de geração de registros, escolha a origem dos registros para alertas no camposource
. Por exemplo, insira um valor comooperational
ouaudit
. - No campo
interval
, insira o número de segundos para a duração do intervalo de avaliação da regra. - Opcional: no campo
limit
, insira o número máximo de alertas. Insira0
para alertas ilimitados. Opcional: se você também quiser calcular métricas e configurar regras de gravação, insira as seguintes informações no campo
recordRules
:- No campo
record
, insira o nome da gravação. Esse valor define a série temporal em que a regra de gravação será gravada e precisa ser um nome de métrica válido. No campo
expr
, insira uma expressão para a regra de gravação:- Para uma regra de geração de registros do sistema, insira uma expressão LogQL (linguagem de consulta de registros).
- Para uma regra de monitoramento do sistema, insira uma expressão PromQL (linguagem de consulta do Prometheus).
Essa expressão precisa ser resolvida como um valor numérico para ser registrada como uma nova métrica.
Opcional: no campo
labels
, defina os rótulos que você quer adicionar ou substituir como pares de chave-valor.
- No campo
No campo
alertRules
, insira as seguintes informações para configurar regras de alerta:- No campo
alert
, insira o nome do alerta. No campo
expr
, insira uma expressão para a regra de alerta:- Para uma regra de registro do sistema, insira uma expressão LogQL.
- Para uma regra de monitoramento do sistema, insira uma expressão PromQL.
Essa expressão precisa resultar em uma declaração verdadeira ou falsa, que determina se o alerta precisa passar para um estado pendente ou não.
Opcional: no campo
for
, insira a duração em segundos em que a condição especificada precisa ser atendida para mover o alerta do estado pendente para o estado aberto. A duração padrão, se você não especificar outro valor, é de0
segundos.No campo
labels
, defina os rótulos que você quer adicionar ou substituir como pares de chave-valor. Os seguintes rótulos são obrigatórios:severity
: escolha o nível de gravidade, comoerror
,critical
,warning
ouinfo
.code
: insira o código do alerta para identificá-lo.resource
: digite um nome curto para identificar o recurso relacionado, comoAIS
ouDHCP
.
Opcional: no campo
annotations
, adicione anotações como pares de chave-valor.
- No campo
Salve o arquivo YAML do recurso personalizado.
Implante o recurso personalizado no namespace do projeto do cluster de administrador para criar as regras de alerta.
Configurar regras de monitoramento e geração de registros do sistema com recursos personalizados
Esta seção contém os modelos YAML que você precisa usar para criar regras de alerta implantando recursos personalizados. Se você criar alertas no console do GDC, pule esta seção.
O recurso personalizado MonitoringRule
Para criar regras de monitoramento do sistema, crie um recurso personalizado MonitoringRule
. Um MonitoringRule
consiste em regras de gravação e de alerta que descrevem as condições para enviar um alerta.
O arquivo YAML a seguir mostra um modelo do recurso personalizado 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>
Substitua PROJECT_NAMESPACE pelo namespace do projeto.
O recurso personalizado LoggingRule
Para criar regras de geração de registros do sistema, crie um recurso personalizado LoggingRule
. Um LoggingRule
consiste em regras de gravação e 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 namespace do projeto.