Criar políticas de alertas previstos de valor de métrica

Neste documento, descrevemos como usar o console do Google Cloud para criar uma política de alertas que envia notificações e gera um alerta quando a política prevê que o limite será violado dentro da próxima janela de previsão. Uma previsão prevê se uma série temporal violará ou não um limite dentro de uma janela de previsão, que é um período no futuro. A janela de previsão pode variar de 1 hora (3.600 segundos) a 2,5 dias (216.000 segundos).

Este conteúdo não se aplica a políticas de alertas baseadas em registros. Para informações sobre políticas de alertas com base em registros, que informam quando uma mensagem específica aparece nos registros, consulte Como monitorar os registros.

Este documento não descreve o seguinte:

Sobre as condições de previsão

É possível usar a previsão ao monitorar a maioria das métricas. No entanto, quando você monitora um recurso restrito, como cota, espaço em disco ou uso de memória, uma condição de previsão pode notificá-lo antes que o limite seja violado. Esse recurso oferece mais tempo para responder sobre como esse recurso restrito está sendo consumido antes que o limite seja violado.

Para cada série temporal monitorada por uma condição de previsão, a condição instancia um algoritmo de decisão. Depois do treinamento, o algoritmo gera uma previsão sempre que a condição é avaliada. Cada previsão é uma previsão de que a série temporal vai violar ou não violar o limite dentro da janela de previsão. Se uma série temporal monitorada tiver uma periodicidade regular, o algoritmo de decisão dela incorporará o comportamento periódico nas previsões.

Uma condição de previsão pode ser acionada quando uma ou ambas as condições a seguir ocorrerem:

  • Todos os valores de uma série temporal durante uma janela de duração específica violam o limite.
  • Todas as previsões de uma série temporal específica feitas em uma janela de duração preveem que a série temporal vai violar o limite dentro da janela de previsão.

O tempo inicial de treinamento de um algoritmo de decisão é o dobro da janela de previsão. Por exemplo, se a janela de previsão for de uma hora, serão necessárias duas horas de treinamento. O algoritmo de decisão de cada série temporal é treinado de maneira independente. Enquanto um algoritmo de decisão está sendo treinado, a série temporal dele só pode acionar a condição quando os valores da série temporal violarem o limite da janela de duração especificada.

Após a conclusão do treinamento inicial, cada algoritmo de decisão é continuamente treinado usando dados que abrangem até seis vezes a duração da janela de previsão. Por exemplo, quando a janela de previsão é de uma hora, as seis horas mais recentes de dados são usadas durante o treinamento contínuo.

Quando você configura uma condição de previsão e, em seguida, os dados param de chegar por mais de 10 minutos, a previsão é desativada e a condição opera como uma condição de limite de métrica.

O modo como os incidentes são criados e gerenciados para alertas de previsão é o mesmo que para as condições de limite de métrica e ausência de métrica. Os incidentes são encerrados automaticamente quando a previsão prevê que a série temporal não viola o limite dentro da janela de previsão.

Antes de começar

  1. Se quiser ter as permissões necessárias para criar e modificar políticas de alertas usando o console do Google Cloud, peça ao administrador para conceder a você o papel de Editor do Monitoring (roles/monitoring.editor) do IAM no projeto. Para mais informações sobre como conceder papéis, consulte Gerenciar acesso.

    Também é possível conseguir as permissões necessárias por meio de papéis personalizados ou de outros papéis predefinidos.

    Para mais informações sobre os papéis do Cloud Monitoring, consulte Controlar o acesso com o Identity and Access Management.

  2. Conheça os conceitos gerais de políticas de alertas. Para informações sobre esses tópicos, consulte Visão geral de alertas.

  3. Configure os canais de notificação que você quer usar para receber alertas. Para fins de redundância, recomendamos que você crie vários tipos de canais de notificação. Para saber mais, consulte Criar e gerenciar canais de notificação.

Criar política de alertas

