Componentes do modelo de métrica

O modelo do Cloud Monitoring para dados de monitoramento consiste em três conceitos principais:

  • Tipos de recursos monitorados
  • Tipos de métricas
  • Série temporal

No documento O modelo de métrica, descrevemos esses conceitos do Cloud Monitoring em termos gerais. Se esses conceitos são novos para você, leia essa página primeiro.

Nesta página, descrevemos tipos de métricas, recursos monitorados e séries temporais, além de alguns conceitos relacionados, em mais detalhes. Esses conceitos abrangem todas as métricas do Monitoring.

Você precisa entender as informações desta página se quiser fazer o seguinte:

Para mais detalhes sobre esses conceitos e como eles são mapeados para a API Cloud Monitoring, consulte Estrutura de série temporal, especialmente se você planeja usara API Monitoring ou métricas personalizadas.

Uma palavra sobre rótulos

Os tipos de recursos monitorados e de métricas são compatíveis com rótulos, que permitem que os dados sejam classificados durante a análise. Exemplo:

  • Um tipo de recurso monitorado para uma máquina virtual pode incluir rótulos para o local da máquina e o ID do projeto associado à máquina. Quando as informações sobre o recurso monitorado são registradas, elas incluem os valores dos rótulos. Um recurso monitorado também pode ter rótulos de metadados fornecidos pelo sistema ou pelo usuário, além dos rótulos definidos para o tipo de recurso monitorado.
  • Um tipo de métrica que conta solicitações de API pode ter rótulos para registrar o nome do método invocado e o status da solicitação.

O uso de rótulos é discutido em mais detalhes em Rótulos.

Tipos de recursos monitorados

Um recurso monitorado é um recurso de onde dados da métrica são capturados. O Cloud Monitoring é compatível com aproximadamente 270 tipos de recursos monitorados.

Os tipos de recursos monitorados incluem tarefas e nós genéricos, componentes arquitetônicos no Google Kubernetes Engine, tabelas no Bigtable, vários recursos da AWS e muito mais.

Cada tipo de recurso monitorado é formalmente descrito em uma estrutura de dados chamada descritor de recurso monitorado. Para mais informações, consulte Descritores de recursos monitorados.

Cada um dos tipos de recursos monitorados compatíveis tem uma entrada na Lista de recursos monitorados. As entradas na lista são criadas com base em descritores de recursos monitorados. Nesta seção, descrevemos as informações capturadas em um descritor de recursos monitorados e mostra como elas são apresentadas na lista.

Uma amostra de tipo de recurso monitorado

A imagem a seguir mostra a entrada na lista de um bucket do Cloud Storage:

Listagem para o bucket do Cloud Storage.

Todas as entradas da lista incluem as seguintes informações:

  • Tipo: o cabeçalho na entrada lista o tipo de recurso monitorado. No exemplo, gcs_bucket.
  • Nome de exibição: uma breve descrição do recurso monitorado.
  • Descrição: uma descrição mais longa do recurso monitorado.
  • Rótulos: um conjunto de dimensões para classificar dados. Para mais informações, consulte Rótulos.

Tipos de métricas

Um tipo de métrica descreve medições que podem ser coletadas de um recurso monitorado. Um tipo de métrica inclui uma descrição do que está sendo medido e como as medições são interpretadas. O Cloud Monitoring é compatível com aproximadamente 6.500 tipos de métricas e permite definir novos tipos.

Os tipos de métricas incluem contagens de chamadas de API, estatísticas de uso do disco, consumo de armazenamento e muito mais.

Cada tipo de métrica é formalmente descrito em uma estrutura de dados chamada de descritor de métrica. Para mais informações, consulte Descritores de métrica.

Cada um dos tipos de métricas integradas tem uma entrada nas páginas Lista de métricas. As entradas nessas tabelas são criadas a partir dos descritores de métrica. Nesta seção, descrevemos as informações capturadas em um tipo de métrica e mostra como elas são apresentadas no material de referência.

Um exemplo de tipo de métrica

A imagem a seguir mostra uma entrada para um tipo de métrica do Cloud Storage:

Um trecho da lista de métricas do Cloud Storage.

Os tipos de métrica são exibidos em uma tabela, e o cabeçalho da tabela explica o layout das informações. Nesta seção, usamos uma entrada como exemplo, mas todas as tabelas usam o mesmo formato.

