Como resolver problemas de métricas com base em registros

Nesta página, você encontrará informações sobre solução de problemas para cenários comuns ao usar métricas com base em registros no Cloud Logging.

Não é possível ver ou criar métricas

As métricas com base em registros se aplicam apenas a um único projeto Google Cloud ou a um bucket do Logging em um projeto Google Cloud . Não é possível criar métricas com base em registros para outros recursos do Google Cloud Google Cloud, como contas de faturamento ou organizações. As métricas com base em registros são calculadas apenas para registros no projeto ou bucket Google Cloud em que são recebidas.

Para criar métricas, você precisa das permissões de gerenciamento de identidade e acesso corretas. Para detalhes, consulte Controle de acesso com o IAM: métricas com base em registros.

Faltam dados de registros na métrica

Existem várias razões possíveis para a falta de dados nas métricas com base em registros:

  • Novas entradas de registro podem não corresponder ao filtro de registros da sua métrica. Uma métrica com base em registros aceita os dados das entradas de registro correspondentes recebidas após a criação da métrica. O Logging não preenche a métrica a partir de entradas de registro anteriores.

  • Novas entradas de registro podem não conter o campo correto ou os dados podem não estar no formato correto para serem extraídos pela métrica de distribuição. Verifique se os nomes dos campos e as expressões regulares estão corretos.

  • As contagens de métricas podem estar atrasadas. Ainda que apareçam entradas de registro contáveis no Explorador de registros, pode levar até 10 minutos para atualizar as métricas com base em registros no Cloud Monitoring.

  • As entradas de registro exibidas podem ser contadas com atraso ou sequer ser contadas, porque têm um carimbo de data/hora muito distante no passado ou no futuro. Se uma entrada de registro for recebida pelo Cloud Logging há mais de 24 horas no passado ou 10 minutos no futuro, ela não será contabilizada na métrica com base em registros.

    O número de entradas atrasadas é gravado na métrica com base em registros logging.googleapis.com/logs_based_metrics_error_count.

    Exemplo: uma entrada de registro que corresponde a uma métrica com base em registros chega atrasada. Ela tem um timestamp de 14h30 em 20 de fevereiro de 2020 e um receivedTimestamp de 14h45 em 21 de fevereiro de 2020. Essa entrada não será contabilizada na métrica com base em registros.

  • A métrica com base em registros foi criada após a chegada das entradas de registro que ela pode contar. As métricas com base em registros avaliam as entradas de registro à medida que são armazenadas em buckets de registro. Essas métricas não avaliam as entradas de registro armazenadas no Logging.

  • A métrica com base em registros tem lacunas nos dados. Algumas falhas são esperadas, porque os sistemas que processam os dados de métricas baseadas em registros não garantem a persistência de todos os pontos de dados de métricas. Quando ocorrem, elas são raras e de curta duração. No entanto, se você tiver uma política de alertas que monitora uma métrica com base em registros, as lacunas nos dados poderão causar uma notificação falsa. As configurações usadas na sua política de alerta podem reduzir essa possibilidade.

    Exemplo: uma entrada de registro de "pulsação" é gravada a cada cinco minutos, e uma métrica com base em registros conta o número de entradas de registro de "pulsação". Uma política de alertas soma as contagens em um intervalo de cinco minutos e notifica você quando o total é menor que um. Quando a série temporal não tem um ponto de dados, a política de alertas injeta um valor sintético, que é uma cópia da amostra mais recente e provavelmente será zero. Em seguida, ela avalia a condição. Portanto, mesmo um único ponto de dados ausente pode resultar em um valor somado igual a zero, o que faz com que essa política de alertas envie uma notificação.

    Para reduzir o risco de uma notificação falsa, configure a política para contar várias entradas de registro de "heartbeat", não apenas uma.

O tipo de recurso é "indefinido" no Cloud Monitoring

Alguns tipos de recursos monitorados do Cloud Logging não são mapeados diretamente para os tipos de recursos monitorados do Cloud Monitoring. Por exemplo, ao criar uma política de alertas ou um gráfico de uma métrica com base em registros, é possível que o tipo de recurso seja "indefinido".

