Alerta sobre sua taxa de gravação

É possível criar políticas de alertas nos objetivos de nível de serviço (SLOs, na sigla em inglês) para informar se você corre o risco de violar um SLO. Você seleciona o SLO que quer monitorar e, em seguida, configura uma condição que aciona um alerta quando a condição é violada. A condição normalmente é expressa pela seleção de um valor limite que constitui uma violação e um período em que a violação é permitida. Se o limite for excedido por um período superior ao permitido, a política de alertas será acionada.

Nesta página, mostramos como configurar uma política de alertas sobre a taxa de gravação do seu erro de orçamento. Ela não abrange políticas de alerta em detalhes, pois espera-se que já conheça os conceitos básicos de condições e canais de notificação. Para ver informações gerais sobre políticas de alertas e como criá-las, leia Como usar políticas de alertas.

Taxa de gravação do erro de orçamento

O erro de orçamento de um período de conformidade é (1 - meta de SLO) × (eventos qualificados no período de conformidade). Se sua meta de SLO for 95%, será aceitável que 5% dos eventos medidos pelo SLO falhem antes que a meta seja perdida. A taxa de gravação informa a velocidade com que você consome seu erro de orçamento. Uma taxa de gravação maior que 1 indica que, se a taxa de erro atualmente medida for mantida durante qualquer período de conformidade futuro, o serviço estará fora do SLO para esse período. Para ver mais informações, leia Erros de orçamento..

A métrica da taxa de gravação é recuperada pelo seletor de séries temporais select_slo_burn_rate. Uma política de alertas de taxa de gravação notifica você quando seu erro de orçamento é consumido mais rapidamente do que um limite definido, medido durante o período de conformidade do alerta. Há outros seletores de série temporal. Leia Recuperação de dados SLO para ver mais informações. É possível criar políticas de alertas que usem alguns desses outros seletores de série temporal, mas você precisa criá-las usando a API Cloud Monitoring.

Visão geral: como criar políticas de alertas em um SLO

Criar uma política de alertas para um SLO é muito semelhante à criação de uma política de alertas para qualquer outra métrica.

Nesta seção, mostraremos as etapas gerais. Nas seções a seguir, explicaremos a fundo como funcionam.

Para criar políticas de alertas para um SLO, siga estas etapas:

  1. Identifique o SLO em que você quer basear a política de alertas.

  2. Construa uma condição para a política de alertas que usa o SLO selecionado. A condição é onde você usa o seletor de série temporal para recuperar os dados do SLO. Por exemplo, se você usar o seletor de série temporal para taxa de gravação, os dados recuperados refletirão a taxa de gravação do erro de orçamento para o SLO escolhido.

    Essa condição também é onde se especifica o limite e a duração das violações do SLO antes de acionar alertas. Por exemplo, você quer que a taxa de gravação seja um pouco acima da taxa desejada por algum período antes de acionar um alerta. O valor para "some amount over" é o limite da condição, e o valor para "some period" é a duração da condição.

  3. Identifique ou crie um canal de notificação para usar na política de alertas.

  4. Apresente documentação que explique aos usuários o que acionou a política de alertas.

  5. Monte essas peças em uma invocação para criar uma política de alertas.

Para ver informações gerais sobre políticas de alertas e como criá-las, leia Como usar políticas de alertas.

Políticas de alerta e períodos de lookback

Ao recuperar os dados SLO com um seletor de série temporal, você especifica um identificador para o SLO e um período de lookback. O período de lookback determina o tempo de recuperação dos dados. Ele também é usado como período de conformidade para calcular o desempenho do SLO e o orçamento do erro.

Por motivos técnicos, atualmente não é possível basear alertas na taxa de consumo de erro de orçamento de um SLO usando um período de conformidade de mais de 24 horas. Em muitos casos, aproximar o período de conformidade de longo prazo (por exemplo, 28 ou 30 dias) a um período inferior a 24 horas é suficiente para detectar interrupções e impulsionar a resposta operacional de curto prazo.

Períodos de conformidade mais curtos fornecem detecção mais rápida de problemas, mas com a ressalva de que grandes alterações no tráfego e nas taxas de erro ao longo de um dia resultam em alertas excessivamente confidenciais durante períodos de pouco tráfego. Use um limite de taxa de gravação significativamente maior que 1 para reduzir a confidencialidade do alerta durante esses períodos.

Tipos de alertas de erro de orçamento

Ao configurar políticas de alertas para monitorar seu erro de orçamento, é uma boa ideia configurar duas políticas de alertas relacionadas:

  • Alerta de gravação rápida, que avisa sobre uma grande mudança repentina no consumo que, se não for corrigida, esgota seu orçamento de erro muito em breve. "Com essa taxa, o orçamento de erro total do mês é registrado em dois dias."

    Para uma condição como essa, uma duração de lookback mais curta é recomendada. Você quer saber se uma condição potencialmente desastrosa surgiu e continuou, mesmo que brevemente. Se for realmente desastroso, você não vai querer esperar muito para notar.

    O limite para a taxa de consumo que você alerta aqui é muito mais alto do que o ideal de linha de base para o período de tempo de lookback.

  • Alerta de gravação lenta, que avisa você sobre uma taxa de consumo que, se não for alterada, esgota seu orçamento de erro antes do final do período de conformidade. Esse tipo de condição é menos urgente do que uma condição de gravação rápida. "Estamos um pouco acima de onde gostaríamos de estar neste momento do mês, mas ainda não estamos em apuros."

    Para uma condição de gravação lenta, recomenda-se uma duração mais longa de lookback para suavizar variações no consumo a curto prazo.

    O limite para a taxa de consumo que você alerta aqui é maior do que o ideal como valor de referência para o período de lookback, mas não significativamente diferente. Uma política com base em um período de lookback mais curto com limite alto pode gerar muitos alertas se o consumo de longo prazo se nivelar. Mas se o consumo permanecer alto demais por um período mais longo, ele consumirá todo o erro de orçamento.

