Crie regras de alerta a partir do seu projeto

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:

  1. Na consola do GDC, selecione um projeto.
  2. No menu de navegação, clique em Operações > Alertas.
  3. Clique no separador Política de alertas.
  4. Clique em Criar grupo de regras.
  5. 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.
  6. No campo Nome do grupo de regras de alerta, introduza um nome para o grupo.
  7. No campo Intervalo de avaliação de regras, introduza o número de segundos para cada intervalo.
  8. No campo Limite, introduza o número máximo de alertas. Introduza 0 para alertas ilimitados.
  9. Na secção Regras de alerta, clique em Criar regra de alerta.
  10. Introduza um nome para a regra de alerta.
  11. 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.

  12. 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.

  13. No campo Gravidade, escolha o nível de gravidade, como Erro ou Aviso.

  14. Introduza um nome curto para identificar o recurso relacionado, como AIS ou DHCP.

  15. Introduza um código de alerta para identificar o alerta.

  16. Introduza um URL ou informações de um manual de procedimentos para ajudar a resolver o problema.

  17. Introduza uma mensagem ou uma descrição do alerta.

  18. Opcional: clique em Adicionar etiqueta para adicionar etiquetas como pares de chave-valor.

  19. Opcional: clique em Adicionar anotação para adicionar anotações como pares de chave-valor.

  20. Clique em Guardar para criar a regra.

  21. 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:

  1. Crie um ficheiro YAML para o recurso personalizado através dos seguintes modelos para regras de alerta de monitorização ou registo:
  2. No campo namespace do recurso personalizado, introduza o espaço de nomes do seu projeto.
  3. No campo name, introduza um nome para a configuração da regra de alerta.
  4. Opcional: se estiver a configurar o recurso personalizado LoggingRule para regras de registo, pode escolher a origem do registo para alertas no campo source. Por exemplo, introduza um valor como operational ou audit.
  5. No campo interval, introduza o número de segundos para a duração do intervalo de avaliação da regra.
  6. Opcional: no campo limit, introduza o número máximo de alertas. Introduza 0 para alertas ilimitados.
  7. 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.

  8. 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, é de 0 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, como error, critical, warning ou info.
      • code: introduza o código do alerta para identificar o alerta.
      • resource: introduza um nome abreviado para identificar o recurso relacionado, como AIS ou DHCP.
    • Opcional: no campo annotations, adicione anotações como pares de chave-valor.

  9. Guarde o ficheiro YAML do recurso personalizado.

  10. 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 MonitoringRulerecurso 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.