Para criar uma política de alertas que gere um alerta com base em uma previsão, faça o seguinte:

  1. No painel de navegação do console do Google Cloud, selecione Monitoramento e  Alertas:

    Acessar Alertas

  2. Selecione Criar política.
  3. Selecione a série temporal que será monitorada:

    1. Clique em Selecionar uma métrica, navegue pelos menus para selecionar um tipo de recurso e de métrica e clique em Aplicar.

      O menu Selecionar uma métrica contém recursos que ajudam você a encontrar os tipos de métricas disponíveis:

      • Para encontrar um tipo de métrica específico, use a barra de filtros . Por exemplo, se você inserir util, o menu será restrito para mostrar entradas que incluem util. As entradas são mostradas quando passam em um teste "contains" que não diferencia maiúsculas de minúsculas.
      • Para mostrar todos os tipos de métrica, mesmo aqueles sem dados, clique em Ativa. Por padrão, os menus mostram apenas os tipos de métricas com dados. Para mais informações, consulte Métrica não listada no menu.

      É possível monitorar qualquer métrica integrada ou qualquer tipo de métrica definido pelo usuário que tenha um tipo de valor de double ou int64, que seja uma métrica de restrição e que não seja uma métrica para uma instância de VM da Amazon.

      Se você selecionar um tipo de métrica que resulte no monitoramento de mais de 64 série temporal, o Monitoring fará previsões para as 64 série temporal com valores mais próximos do limite ou que já violam o limite. Para outras série temporal, os valores são comparados com o limite.

    2. Opcional: para monitorar um subconjunto da série temporal que corresponde aos tipos de métrica e recurso selecionados na etapa anterior, clique em Adicionar filtro. Na caixa de diálogo de filtro, selecione o rótulo, um comparador e o valor do filtro. Por exemplo, o filtro zone =~ ^us.*.a$ usa uma expressão regular para corresponder a todos os dados de série temporal com nome de zona que começa com us e termina com a. Para mais informações, consulte Filtrar a série temporal selecionada.

    3. Opcional: para alterar como os pontos em uma série temporal são alinhados, na seção Transformar dados, defina os campos Janela contínua e Função da janela contínua.

      Esses campos especificam como os pontos registrados em uma janela são combinados. Por exemplo, suponha que a janela tenha 15 minutos e que a função de janela seja max. O ponto alinhado é o valor máximo de todos os pontos nos últimos 15 minutos. Para mais informações, consulte Alinhamento: regularização dentro da série.

      Também é possível monitorar a taxa em que um valor de métrica muda usando o campo Função de janela contínua para variação percentual. Para mais informações, consulte Monitorar uma taxa de mudança.

    4. Opcional: combine série temporal quando você quiser reduzir o número de série temporal monitoradas por uma política ou monitorar apenas um conjunto de série temporal. Por exemplo, em vez de monitorar a utilização da CPU de cada instância de VM, convém calcular a média de utilização da CPU para todas as VMs em uma zona e, em seguida, monitorar essa média. Por padrão, assérie temporals não são combinadas. Para informações gerais, consulte Redução: combinação de séries temporais.

      Para combinar todas série temporal, faça o seguinte:

      1. Na seção Em série temporal, clique em Expandir.
      2. Defina o campo Agregação da série temporal como um valor diferente de none. Por exemplo, para exibir o valor médio da série temporal, selecione mean.
      3. O campo Agrupar por série temporal precisa estar vazio.

      Para combinar ou agrupar série temporal por valores de rótulo, faça o seguinte:

      1. Na seção Em série temporal, clique em Expandir.
      2. Defina o campo Agregação da série temporal como um valor diferente de none.
      3. No campo Série temporal agrupar por, selecione os rótulos para agrupar.

      Por exemplo, se você agrupar pelo rótulo zone e definir o campo de agregação como um valor de mean, o gráfico exibirá uma série temporal para cada zona onde houver dados. A série temporal mostrada para uma zona específica é a média de todas as séries temporais com essa zona.

    5. Clique em Próxima.

  4. Configure o acionador de condição:

    1. Selecione Previsão para o tipo de condição.

    2. Selecione um valor para o menu Acionador de alerta. Esse menu permite especificar o subconjunto de série temporal que precisa violar o limite para que a condição seja acionada.

    3. Selecione um valor para a Janela de previsão. O valor que você seleciona é a quantidade de tempo no futuro para a previsão. É preciso definir esse valor como pelo menos 1 hora (3.600 segundos) e no máximo 2,5 dias (216.000 segundos).

    4. Insira quando o valor previsto da métrica selecionada violar o limite usando os campos Posição do limite e Valor do limite. Por exemplo, se você definir esses valores como Above threshold e 10, qualquer valor previsto maior que 10 violará o limite.

    5. Opcional: expanda Opções avançadas e defina o valor da Janela de teste. O valor padrão desse campo é Sem novo teste. Recomendamos definir esse campo para pelo menos 10 minutos.

      Por exemplo, suponha que você configure a condição de previsão de modo que qualquer série temporal possa fazer com que ela seja acionada. Suponha também que a janela de novo teste esteja definida como 15 minutos, que a janela de previsão esteja definida como 1 hora e que uma violação ocorra quando o valor da série temporal for maior do que o Limite, que é 10. A condição será acionada se uma das seguintes condições ocorrer:

      • Todos os valores de uma série temporal se tornam maiores que 10 e permanecem lá por pelo menos 15 minutos.
      • Em um intervalo de 15 minutos, cada previsão de uma série temporal prevê que o valor dela aumentará para mais que o limite de 10 em algum momento na próxima hora.
    6. Opcional: para especificar como o Monitoring avalia a condição quando os dados param de chegar, expanda as Opções avançadas e use o menu Dados ausentes de avaliação.

      O menu Avaliação de dados ausentes é desativado quando o valor da Janela de teste é Nenhum novo teste.

      Quando há dados ausentes por mais de 10 minutos, uma condição de previsão deixa de fazer previsões e usa o valor do campo Dados ausentes de avaliação para determinar como gerenciar incidentes. Quando as observações são reiniciadas, a previsão é reiniciada.

      Console do Google Cloud
      Campo "Avaliação de dados ausentes"
      Resumo Detalhes
      Dados ausentes vazios Os incidentes abertos permanecem abertos.
      Novos incidentes não são abertos.

      Para as condições que são atendidas, a condição continua a ser atendida quando os dados param de chegar. Se um incidente estiver aberto para essa condição, ele permanecerá aberto. Quando um incidente está aberto e nenhum dado chega, o timer de fechamento automático é iniciado após um atraso de pelo menos 15 minutos. Se o timer expirar, o incidente será encerrado.

      Para condições que não são atendidas, a condição continua a não ser atendida quando os dados param de chegar.

      Pontos de dados ausentes tratados como valores que violam a condição da política Os incidentes abertos permanecem abertos.
      Novos incidentes podem ser abertos.

      Para as condições que são atendidas, a condição continua a ser atendida quando os dados param de chegar. Se um incidente estiver aberto para essa condição, ele permanecerá aberto. Quando um incidente está aberto e nenhum dado chega durante o fechamento automático mais 24 horas, o incidente é encerrado.

      Para condições que não são atendidas, essa configuração faz com que a condição de limite de métrica se comporte como uma metric-absence condition. Se os dados não chegarem no prazo especificado pela janela de novo teste, a condição será avaliada como atendida. Para uma política de alertas com uma condição, o cumprimento da condição resulta na abertura de um incidente.

      Pontos de dados ausentes, tratados como valores que não violam a condição da política Os incidentes abertos são fechados.
      Novos incidentes não são abertos.

      Para as condições que são atendidas, a condição deixa de ser atendida quando os dados param de chegar. Se um incidente estiver aberto para essa condição, ele será encerrado.

      Para condições que não são atendidas, a condição continua a não ser atendida quando os dados param de chegar.

    7. Clique em Próxima.

  5. Opcional: crie uma política de alertas com várias condições.

    A maioria das políticas monitora um único tipo de métrica. Por exemplo, uma política pode monitorar o número de bytes gravados em uma instância de VM. Quando você quiser monitorar vários tipos de métricas, crie uma política com várias condições. Cada condição monitora um tipo de métrica. Depois de criar as condições, especifique como elas serão combinadas. Para mais informações, consulte Políticas com várias condições.

    Para criar uma política de alertas com várias condições, faça o seguinte:

    1. Para cada outra condição, clique em Adicionar condição de alerta e configure-a.
    2. Clique em Próxima e configure como as condições são combinadas.
    3. Clique em Avançar para avançar para a configuração de notificações e documentação.
  6. Configure as notificações:

    1. Expanda o menu Notifications and name e selecione seus canais de notificação. Para fins de redundância, recomendamos que você adicione vários tipos de canais de notificação a uma política de alertas. Para saber mais, consulte Gerenciar canais de notificação.

    2. Opcional: para receber uma notificação quando um incidente for fechado, selecione Notificar sobre interdição de incidentes. Por padrão, quando você cria uma política de alertas com o console do Google Cloud, uma notificação é enviada apenas quando um incidente é criado.

    3. Opcional: para alterar o tempo que o Monitoring espera antes de fechar um incidente após a chegada dos dados, selecione uma opção no menu Duração do fechamento automático de incidentes. Por padrão, quando os dados param de chegar, o Monitoring aguarda sete dias antes de fechar um incidente aberto.

    4. Selecione uma opção no menu Nível de gravidade da política. Incidentes e notificações mostram o nível de gravidade.

    5. Opcional: para adicionar rótulos personalizados à política de alertas, na seção Rótulos do usuário da política, faça o seguinte:

      1. Clique em Adicionar rótulo e, no campo Chave, insira um nome para o rótulo. Os nomes de rótulos precisam começar com uma letra minúscula e podem conter letras minúsculas, numerais, sublinhados e traços. Por exemplo, insira severity.
      2. Clique em Valor e insira um valor para o rótulo. Os valores de rótulo podem conter letras minúsculas, numerais, sublinhados e traços. Por exemplo, insira critical.

      Para informações sobre como usar rótulos de política para ajudar a gerenciar alertas, consulte Anotar alertas com rótulos.

  7. Opcional: na seção Documentação, insira o conteúdo que você quer incluir na notificação.

    Para formatar sua documentação, use texto simples, Markdown e variáveis. Também é possível incluir links para ajudar os usuários a depurar o incidente, como links para manuais internos, painéis do Google Cloud e páginas externas. Por exemplo, o modelo de documentação a seguir descreve um incidente de utilização da CPU para um recurso gce_instance e inclui várias variáveis para fazer referência aos recursos REST de condição e política de alertas. O modelo de documentação direciona os leitores para páginas externas para ajudar na depuração.

    Quando as notificações são criadas, o Monitoring substitui as variáveis da documentação pelos valores delas. Os valores substituem as variáveis somente nas notificações. O painel de visualização e outros locais no console do Google Cloud mostram apenas a formatação Markdown.

    Visualizar

    ## CPU utilization exceeded
    
    ### Summary
    
    The ${metric.display_name} of the ${resource.type}
    ${resource.label.instance_id} in the project ${resource.project} has
    exceeded 90% for over 15 minutes.
    
    ### Additional resource information
    
    Condition resource name: ${condition.name}
    Alerting policy resource name: ${policy.name}
    
    ### Troubleshooting and Debug References
    
    Repository with debug scripts: example.com
    Internal troubleshooting guide: example.com
    ${resource.type} dashboard: example.com
    

    Formatar na notificação

    Exemplo de como a documentação é renderizada em uma notificação.

    Para mais informações, consulte Anotar alertas com documentação definida pelo usuário e Como usar controles de canal.

  8. Clique em Nome e digite um nome para a política de alertas.

  9. Clique em Criar política.