O tipo de recurso é indefinido.

O tipo de recurso monitorado mapeia para global ou um outro tipo de recurso monitorado no Cloud Monitoring. Consulte Mapeamentos para recursos somente do Logging para determinar que tipo de recurso monitorado você precisa escolher.

Os marcadores em uma notificação não são resolvidos

Você cria uma métrica com base em registros e, em seguida, uma política de alertas para monitorar essa métrica. No campo de documentação da política de alertas, você se refere aos rótulos extraídos usando uma variável do formulário ${log.extracted_label.KEY}, em que KEY é o nome que você deu ao rótulo extraído. O rótulo não é resolvido na notificação.

Para resolver esse problema, faça uma das seguintes ações:

  • Remova o conteúdo do rótulo extraído da documentação. As políticas de alertas que monitoram métricas com base em registros não podem extrair dados de entradas de registro.

  • Crie um alerta com base em registros. Essas políticas podem extrair dados da entrada de registro que causa o acionamento.

Os incidentes não são criados ou são falsos positivos

Você pode receber incidentes de falsos positivos ou situações em que o Monitoring não cria incidentes com base em métricas de registros porque o período de alinhamento da política de alertas é muito curto. Você pode encontrar falsos positivos nos seguintes cenários:

  • Quando uma política de alertas usa a lógica menor que.
  • Quando uma política de alertas é baseada em uma condição de percentil para uma métrica de distribuição.
  • Quando há uma lacuna nos dados de métricas.

É possível que os incidentes de falsos positivos ocorram porque as entradas de registro podem ser enviadas para o Logging com atraso. Por exemplo, os campos de registro timestamp e receiveTimestamp podem ter um delta de minutos em alguns casos. Além disso, quando o Logging armazena registros em buckets de registros, há um atraso inerente entre o período em que as entradas de registro são geradas e o período em que o Logging as recebe. Isso significa que o Logging pode não ter a contagem total de uma entrada de registro específica até algum momento posterior à geração das entradas de registro. É por isso que uma política de alertas que usa a lógica menor que ou com base em uma condição de percentil para uma métrica de distribuição pode produzir um alerta de falso positivo: nem todas as entradas de registro foram contabilizadas ainda.

No entanto, as métricas com base em registros têm consistência posterior porque uma entrada de registro que corresponde a uma métrica com base em registros pode ser enviada para o Logging com um timestamp que é bem mais antigo ou mais recente que o receiveTimestamp do registro.

Isso significa que a métrica com base em registros pode receber entradas de registro com carimbos de data/hora mais antigos depois que as entradas de registro atuais com o mesmo carimbo de data/hora já tiverem sido recebidas pelo Logging. Sendo assim, o valor da métrica precisa ser atualizado.

Para que as notificações continuem precisas, mesmo para dados pontuais, recomendamos que você defina o período de alinhamento da condição como pelo menos 10 minutos. Em particular, esse valor precisa ser grande o suficiente para garantir que várias entradas de registro que correspondam ao seu filtro sejam contadas. Por exemplo, se uma métrica baseada em registros contar entradas de registro de "pulsação", que são esperadas a cada N minutos, defina o período de alinhamento como 2N minutos ou 10 minutos, o que for maior:

  • Se você usa o console Google Cloud , use o menu Janela rotativa para definir o período de alinhamento.

  • Se você usa a API, use o campo aggregations.alignmentPeriod da condição para definir o período de alinhamento.

A métrica tem muitas séries temporais

O número de séries temporais em uma métrica depende do número de diferentes combinações de valores de rótulo. O número de séries temporais é chamado de cardinalidade da métrica e não pode exceder 30.000.

Como é possível gerar uma série temporal para cada combinação de valores de rótulo, não será difícil ultrapassar 30.000 séries temporais se você tiver um ou mais rótulos com alto número de valores. Evite métricas com alta cardinalidade.

