Classificar incidentes com rótulos

Este documento descreve como organizar e priorizar seus incidentes atribuindo rótulos definidos pelo usuário a eles. Esses rótulos são configurados em políticas de alertas e listados em políticas de alertas e incidentes. Dependendo da sua configuração, os marcadores também são listados em determinadas 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, uma política de alertas, um incidente ou uma notificação. Por exemplo, os rótulos em uma série temporal podem identificar a instância de máquina virtual (VM) específica 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 traços.

Rótulos predefinidos

Os rótulos predefinidos são incluídos nos descritores de recursos e 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 ela é gravada. Por exemplo, os rótulos em uma série temporal podem identificar uma máquina virtual (VM), uma zona, um projeto Google Cloud e um tipo de dispositivo. Quando o Monitoring cria um incidente com base nessa série temporal, ele herda esses rótulos.

Rótulos do App Hub

O App Hub anexa rótulos a dados de registros, métricas e rastreamentos gerados por um aplicativo e seus serviços e cargas de trabalho. Com esses rótulos, a infraestrutura do Google Cloud cria painéis de aplicativos, serviços e cargas de trabalho que mostram dados de métricas e registros. Para mais informações, consulte um dos seguintes documentos:

Como acessar os rótulos

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

  • Políticas de alerta: 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 predefinidos não ficam visíveis.
  • Incidentes: 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 da métrica. Os rótulos predefinidos estã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 nos seguintes 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 a MQL para configurar um rótulo de forma que o valor dele mude dinamicamente com base nos dados de série temporal. Por exemplo, você quer que seus incidentes tenham um rótulo criticality cujo valor mude dependendo do valor da métrica de utilização da CPU monitorada:

fetch gce_instance
| metric 'compute.googleapis.com/instance/cpu/utilization'
| group_by sliding(5m), [value_utilization_mean: mean(value.utilization)]
| map
    add[
      criticality:
        if(val() >= 90 '%', 'CRITICAL',
          if(val() >= 80 '%', 'WARNING',
            if(val() >= 70 '%', 'INFO', 'GOOD')))
    ]
| condition val() >= 70 '%'

A figura a seguir ilustra como as políticas de alertas que usam consultas MQL 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 manipulador 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. Não tem um rótulo de gravidade.
"CRITICAL" Sim O uso da CPU é de pelo menos 90%. A série temporal de saída tem os mesmos rótulos da série "GOOD" mais um rótulo de gravidade com o valor "CRITICAL".
"WARNING" Sim O uso 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 "GOOD" mais um rótulo de gravidade com o valor "WARNING".
"INFO" Sim O uso 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 "GOOD" mais um rótulo de gravidade com o valor "INFO".

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

Práticas recomendadas

Para verificar se no máximo um incidente 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 dos seguintes campos:

    • Campo duration: defina como um valor diferente de zero.
    • Campo evaluationMissingData: defina para que os incidentes 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 console Google Cloud , 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 incidentes

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

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

  2. Em seguida, suponha que a utilização da CPU aumente para 93%. O gerenciador 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 gerente de incidentes vê uma nova série temporal "CRÍTICA" que atende à condição e abre um incidente. A notificação inclui o rótulo de gravidade com o valor CRITICAL.

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

    O gerente de incidentes vê uma nova série temporal "INFO" que atende à condição e abre um incidente. A notificação inclui o rótulo de gravidade com um valor de INFO.

    O gerente de incidentes percebe que não há dados chegando para a série temporal "CRITICAL" e que um incidente está aberto para ela. Como a política está configurada para fechar incidentes quando os dados param de chegar, o gerente de incidentes fecha o incidente associado à série temporal "CRITICAL". Portanto, apenas o incidente 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 gerenciador de políticas para de gerar a série temporal "INFO" e começa a gerar a série temporal "GOOD".

    O gerente de incidentes percebe que não há dados chegando para a série temporal "INFO" e que um incidente está aberto para ela. Como a política está usando as configurações recomendadas, o incidente é encerrado.

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

A seguir