A entrada de tabela de amostra do Cloud Storage apresenta estas informações sobre um tipo de métrica:

  • Tipo de métrica: um identificador para o tipo de métrica. No exemplo, storage.googleapis.com/api/request_count.

    O prefixo storage.googleapis.com atua como um namespace para o Cloud Storage. Todos os tipos de métricas associadas a um determinado tipo de recurso monitorado usam o mesmo namespace.

    Os namespaces são omitidos das entradas nas tabelas.

    Todos os tipos de métricas associadas ao Cloud Storage estão listados na tabela de métricas do Cloud Storage.

  • Estágio de lançamento: um bloco colorido que indica o estágio de lançamento do tipo de métrica com um valor como Alfa, Beta e GA (disponibilidade geral, na sigla em inglês).

  • Nome de exibição: uma string curta que descreve o tipo de métrica "Contagem de solicitações" no exemplo.

  • Tipo, unidade: esta linha fornece informações para interpretar os valores de dados. O exemplo mostra uma métrica delta registrada como um número inteiro de 64 bits sem unidade (esse é o valor 1).

    • Tipo: este exemplo é uma métrica delta, que registra uma alteração ao longo de um período. Ou seja, cada ponto de dados registra o número de chamadas de API desde que o ponto de dados anterior foi gravado. Para mais informações sobre tipos, consulte Tipos de valor e tipos de métrica.

    • Tipo: este exemplo registra os valores como números inteiros de 64 bits. Para mais informações sobre tipos, consulte Tipos de valor e tipos de métrica.

    • Unidade: essa métrica não precisa de uma unidade explícita porque representa uma contagem. o dígito 1 é usado para indicar que nenhuma unidade é necessária.

  • Recursos monitorados: os recursos monitorados que têm esse tipo de métrica disponível. Os valores aqui são os mesmos descritos em Tipos de recursos monitorados.

  • Descrição: informações mais detalhadas sobre o que é gravado e como. Defina em itálico para diferenciá-lo dos rótulos.

  • Rótulos: um conjunto de dimensões para classificar dados. Para mais informações, consulte Rótulos.

Ao acessar os dados de monitoramento por meio da API Cloud Monitoring, inclua um projeto do Google Cloud na chamada da API. Só é possível recuperar os dados visíveis para esse projeto do Google Cloud. Por exemplo, se você solicitar os dados do projeto para o tipo de métrica storage.googleapis.com/api/request_count, verá contagens de APIs somente para buckets do Cloud Storage no seu projeto. Se o projeto não estiver usando buckets do Cloud Storage, nenhum dado de métrica será retornado.

Tipos de métricas integrados

Os tipos de métricas integrados são definidos pelos serviços do Google Cloud, incluindo o Cloud Monitoring. Esses tipos de métrica descrevem medições padrão para uma ampla variedade de infraestruturas comuns e estão disponíveis para qualquer pessoa usar.

A lista de métricas mostra todo o conjunto de tipos de métricas integradas. As métricas listadas na página Lista de métricas externas são um subconjunto especial de métricas integradas definidas pelo Cloud Monitoring em parceria com projetos de código aberto ou provedores terceirizados. Normalmente, essas métricas têm um prefixo de external.googleapis.com.

Métricas personalizadas

Ao criar seu aplicativo, talvez você tenha determinadas propriedades que queira avaliar, coisas para as quais não há métricas integradas no Cloud Monitoring. Com o Cloud Monitoring, você pode definir ou importar tipos de métricas de fontes externas. Esses tipos de métricas são chamados de métricas personalizadas. Se uma métrica tiver um prefixo custom.googleapis.com ou prometheus.googleapis.com, ela será métrica personalizada. As últimas métricas geralmente são provenientes do Google Cloud Managed Service para Prometheus.

Por exemplo, se você quiser acompanhar o número de widgets vendidos por suas lojas, será necessário usar uma métrica personalizada. Para mais informações, consulte Visão geral das métricas definidas pelo usuário.

Rótulos

Um rótulo é um par de chave-valor usado para fornecer informações sobre um valor de dados.

Rótulos de métricas e recursos monitorados

As definições de tipos de métricas e recursos monitorados incluem rótulos. Os rótulos são classificadores para os dados que estão sendo coletados. Eles ajudam a categorizar os dados para uma análise mais profunda. Exemplo:

  • O tipo de métrica storage.googleapis.com/api/request_count do Cloud Storage tem dois rótulos, response_code e method.
  • O tipo de recurso monitorado do Cloud Storage gcs_bucket tem três rótulos, project_id, bucket_name e location. Os rótulos identificam instâncias específicas do tipo de recurso.

Portanto, todos os dados coletados para solicitações de API de um bucket do Cloud Storage são classificados pelo método chamado, o código de resposta da chamada, o nome, o local e o projeto do bucket envolvido. O conjunto de rótulos varia de acordo com a métrica ou o tipo de recurso monitorado. Os rótulos disponíveis são documentados nas páginas Lista de métricas e Lista de recursos monitorados.

Identificando o código de resposta, o nome do método e o local ao contar chamadas de API, é possível buscar o número de chamadas para um método de API específico, o número de chamadas com falha para qualquer método ou o número de chamadas com falha para um método específico em um local específico.