À medida que a cardinalidade de uma métrica aumenta, a métrica pode ser sobrecarregada e alguns pontos de dados podem não ser gravados nela. O carregamento dos gráficos que exibem a métrica pode demorar devido ao grande número de séries temporais que o gráfico precisa processar. Também pode haver custos para que chamadas de API consultem dados de série temporal. Analise os custos do Cloud Monitoring para mais detalhes.

Para evitar a criação de métricas de cardinalidade alta:

  • verifique se os campos de rótulo e as expressões regulares do extrator correspondem aos valores que têm uma cardinalidade limitada;

    Por exemplo, não armazene tamanhos, contagens ou durações em rótulos. Além disso, não armazene campos como URLs, endereços IP ou IDs exclusivos, já que todos eles podem resultar em um grande número de séries temporais.

  • evite extrair mensagens de texto que podem ser alteradas, sem limites, como valores de rótulo;

  • evite extrair valores numéricos com cardinalidade ilimitada;

  • extraia apenas valores de rótulos de cardinalidade conhecida. Por exemplo, códigos de status com um conjunto de valores conhecidos.

Essas duas métricas com base em registros do sistema podem ajudar a avaliar o efeito da adição ou remoção de rótulos na cardinalidade da métrica:

Ao inspecionar essas métricas, é possível filtrar ainda mais os resultados pelo nome da métrica. Para detalhes, consulte Como selecionar métricas: filtros.

O nome da métrica é inválido

Ao criar uma métrica de contador ou de distribuição, escolha um nome de métrica que seja único entre as métricas com base em registros no seu projeto Google Cloud .

As strings de nome de métrica não podem exceder 100 caracteres e podem incluir apenas os seguintes caracteres:

  • A-Z
  • a-z
  • 0-9
  • Os caracteres especiais _-.,+!*',()%\/.

    O caractere de barra / denota uma hierarquia de partes dentro do nome da métrica e não pode ser o primeiro caractere do nome.

Os valores das métricas não estão corretos

Às vezes, os valores informados para uma métrica com base em registros são diferentes do número de entradas de registro informadas pela Análise de registros.

Para minimizar a discrepância, faça o seguinte:

  • Verifique se os aplicativos não estão enviando entradas de registro duplicadas. As entradas de registro são consideradas duplicadas quando têm o mesmo timestamp e insertId. O Explorador de registros suprime automaticamente as entradas duplicadas. No entanto, as métricas com base em registros contam cada entrada de registro que corresponde ao filtro da métrica.

  • Verifique se uma entrada de registro é enviada ao Cloud Logging quando o carimbo de data/hora é inferior a 24 horas no passado ou inferior a 10 minutos no futuro. As entradas de registro com carimbos de data/hora fora desses limites não são contabilizadas pelas métricas com base em registros.

Não é possível eliminar a possibilidade de registros duplicados. Se um erro interno ocorrer durante o processamento de uma entrada de registro, o Cloud Logging vai invocar um processo de nova tentativa. O processo de nova tentativa pode causar uma entrada de registro duplicada. Quando há entradas de registro duplicadas, o valor de uma métrica com base em registros pode ser muito grande porque essas métricas contam cada entrada de registro que corresponde ao filtro da métrica.

Os valores de rótulo estão truncados

Os valores de rótulos definidos pelo usuário não podem exceder 1.024 bytes.

Não é possível excluir uma métrica de registro personalizada

Você tenta excluir uma métrica personalizada com base em registros usando o console Google Cloud . A solicitação de exclusão falha, e a caixa de diálogo de exclusão mostra a mensagem de erro There is an unknown error while executing this operation.

Para resolver esse problema, tente o seguinte:

  • Atualize a página Métricas com base em registros no console do Google Cloud . A mensagem de erro pode aparecer devido a um problema interno de tempo.

  • Identifique e exclua todas as políticas de alertas que monitoram a métrica com base em registros. Depois de verificar que a métrica com base em registros não é monitorada por uma política de alertas, exclua a métrica. Não é possível excluir métricas com base em registros monitoradas por uma política de alertas.