Este documento descreve como organizar e priorizar seus incidentes atribuindo rótulos definidos pelo usuário. Esses rótulos são configurados em políticas de alerta e listados em políticas de alerta e incidentes. Dependendo da configuração, os rótulos 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, política de alertas, incidente ou 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:
Os rótulos estáticos definidos pelo usuário têm valores que não podem ser alterados. É possível criar rótulos estáticos definidos pelo usuário ao configurar uma política de alertas usando o console ou a API Cloud Monitoring. Para mais informações, consulte estes documentos:
Os rótulos dinâmicos definidos pelo usuário têm valores que podem mudar com base nos valores dos dados de série temporal. É possível criar rótulos dinâmicos definidos pelo usuário ao configurar a condição de uma política de alertas com MQL. Para conferir um exemplo, consulte Exemplo: adicionar rótulos definidos pelo usuário com valores 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. Eles precisam ser preenchidos quando os dados de série temporal são gravados. Esses rótulos mostram informações sobre a métrica que está sendo coletada ou o recurso em que ela está sendo gravada. Por exemplo, os rótulos em uma série temporal podem identificar uma máquina virtual (VM), uma zona, um projeto do Google Cloud e um tipo de dispositivo. Quando o Monitoring cria um incidente com base nessa série temporal, ele herda esses rótulos.
Como conferir 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 rótulos predefinidos não ficam visíveis.
- Incidentes: os rótulos estáticos definidos pelo usuário são listados na seção Rótulos de políticas, 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 estão listados nas seções Rótulos de recursos monitorados e Rótulos de métricas.
Notificações: rótulos predefinidos e definidos pelo usuário são listados nos seguintes tipos de notificação:
- Google Chat
- PagerDuty
- Pub/Sub
- Webhook
Exemplo: adicionar rótulos definidos pelo usuário com valores dinâmicos
Você pode usar o MQL para configurar um rótulo de modo que o valor dele mude dinamicamente com base em 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 alerta que usam consultas MQL processam os dados de série temporal que monitoram:
O gerenciador 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 gerenciador de políticas pode gerar uma das 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", além de um rótulo de gravidade com o valor "CRITICAL". |
"AVISO" | Sim | O uso da CPU é de pelo menos 80%, mas inferior a 90%. A série temporal de saída tem os mesmos rótulos da série "GOOD", além de 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 "GOOD", além de um rótulo de gravidade com o valor "INFO". |
Os dados de série temporal gerados pelo gerenciador 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 gerenciador de incidentes usa os
valores dos campos duration
, evaluationMissingData
e autoClose
.
Práticas recomendadas
Para garantir que no máximo um incidente esteja aberto por vez quando você criar rótulos com valores definidos dinamicamente, faça o seguinte:
No objeto
MetricThreshold
, substitua os valores padrão dos seguintes campos:- Campo
duration
: defina 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 comoEVALUATION_MISSING_DATA_INACTIVE
. Ao usar o console do Google Cloud , defina o campo como "Pontos de dados ausentes tratados como valores que não violam a condição da política".
- Campo
No objeto
AlertStrategy
, defina o campoautoClose
como o valor mínimo de 30 minutos. Ao usar a API Cloud Monitoring, defina esse campo como30m
.
Para mais informações, consulte Dados de métricas parciais.
Fluxo de incidentes
Suponha que as medições de utilização da CPU sejam menores que 70% quando a política de alertas for criada. A sequência a seguir ilustra como os incidentes são abertos e fechados:
Como as medições de utilização da CPU são menores que 70%, o gerenciador de políticas gera a série temporal "GOOD" e nenhum incidente é aberto.
Em seguida, suponha que a utilização da CPU aumente para 93%. O gerenciador de políticas para de gerar os dados da série temporal "GOOD" e começa a gerar dados para a série temporal "CRITICAL".
O gerente de incidentes encontra uma nova série temporal "CRITICAL" que atende à condição e, em seguida, abre um incidente. A notificação inclui o rótulo de gravidade com um valor de
CRITICAL
.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 gerenciador de incidentes encontra 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 nenhum dado está chegando para a série temporal "CRITICAL" e que um incidente está aberto para essa série temporal. Como a política está configurada para fechar incidentes quando os dados param de chegar, o gerenciador de incidentes fecha o incidente associado à série temporal "CRITICAL". Portanto, apenas o incidente com o rótulo de gravidade
INFO
permanece aberto.Por fim, suponha que a utilização da CPU caia para 45%. Esse valor é menor do que todos os limites, então 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 nenhum dado está chegando para a série temporal "INFO" e que um incidente está aberto para essa série temporal. Como a política está usando as configurações recomendadas, o incidente foi encerrado.
Se você não usar o valor recomendado para o campo evaluationMissingData
,
os incidentes abertos não serão encerrados imediatamente quando os dados pararem de chegar.
O resultado é que você pode encontrar vários incidentes abertos para a mesma série temporal de entrada. Para mais informações, consulte Dados de métricas parciais.
A seguir
- Criar políticas de alertas usando a API Monitoring
- Políticas de alertas com a MQL
- Como lidar com dados de métricas parciais