Nesta página, descrevemos o processo de criação de regras de alerta com base em registros e métricas de ambientes com isolamento físico do Google Distributed Cloud (GDC) para facilitar o monitoramento proativo e acelerar a resposta a incidentes.
O GDC permite definir regras de alerta com base nas métricas ou nos registros do projeto. Essas regras acionam alertas automaticamente quando condições específicas são atendidas. Estes são os tipos de regras de alerta que você pode definir:
- Regras baseadas em métricas: acionam alertas com base em dados numéricos coletados dos
seus aplicativos ou da sua infraestrutura. Por exemplo, é possível criar uma regra para
acionar um alerta se o uso da CPU exceder 80%. Crie regras com base 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 registros. Esses
alertas permitem identificar e responder a eventos ou padrões específicos nos
registros, como mensagens de erro ou atividades incomuns. Crie regras com base em registros usando
o console do GDC ou uma definição de recurso personalizado
LoggingRule.
As regras baseadas em métricas e em registros usam 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 passará 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 do alerta
- Nome do recurso
Anotações: forneça mais informações não relacionadas a pessoa identificável 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 com base em métricas ou em registros, é preciso ter as permissões necessárias.
### Solicitar papéis do IAM da organização para regras baseadas em métricas
Entre em contato com o admin. da organização do IAM para solicitar os seguintes papéis:
- Criador de PA de MonitoringRule (
monitoringrule-pa-creator): cria recursos personalizadosMonitoringRule. - Editor de PA MonitoringRule (
monitoringrule-pa-editor): editar ou modificar recursos personalizadosMonitoringRule. Leitor de PA do MonitoringRule (
monitoringrule-pa-viewer): visualizar recursos personalizadosMonitoringRule.Solicitar papéis do projeto do IAM para regras baseadas em métricas
Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis:
- Editor de MonitoringRule (
monitoringrule-editor): editar ou modificar recursos personalizadosMonitoringRuleno namespace do projeto. - Leitor de MonitoringRule (
monitoringrule-viewer): confira os recursos personalizadosMonitoringRuleno namespace do projeto.
Solicitar papéis da organização do IAM para regras baseadas em registros
Entre em contato com o admin. da organização do IAM para solicitar os seguintes papéis:
- Criador de PA LoggingRule (
loggingrule-pa-creator): cria recursos personalizadosLoggingRule. - Editor de PA LoggingRule (
loggingrule-pa-editor): edita ou modifica recursos personalizadosLoggingRule. - Leitor de PA do LoggingRule (
loggingrule-pa-viewer): confira os recursos personalizadosLoggingRule.
Solicitar papéis do IAM do projeto para regras baseadas em registros
Entre em contato com o administrador do projeto do IAM para solicitar os seguintes papéis:
- Editor do LoggingRule (
loggingrule-editor): editar ou modificar recursos personalizadosLoggingRuleno namespace do projeto. - Leitor de LoggingRule (
loggingrule-viewer): visualizar 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 API Logging 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 com base em métricas.
- Selecione Registros para regras de alerta com base 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 da regra, 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 mude de pendente para aberto.
O nível de gravidade, como Erro ou Aviso.
Um nome curto para identificar o recurso relacionado.
Um código 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 usando as APIs de monitoramento ou API Logging:
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 em 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 de registro da regra de alerta. As opções válidas são operationaleaudit. Aplicável apenas aos recursos doLoggingRule.intervalA duração do intervalo de avaliação da regra 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 passa para um estado pendente. alertRules.forOpcional. A duração em segundos antes que um alerta mude de pendente para aberto. O padrão é 0segundos (acionamento imediato).alertRules.labelsPares de chave-valor para categorizar e identificar o alerta. Ele requer 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 do recurso ao servidor de API Management no mesmo namespace das regras de alerta baseadas em métricas ou em registros:
kubectl --kubeconfig KUBECONFIG_PATH apply -f ALERT_RULE_NAME.yamlSubstitua:
KUBECONFIG_PATH: o caminho para o arquivo kubeconfig do servidor de 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 com base em métricas e registros aplicando recursos personalizados. Se você criar alertas no console do GDC, pule 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ção deMonitoringRule.
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.