O número de rótulos e o número de valores que cada um pode presumir é chamado de cardinalidade. A cardinalidade é o número de séries temporais que podem ser coletadas para um par de tipos de métricas e de recursos monitorados: há uma série temporal para cada combinação de valores dos rótulos. Para mais informações, consulte Cardinalidade: série temporal e rótulos.

Rótulos de metadados de recursos

Além dos rótulos definidos nos tipos de métricas e recursos monitorados, o Monitoring coleta internamente outras informações sobre recursos monitorados e armazena essas informações em rótulos de metadados do sistema. Esses rótulos de metadados do sistema estão disponíveis para os usuários como valores somente leitura. Alguns recursos também permitem que os usuários criem seus próprios rótulos de metadados de recursos ao configurar recursos como instâncias de VM no console do Google Cloud.

Os rótulos de metadados do sistema e do usuário são chamados coletivamente de rótulos de metadados de recursos. É possível usar esses rótulos como os definidos nos tipos de métricas e recursos monitorados em filtros de série temporal. Para mais informações sobre filtragem, consulte Como monitorar filtros.

Série temporal: dados de um recurso monitorado

Nesta seção, discutimos o que são dados de monitoramento e como eles são organizados em séries temporais. É aqui que os componentes conceituais do modelo de métrica se tornam artefatos concretos.

O Cloud Monitoring armazena medições regulares ao longo do tempo para pares de tipos de métricas e recursos monitorados. As medições são coletadas em séries temporais e cada série temporal inclui os itens a seguir:

  • O nome do tipo de métrica a que a série temporal pertence e uma combinação de valores para os rótulos da métrica.

  • Uma série de pares (carimbo de data/hora, valor). O valor é a medida e o carimbo de data/hora é a hora em que a medição foi feita.

  • O recurso monitorado, que é a fonte dos dados da série temporal e também uma combinação de valores para os rótulos do recurso.

Uma série temporal é criada para cada combinação de rótulos de métrica e recursos que gera dados.

Exemplo estilizado: o tipo de métrica storage.googleapis.com/api/request_count pode ter muitas série temporal para os buckets do Cloud Storage do projeto. A ilustração a seguir mostra algumas séries temporais possíveis.

Na ilustração, o valor bucket: xxxx representa o valor do rótulo bucket_name no tipo de recurso monitorado, enquanto response_code e method são rótulos no tipo de métrica. Há uma série temporal para cada combinação de valores nos rótulos de recursos e métricas. As ilustrações mostram algumas delas:

Imagens que mostram várias séries temporais de uma métrica

O Cloud Monitoring não registra série temporal “vazias”. No exemplo de buckets do Cloud Storage, se você não estiver usando um bucket específico ou nunca chamar um método de API específico, nenhum dado será coletado para esse rótulo e nenhuma série temporal o mencionará. Isso significa que, se o projeto não tiver dados para uma determinada métrica, você nunca verá o tipo de métrica.

Os tipos de métrica não indicam quais tipos de recursos monitorados são encontrados na série temporal das métricas. Para o Cloud Storage, há apenas um tipo de recurso monitorado: gcs_bucket. Alguns tipos de métricas são combinados com mais de um recurso monitorado.

Exemplo ativo: se você tiver um projeto do Google Cloud, teste o widget das APIs Explorer, localizado na página de referência do método timeSeries.list na API Monitoring.

  1. Abra a página de referência do timeSeries.list.

  2. No painel Testar este método, digite o seguinte:

    • name: projects/PROJECT_ID Substitua PROJECT_ID pelo ID do projeto do Google Cloud.
    • filter: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time: insira o horário de início e verifique se ele é 20 minutos anterior ao horário de término.
    • interval.end_time: insira o horário de término.

Se a solicitação for bem-sucedida, ela retornará os dados da série temporal que correspondem à solicitação. Ele será semelhante ao seguinte snippet:

{
  "timeSeries": [
    {
      "metric": {
        "labels": {
          "severity": "INFO",
          "log": "compute.googleapis.com/activity_log"
        },
        "type": "logging.googleapis.com/log_entry_count"
      },
      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "0",
          "zone": "us-central1",
          "project_id": "your-project-id"
        }
      },
      "metricKind": "DELTA",
      "valueType": "INT64",
      "points": [
        {
        "interval": {
            "startTime": "2024-03-29T13:53:00Z",
            "endTime": "2024-03-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

Para mais informações sobre como usar o widget do APIs Explorer, incluindo solução de problemas, consulte APIs Explorer.

Cardinalidade: séries temporais e rótulos

Cada série temporal está associada a um par específico de tipos de recurso monitorado e métrica. Cada um dos tipos Métrica e recurso monitorado fornece alguns rótulos. No Cloud Monitoring, o número de combinações exclusivas de valores do conjunto de rótulos é a cardinalidade do tipo de métrica ou de recurso monitorado. Esses valores são chamados de cardinalidade da métrica e cardinalidade do recurso e determinam quantas série temporal possíveis, a cardinalidade total, podem ser geradas.

Métrica, recurso e cardinalidade total

Suponha que você tenha um tipo de métrica que especifica dois rótulos, color e zone. A cardinalidade da métrica depende do número de valores possíveis que esses rótulos têm:

  • Se houver apenas três cores possíveis, "vermelho", "verde" e "azul", o rótulo color poderá ter até três valores distintos.
  • Se houver apenas duas zonas possíveis, "leste" e "oeste", o rótulo zone poderá ter até dois valores distintos.

A cardinalidade dessa métrica é 6 (3×2). Se houver 1.000 valores possíveis para o rótulo color e se todas as cores puderem aparecer em todas as zonas, a cardinalidade métrica será de 2.000 (1.000×2). O mesmo cálculo será aplicado se os rótulos estiverem em um tipo de recurso monitorado, e não em um tipo de métrica.

Esse valor de cardinalidade é o máximo com base no número de combinações de possíveis valores de rótulo. O valor real real pode ser significativamente menor quando todas as combinações de valores de rótulo não ocorrem de fato. Por exemplo, se cada cor aparecer em apenas uma zona, não em ambas, o número máximo de série temporal que você verá no sistema em execução será 1.000. No entanto, a utilidade da cardinalidade efetiva depende dos motivos pelos motivos para determinadas combinações não aparecerem e se elas podem aparecer no futuro.

A cardinalidade depende dos valores que qualquer rótulo pode ter.

Quando os dados de série temporal são gravados, eles são classificados por tipo de métrica e de recurso monitorado. Para qualquer par de tipos de métrica e recurso, a cardinalidade total é o produto da cardinalidade da métrica e do recurso. Se você tiver uma métrica com cardinalidade de 1.000 e um recurso com cardinalidade de 100, e se todos os valores de rótulo aparecerem, você terá 100.000 série temporal (1.000 × 100).

Ao projetar suas próprias métricas, garanta que o conjunto de valores possíveis para qualquer rótulo esteja restrito. Um pequeno conjunto de valores discretos (como "vermelho", "verde" e "azul") é a abordagem preferida. Se, por exemplo, você usar valores RGB de 8 bits para um rótulo color, poderá ter mais de 16 milhões de valores diferentes. Não use valores de alta resolução, como carimbos de data/hora, qualquer tipo de identificador exclusivo, IDs de usuários, endereços IP, URLs não parametrizados e assim por diante, para rótulos de métricas.

Desempenho e cardinalidade da consulta

Quando você faz uma consulta de dados, o volume de dados solicitado é o maior fator no desempenho da consulta: uma consulta para uma hora de dados geralmente é mais rápida do que a mesma consulta em seis meses. No entanto, o volume de dados retornado por uma solicitação também é sensível ao número de série temporal em uma solicitação. Uma consulta recuperando dois meses de dados para uma métrica de baixa cardinalidade provavelmente será mais rápida do que outra consulta que recupera dois meses de dados para uma métrica de cardinalidade muito alta, devido à quantidade de dados que estão sendo recuperados.

A cardinalidade depende principalmente do número de valores que os rótulos podem ter, não do número de rótulos. Em geral, você não tem controle sobre a cardinalidade dos recursos, como quando o número de pods ou VMs muda com base nas necessidades de negócios. No entanto, ao ingerir métricas no Cloud Monitoring, em vez de usar métricas do sistema, você geralmente tem algum controle sobre a cardinalidade da métrica. Por exemplo, com métricas personalizadas definidas pelo usuário, você determina os rótulos e os possíveis valores para eles. Se você estiver ingerindo métricas do Prometheus, use a reidentificação para modificar o conjunto de rótulos e descartar série temporal que você não quer ingerir.

Use a página Gerenciamento de métricas do Cloud Monitoring para identificar métricas que podem ter problemas de cardinalidade. Para visualizar a página Gerenciamento de métricas, faça o seguinte:

  1. No console do Google Cloud, acesse a página  Gerenciamento de métricas:

    Acesse Gerenciamento de métricas

    Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoramento.

  2. Na barra de ferramentas, selecione a janela de tempo. Por padrão, a página Gerenciamento de métricas exibe informações sobre as métricas coletadas no dia anterior.

Para mais informações sobre a página Gerenciamento de métricas, consulte Ver e gerenciar o uso de métricas.

Para informações técnicas sobre como o Cloud Monitoring armazena e recupera dados de série temporal, consulte Monarch: banco de dados de série temporal na memória em escala planetária do Google.

Para informações sobre limites de métricas definidas pelo usuário no Cloud Monitoring, consulte Métricas definidas pelo usuário.