Anotar alertas com rótulos

Os rótulos definidos pelo usuário nas políticas de alertas do Cloud Monitoring permitem organizar e priorizar seus alertas. Ao configurar esses rótulos, o Monitoring os mostra nas políticas e alertas e pode incluí-los nas notificações.

Sobre os rótulos

Os rótulos, que são pares de chave-valor, são usados para anexar informações a uma série temporal, política de alertas, alerta ou notificação. Por exemplo, os rótulos em uma série temporal podem identificar a instância específica da máquina virtual (VM) de onde os dados foram coletados. Os rótulos são definidos pelo usuário ou predefinidos.

Marcadores definidos pelo usuário

Os rótulos definidos pelo usuário contêm informações especificadas por você. Esses rótulos podem ter valores estáticos ou dinâmicos:

As chaves de rótulos precisam começar com letra minúscula. As chaves e os valores de rótulos podem conter apenas letras minúsculas, dígitos, sublinhados e hifens.

Rótulos predefinidos

Os rótulos predefinidos são incluídos nos descritores de recursos. Eles precisam ser preenchidos quando os dados de série temporal são gravados. Esses rótulos mostram informações sobre a métrica coletada ou o recurso em que a métrica é gravada. Por exemplo, os rótulos em uma série temporal podem identificar uma máquina virtual (VM), uma zona, um Google Cloud projeto e um tipo de dispositivo. Quando o Monitoring cria um alerta com base nessa série temporal, o alerta herda esses rótulos.

Rótulos do App Hub

O App Hub anexa rótulos a dados de registro, métrica e rastreamento gerados por um aplicativo e seus serviços e cargas de trabalho. Esses rótulos permitem que a Google Cloud infraestrutura crie painéis de aplicativos, serviços e cargas de trabalho que mostram dados de métricas e registros. Para mais informações, consulte um destes documentos:

Como visualizar rótulos

É possível visualizar os róbulos de uma política de alertas ou um alerta na página de detalhes de um alerta, na página de detalhes de uma política de alertas, e em algumas notificações.

  • Políticas de alertas: os rótulos estáticos definidos pelo usuário são listados na seção Rótulos do usuário. Os rótulos dinâmicos definidos pelo usuário e os rótulos predefinidos não ficam visíveis.
  • Alertas: os rótulos estáticos definidos pelo usuário são listados na seção Rótulos da política e os rótulos dinâmicos definidos pelo usuário são listados na seção Rótulos de métricas. Os rótulos predefinidos são listados nas seções Rótulos de recursos monitorados e Rótulos de métricas.
  • Notificações: os rótulos predefinidos e definidos pelo usuário são listados nestes tipos de notificação:

    • E-mail
    • Google Chat
    • PagerDuty
    • Pub/Sub
    • Webhook

Exemplo: adicionar rótulos definidos pelo usuário com valores dinâmicos

É possível usar o PromQL para configurar um rótulo para que o valor dele mude dinamicamente com base nos dados de série temporal. Por exemplo, você quer que seus alertas tenham um rótulo criticality cujo valor mude dependendo do valor da métrica de utilização da CPU monitorada:

  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.9,
    "criticality", "CRITICAL", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.8,
    "criticality", "WARNING", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]) >= 0.7,
    "criticality", "INFO", "", ""
  )
or ignoring (criticality)
  label_replace(
    avg_over_time({"compute.googleapis.com/instance/cpu/utilization", monitored_resource="gce_instance"}[5m]),
    "criticality", "GOOD", "", ""
  )

A figura a seguir ilustra como as políticas de alertas que usam consultas PromQL processam os dados de série temporal que monitoram:

Ilustração de como as políticas de alertas processam as série temporal monitoradas.

O processador de políticas processa os dados de utilização da CPU e gera uma série temporal que indica quando a condição é atendida. No exemplo anterior, a condição é atendida quando a utilização da CPU é de pelo menos 70%. Para cada série temporal de entrada, o processador de políticas pode gerar uma destas quatro séries temporais:

Nome da série temporal de saída Condição atendida Descrição
"GOOD" Não Essa série temporal tem os mesmos rótulos da série temporal de entrada. Ela não tem um rótulo de gravidade.
"CRITICAL" Sim A utilização da CPU é de pelo menos 90%. A série temporal de saída tem os mesmos rótulos da série temporal "GOOD" mais um rótulo de gravidade com o valor "CRITICAL".
"WARNING" Sim A utilização da CPU é de pelo menos 80%, mas menos de 90%. A série temporal de saída tem os mesmos rótulos da série temporal "GOOD" mais um rótulo de gravidade com o valor "WARNING".
"INFO" Sim A utilização da CPU é de pelo menos 70%, mas menos de 80%. A série temporal de saída tem os mesmos rótulos da série temporal "GOOD" mais um rótulo de gravidade com o valor "INFO".

Os dados de série temporal gerados pelo processador de políticas são a entrada para o gerenciador de alertas, que determina quando os alertas são criados e fechados. Para determinar quando fechar um alerta, o gerenciador de alertas usa os valores dos campos duration, evaluationMissingData e autoClose.

Práticas recomendadas

Para verificar se, no máximo, um alerta está aberto por vez ao criar rótulos cujos valores são definidos dinamicamente, faça o seguinte:

  • No objeto MetricThreshold, substitua os valores padrão destes campos:

    • Campo duration: defina um valor diferente de zero.
    • Campo evaluationMissingData: defina para que os alertas sejam fechados quando os dados pararem de chegar. Ao usar a API Cloud Monitoring, defina esse campo como EVALUATION_MISSING_DATA_INACTIVE. Ao usar o Google Cloud console, defina o campo como "Pontos de dados ausentes tratados como valores que não violam a condição da política".
  • No objeto AlertStrategy, defina o campo autoClose como o valor mínimo de 30 minutos. Ao usar a API Cloud Monitoring, defina esse campo como 30m.

Para mais informações, consulte Dados de métricas parciais.

Fluxo de alertas

Suponha que as medições de utilização da CPU sejam menores que 70% quando a política de alertas é criada. A sequência a seguir ilustra como os alertas são abertos e fechados:

  1. Como as medições de utilização da CPU são menores que 70%, o processador de políticas gera a série temporal "GOOD" e nenhum alerta é aberto.

  2. Em seguida, suponha que a utilização da CPU aumente para 93%. O processador de políticas para de gerar os dados de série temporal "GOOD" e começa a gerar dados para a série temporal "CRITICAL".

    O gerenciador de alertas vê uma nova série temporal "CRITICAL" que atende à condição e, em seguida, abre um alerta. A notificação inclui o rótulo de gravidade com um valor de CRITICAL.

  3. Suponha que a utilização da CPU caia para 75%. O processador de políticas para de gerar a série temporal "CRITICAL" e começa a gerar a série temporal "INFO".

    O gerenciador de alertas vê uma nova série temporal "INFO" que atende à condição e, em seguida, abre um alerta. A notificação inclui o rótulo de gravidade com um valor de INFO.

    O gerenciador de alertas vê que nenhum dado está chegando para a série temporal "CRITICAL" e que um alerta está aberto para essa série temporal. Como a política está configurada para fechar alertas quando os dados param de chegar, o gerenciador de alertas fecha o alerta associado à série temporal "CRITICAL". Portanto, apenas o alerta cujo rótulo de gravidade tem um valor de INFO permanece aberto.

  4. Por fim, suponha que a utilização da CPU caia para 45%. Esse valor é menor que todos os limites. Portanto, o processador de políticas para de gerar a série temporal "INFO" e começa a gerar a série temporal "GOOD".

    O gerenciador de alertas vê que nenhum dado está chegando para a série temporal "INFO" e que um alerta está aberto para essa série temporal. Como a política está usando as configurações recomendadas, o alerta é fechado.

Se você não usar o valor recomendado para o campo evaluationMissingData, quando os dados pararem de chegar, os alertas abertos não serão fechados imediatamente. O resultado é que você pode ver vários alertas abertos para a mesma série temporal de entrada. Para mais informações, consulte Dados de métricas parciais.

A seguir