Filtrar a série temporal selecionada

Os filtros garantem que apenas série temporal que atendam a algum conjunto de critérios sejam monitoradas. Ao aplicar filtros, você reduz o número de linhas no gráfico, melhorando o desempenho dele. Também é possível reduzir a quantidade de dados monitorados aplicando a agregação. Os filtros garantem que somente séries temporais que atendam a algum conjunto de critérios sejam usadas. Quando você aplica filtros, há menos série temporal para avaliar, o que pode melhorar o desempenho do alerta.

Um filtro é composto por um rótulo, um comparador e um valor. Por exemplo, para corresponder a todas as série temporal em que o rótulo zone começa com "us-central1", é possível usar o filtro zone=~"us-central1.*", que usa uma expressão regular para realizar a comparação.

Ao filtrar pelo ID do projeto ou pelo contêiner do recurso, é necessário usar o operador de igualdade (=). Ao filtrar por outros rótulos, você pode usar qualquer comparador compatível. Normalmente, você pode filtrar rótulos de métricas e recursos e por grupo de recursos.

Quando você fornece vários critérios de filtragem, somente as série temporal que atendem a todos os critérios são monitoradas.

Para adicionar um filtro, clique em Adicionar filtro, preencha a caixa de diálogo e clique em Concluído. Na caixa de diálogo, use o campo Filtro para selecionar o critério pelo qual filtrar, selecione o operador de comparação e o valor. Cada linha na tabela a seguir lista um operador de comparação, o significado dele e um exemplo:

OperadorSignificadoExemplo
= Igualdade resource.labels.zone = "us-central1-a"
!= Desigualdade resource.labels.zone != "us-central1-a"
=~ Igualdade de expressão regular2 monitoring.regex.full_match("^us.*")
!=~ Desigualdade de expressão regular2 monitoring.regex.full_match("^us.*")
starts_with O valor começa com resource.labels.zone = starts_with("us")
ends_with O valor termina com resource.labels.zone = ends_with("b")
has_substring O valor contém resource.labels.zone = has_substring("east")
one_of Uma resource.labels.zone = one_of("asia-east1-b", "europe-north1-a")
!starts_with O valor não começa com resource.labels.zone != starts_with("us")
!ends_with O valor não termina com resource.labels.zone != ends_with("b")
!has_substring O valor não contém resource.labels.zone != has_substring("east")
!one_of O valor não é um de resource.labels.zone != one_of("asia-east1-b", "europe-north1-a")

Resolver problemas

Esta seção contém dicas para solução de problemas.

Métrica não listada no menu de métricas disponíveis

Para monitorar uma métrica que não está listada no menu Selecionar uma métrica, siga um destes procedimentos:

  • Para criar uma política de alertas que monitore uma métrica do Google Cloud, expanda o menu Selecionar uma métrica e clique em Ativo. Quando desativado, o menu lista todas as métricas dos serviços do Google Cloud e todas as métricas com dados.

  • Para configurar um alerta para um tipo de métrica personalizada antes que ela gere dados, é necessário especificar o tipo de métrica usando um filtro do Monitoring:

    1. Selecione ? no cabeçalho da seção Selecionar métrica e, em seguida, selecione Modo de filtro direto na dica.
    2. Insira um filtro de monitoramento ou um seletor de série temporal. Para informações sobre a sintaxe, consulte os seguintes documentos:

Monitorar uma taxa de mudança

Para monitorar a taxa de alteração de um valor de métrica, defina o campo Função da janela contínua como Alteração percentual. Em seguida, o Monitoring compara a taxa de alteração da métrica com o limite. Quando você seleciona a função de alteração percentual, o Monitoring faz o seguinte:

  1. Se a série temporal tiver um tipo de métrica DELTA ou CUMULATIVE, ela será convertida para um tipo de métrica GAUGE. Para informações sobre a conversão, consulte Tipos, tipos e conversões.
  2. Calcula a porcentagem alterada comparando o valor médio na janela de 10 minutos mais recente com o valor médio da janela de 10 minutos antes da janela de novo teste.

A janela de lookback de 10 minutos é um valor fixo e não pode ser alterado. No entanto, você especifica a janela do novo teste ao criar uma condição.

Restrições

  • É possível configurar a condição usando a interface orientada por menu do console do Google Cloud ou usando filtros do Monitoring. Não é possível configurar a condição usando a linguagem de consulta do Monitoring ou o PromQL.
  • Todas as métricas que têm um tipo de valor double ou int64 são compatíveis, exceto as de instâncias de VM da Amazon.

A seguir