Como criar um alerta SLO: API

As políticas de alertas para a taxa de gravação do seu erro de orçamento são baseadas no seletor de séries temporais select_slo_burn_rate, descrito em Como recuperar dados do SLO. Existem outros seletores de séries temporais que podem ser usados como base para políticas de alertas.

As políticas de alertas são criadas com o método alertPolicies.create. O uso geral desse método está documentado em Como gerenciar políticas de alertas.

As políticas de alertas para SLOs são parecidas com outras políticas de alertas de várias maneiras, pois são políticas de alertas com uma condição de limite de métricas. Elas têm um diferencial em relação a outras políticas de alertas: o filter na especificação MetricThreshold da condição usa um seletor de séries temporais em vez de um par dos tipos de recurso métrico e monitorado.

Condições para políticas de alertas baseadas em SLO

As políticas de alertas precisam ter pelo menos uma condição. Para uma condição baseada em SLO, use uma condição de tipo [MetricThreshold].

Uma condição de limite métrico pode conter dois pares de configurações de séries temporais: filter e aggregations e, para proporções de criação, denominatorFilter e denominatorAggregations. Como os dados do SLO não são recuperados usando os filtros de monitoramento padrão, o único campo usado em uma condição para um SLO é o campo filter.

Uma condição para um SLO define os campos comparison, thresholdValue, duration e trigger.

Este exemplo cria uma condição que é violada quando a taxa de gravação excede 2 vezes a taxa normal. A estrutura terá esta aparência:

  "conditions": [
    {
      "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
      "conditionThreshold": {
        "filter": [TO_BE_DETERMINED],
        "comparison":"COMPARISON_GT",
        "thresholdValue": 2,
        "duration": {
          "seconds":"0",
        },
      },
    }
  ],

Para definir o campo filter, é necessário o nome do recurso de um SLO específico. Este valor é da forma projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}. Para ver informações sobre como encontrar o ID do SLO, leia Listagem de SLOs.

Para criar um alerta sobre a taxa de gravação, use o seletor de séries temporais select_slo_burn_rate. Esse seletor aceita dois valores, o SLO de destino e o período de lookback. Para ver mais informações, leia select_slo_burn_rate.

Por exemplo, o filtro a seguir obtém a taxa de gravação do SLO de destino com um período de lookback de 1 hora:

"filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")"

O restante da política de alerta

Para concluir a política de alertas, especifique valores para os campos restantes:

  • displayName: uma descrição da política de alertas.
  • combiner: descreve a lógica para combinar condições. Esta política tem apenas uma condição, portanto ou AND ou OR funciona.
  • notificationChannels: uma matriz de canais de notificação atuais a serem usados quando a política de alertas for acionada. Para ver informações sobre como encontrar e criar canais de notificação, leia Canais de notificação.
  • documentation: informações enviadas quando a condição é violada para ajudar os destinatários a diagnosticar o problema. Para ver detalhes, consulte:Documentation.

Como criar a política de alertas

O exemplo a seguir usa a API para criar uma política de alertas de taxas de gravação. Para ver informações sobre como listar, modificar e excluir políticas de alertas, consulte Como gerenciar políticas de alertas por API.

Protocolo

Para criar a política de alertas usando curl, envie uma mensagem POST para o endpoint https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies e digite a política de alertas no corpo da solicitação. O JSON no corpo da solicitação contém uma política de alertas que usa uma condição de limite com base no seletor de série temporal select_slo_burn_rate com um período de lookback de uma hora.

  1. Crie uma variável para armazenar o corpo da solicitação:

    CREATE_ALERT_POST_BODY=$(cat <<EOF
    {
      "displayName":"SLO burn-rate alert for ${SLO_ID} with a threshold of 2",
      "combiner":"AND",
      "conditions": [
        {
          "displayName":"SLO burn rate alert for ${SLO_ID} exceeds 2",
          "conditionThreshold": {
            "filter":"select_slo_burn_rate(\"projects/${PROJECT}/services/${SERVICE_ID}/serviceLevelObjectives/${SLO_ID}\", \"60m\")",
            "comparison":"COMPARISON_GT",
            "thresholdValue": 2,
            "duration": {
              "seconds":"0",
            },
          },
        }
      ],
      "notificationChannels": ["${NOTIFICATION_CHANNEL}", ],
      "documentation": {
         "content": "SLO burn for the past 60m exceeded twice the acceptable budget burn rate.",
         "mime_type": "text/markdown",
      },
    }
    EOF
    )
    
  2. Publique a solicitação no endpoint:

    curl  --http1.1 --header "Authorization: Bearer ${ACCESS_TOKEN}" --header "Content-Type: application/json" -X POST -d "${CREATE_ALERT_POST_BODY}" https://monitoring.googleapis.com/v3/projects/${PROJECT_ID}/alertPolicies
    

Como criar políticas de alertas baseadas em SLO com o console

Para ver informações sobre políticas de alertas baseadas em SLO no Anthos Service Mesh, leia a Documentação do Anthos Service Mesh: como criar uma política de alertas para um SLO.