Esta página descreve o processo de criação de regras de alerta com base em registros e métricas de ambientes isolados do Google Distributed Cloud (GDC) para facilitar o monitoramento proativo e a resposta a incidentes.
O GDC permite definir regras de alerta com base nas métricas ou registros do projeto. Essas regras acionam alertas automaticamente quando condições específicas são atendidas. A seguir, estão os tipos de regras de alerta que podem ser definidos:
- Regras baseadas em métricas: acionam alertas com base em dados numéricos coletados de
aplicativos ou infraestrutura. Por exemplo, é possível criar uma regra para acionar um alerta se o uso da CPU exceder 80%. Crie regras baseadas em métricas usando o console do GDC ou uma definição de recurso personalizado
MonitoringRule. - Regras baseadas em registros: acionam alertas com base na análise de dados de registro. Esses alertas permitem identificar e responder a eventos ou padrões específicos nos registros, como mensagens de erro ou atividades incomuns. Crie regras baseadas em registros usando o console do GDC ou uma definição de recurso personalizado
LoggingRule.
As regras baseadas em métricas e registros dependem de uma expressão de linguagem de consulta para definir a condição que aciona um alerta. Essa expressão filtra e analisa os dados recebidos, avaliando se os critérios definidos são atendidos.
Na primeira vez que uma condição é atendida, o alerta passa para o estado pendente. Se as condições forem verdadeiras durante o período de duração definido, o alerta será movido para o estado aberto. Nesse momento, o sistema envia o alerta.
Para fornecer mais contexto e facilitar o gerenciamento eficiente de alertas, é possível adicionar rótulos e anotações às regras de alerta:
Rótulos: pares de chave-valor que categorizam e identificam alertas. Use rótulos para informações como as seguintes:
- Nível de gravidade (erro, crítico, aviso)
- Código de alerta
- Nome do recurso
Anotações: fornecem informações adicionais não identificadoras para enriquecer o alerta. As anotações podem incluir as seguintes informações:
- Mensagens de erro detalhadas
- Expressões relevantes
- Links para runbooks ou guias de solução de problemas
Antes de começar
Para gerenciar regras baseadas em métricas ou registros, você precisa ter as permissões necessárias.
### Solicitar papéis da organização do IAM para regras baseadas em métricas
Entre em contato com o administrador do IAM da organização para solicitar os seguintes papéis:
- Criador de PA de MonitoringRule (
monitoringrule-pa-creator): cria recursos personalizadosMonitoringRule. - Editor de PA de MonitoringRule (
monitoringrule-pa-editor): edita ou modifica recursos personalizadosMonitoringRule. Leitor de PA de MonitoringRule (
monitoringrule-pa-viewer): visualiza recursos personalizadosMonitoringRule.Solicitar papéis do projeto do IAM para regras baseadas em métricas
Entre em contato com o administrador do IAM do projeto para solicitar os seguintes papéis:
- Editor de MonitoringRule (
monitoringrule-editor): edita ou modifica recursos personalizadosMonitoringRuleno namespace do projeto. - Leitor de MonitoringRule (
monitoringrule-viewer): visualiza recursos personalizadosMonitoringRuleno namespace do projeto.
Solicitar papéis da organização do IAM para regras baseadas em registros
Entre em contato com o administrador do IAM da organização para solicitar os seguintes papéis:
- Criador de PA de LoggingRule (
loggingrule-pa-creator): cria recursos personalizadosLoggingRule. - Editor de PA de LoggingRule (
loggingrule-pa-editor): edita ou modifica recursos personalizadosLoggingRule. - Leitor de PA de LoggingRule (
loggingrule-pa-viewer): visualiza recursos personalizadosLoggingRule.
Solicitar papéis do projeto do IAM para regras baseadas em registros
Entre em contato com o administrador do IAM do projeto para solicitar os seguintes papéis:
- Editor de LoggingRule (
loggingrule-editor): edita ou modifica recursos personalizadosLoggingRuleno namespace do projeto. - Leitor de LoggingRule (
loggingrule-viewer): visualiza recursos personalizadosLoggingRuleno namespace do projeto.
Definir regras de alerta
É possível definir regras de alerta no namespace do projeto usando o console do GDC (preferencial) ou as APIs de monitoramento e registro para aplicar recursos personalizados.
Selecione um dos métodos a seguir para definir regras de alerta com base em métricas ou registros:
Console
Crie regras de alerta em grupos de regras no console do GDC:
- No console do GDC, selecione um projeto.
- No menu de navegação, selecione Operações > Alertas.
- Clique na guia Política de alertas.
- Clique em Criar grupo de regras.
Escolha o tipo de regra de alerta:
- Selecione Métricas para regras de alerta baseadas em métricas.
- Selecione Registros para regras de alerta baseadas em registros.
Configure o grupo de regras de alerta:
- No campo Nome do grupo de regras de alerta, insira um nome para o grupo de regras.
- No campo Intervalo de avaliação de regras, insira o número de segundos para cada intervalo.
No campo Limite, insira o número máximo de alertas.
Na seção Regras de alerta, clique em Adicionar regra.
Na janela Criar regra de alerta, insira os seguintes detalhes:
- Um nome para a regra de alerta.
Uma expressão para a regra de alerta (use LogQL para regras baseadas em registros e PromQL para regras baseadas em métricas).
A duração em segundos antes que um alerta faça a transição de pendente para aberto.
O nível de gravidade, como Erro ou Aviso.
Um nome abreviado para identificar o recurso relacionado.
Um código de alerta para identificar o alerta.
Um URL de runbook ou informações de solução de problemas.
Uma mensagem ou descrição de alerta.
Opcional: adicione Rótulos e 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. É possível agrupar mais regras de alerta nesse grupo.
API
Crie regras de alerta nas APIs de monitoramento ou registro:
Defina um recurso personalizado
MonitoringRule(regras baseadas em métricas) ouLoggingRule(regras baseadas em registros) em um arquivo YAML.A especificação completa do recurso mostra um exemplo de regras baseadas em métricas e registros.
Substitua os seguintes valores no arquivo YAML de acordo com suas necessidades:
Campo Descrição namespaceO namespace do projeto. nameO nome da configuração da regra de alerta. sourceA origem do registro para a regra de alerta. As opções válidas são operationaleaudit. Aplicável apenas a recursosLoggingRule.intervalA duração do intervalo de avaliação de regras em segundos. limitOpcional. O número máximo de alertas. Defina como 0para alertas ilimitados.alertRulesAs definições para criar regras de alerta. alertRules.alertO nome do alerta. alertRules.exprUma expressão LogQL para regras baseadas em registros ou uma expressão PromQL para regras baseadas em métricas. A expressão precisa ser avaliada como um valor verdadeiro ou falso para determinar se o alerta faz a transição para um estado pendente. alertRules.forOpcional. A duração em segundos antes que um alerta faça a transição de pendente para aberto. O padrão é 0segundos (acionamento imediato).alertRules.labelsPares de chave-valor para categorizar e identificar o alerta. Ele exige os seguintes rótulos: severity,codeeresource.alertRules.annotationsOpcional. Metadados não identificadores para o alerta como pares de chave-valor. Salve o arquivo YAML.
Aplique a configuração de recursos ao servidor da API Management no mesmo namespace das regras de alerta baseadas em métricas ou registros:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yamlSubstitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor da API Management.ALERT_RULE_NAME: o nome do arquivo de definiçãoMonitoringRuleouLoggingRule.
Especificação completa do recurso
Esta seção contém os modelos YAML que podem ser usados para criar regras de alerta baseadas em métricas e registros aplicando recursos personalizados. Se você criar alertas no console do GDC, poderá pular esta seção.
Defina regras de alerta nos seguintes recursos personalizados:
MonitoringRule: regras baseadas em métricas.LoggingRule: regras baseadas em registros.
MonitoringRule
O arquivo YAML a seguir mostra um modelo para o recurso personalizado MonitoringRule. Para mais informações, consulte a
documentação de referência da API.
# Configures either an alert or a target record for precomputation.
apiVersion: monitoring.gdc.goog/v1
kind: MonitoringRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: MONITORING_RULE_NAME
spec:
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure metric-based alert rules.
alertRules:
# Define an alert name.
- alert: my-metric-based-alert
# Define the PromQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# 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
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Substitua:
PROJECT_NAMESPACE: o namespace do projeto.MONITORING_RULE_NAME: o nome do arquivo de definiçãoMonitoringRule.
LoggingRule
O arquivo YAML a seguir mostra um modelo para o recurso personalizado LoggingRule. Para mais informações, consulte a
documentação de referência da API.
# Configures either an alert or a target record for precomputation.
apiVersion: logging.gdc.goog/v1
kind: LoggingRule
metadata:
# Choose a namespace that matches the project namespace.
# The alert or record is produced in the same namespace.
namespace: PROJECT_NAMESPACE
name: LOGGING_RULE_NAME
spec:
# Choose the log source to base alerts on (operational or audit logs).
# Optional.
# Valid options: 'operational' and 'audit'
# Default value: 'operational'
source: operational
# Rule evaluation interval.
interval: 60s
# Configure the limit for the number of alerts.
# A value of '0' means no limit.
# Optional.
# Default value: '0'
limit: 0
# Configure log-based alert rules.
alertRules:
# Define an alert name.
- alert: my-log-based-alert
# Define the LogQL expression to evaluate for this rule.
expr: rate({service_name="bob-service"} [1m])
# The duration in seconds before an alert transitions from pending to open.
# Optional.
# Default value: '0s'
for: 0s
# Define labels to add or overwrite.
# 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: warning
code: 202
resource: AIS
another-label: another-value
# Define annotations to add.
# Map of key-value pairs.
# Optional.
# Recommended annotations:
# message: value of the Message field in the user interface.
# expression: value of the Rule field in the user interface.
# runbookurl: URL of the Actions to take field in the user interface.
annotations:
message: my-alert-message
Substitua:
PROJECT_NAMESPACE: o namespace do projeto.LOGGING_RULE_NAME: o nome do arquivo de definiçãoLoggingRule.