Componentes do modelo de métricas

O modelo do Cloud Monitoring para dados de monitorização consiste em três conceitos principais:

  • Tipos de recursos monitorizados
  • Tipos de métricas
  • Intervalos temporais

O documento O modelo de métricas descreve estes conceitos do Cloud Monitoring em termos gerais. Se estes conceitos forem novos para si, leia primeiro essa página.

Esta página descreve os tipos de métricas, os recursos monitorizados e as séries cronológicas, juntamente com alguns conceitos relacionados, de forma mais detalhada. Estes conceitos estão na base de todas as métricas de monitorização.

Deve compreender as informações nesta página se quiser fazer qualquer uma das seguintes ações:

Para ver mais detalhes sobre estes conceitos e como se relacionam com a API Cloud Monitoring, consulte o artigo Estrutura das séries cronológicas, especialmente se planeia usar a API Monitoring ou métricas personalizadas.

Informações sobre etiquetas

Os tipos de recursos monitorizados e os tipos de métricas suportam etiquetas, que permitem classificar os dados durante a análise. Por exemplo:

  • Um tipo de recurso monitorizado para uma máquina virtual pode incluir etiquetas para a localização da máquina e o ID do projeto associado à máquina. Quando são registadas informações sobre o recurso monitorizado, as informações incluem os valores das etiquetas. Um recurso monitorizado também pode ter etiquetas de metadados fornecidas pelo sistema ou pelo utilizador, além das etiquetas definidas para o tipo de recurso monitorizado.
  • Um tipo de métrica que contabiliza pedidos de API pode ter etiquetas para registar o nome do método invocado e o estado do pedido.

A utilização de etiquetas é abordada mais detalhadamente em Etiquetas.

Tipos de recursos monitorizados

Um recurso monitorizado é um recurso a partir do qual são capturados dados de métricas. O Cloud Monitoring suporta aproximadamente 270 tipos de recursos monitorizados.

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

Cada tipo de recurso monitorizado é descrito formalmente numa estrutura de dados denominada descritor de recurso monitorizado. Para mais informações, consulte o artigo Descritores de recursos monitorizados.

Cada um dos tipos de recursos monitorizados suportados tem uma entrada na lista de recursos monitorizados. As entradas na lista são criadas a partir dos descritores de recursos monitorizados. Esta secção descreve as informações captadas num descritor de recurso monitorizado e mostra como são apresentadas na lista.

Um tipo de recurso monitorizado de exemplo

A imagem seguinte mostra a entrada na lista para um contentor do Cloud Storage:

Ficha do contentor do Cloud Storage.

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

  • Tipo: o cabeçalho na entrada indica o tipo de recurso monitorizado; gcs_bucket no exemplo.
  • Nome a apresentar: uma breve descrição do recurso monitorizado.
  • Descrição: uma descrição mais longa do recurso monitorizado.
  • Etiquetas: um conjunto de dimensões para classificar dados. Para mais informações, consulte o artigo Etiquetas.

Tipos de métricas

Um tipo de métrica descreve as medições que podem ser recolhidas a partir de um recurso monitorizado. Um tipo de métrica inclui uma descrição do que está a ser medido e como as medições são interpretadas. O Cloud Monitoring suporta aproximadamente 6500 tipos de métricas e permite-lhe definir novos tipos.

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

Cada tipo de métrica é descrito formalmente numa estrutura de dados denominada descritor de métricas. Para mais informações, consulte o artigo Descritores de métricas.

Cada um dos tipos de métricas incorporados tem uma entrada nas páginas da lista de métricas. As entradas nestas tabelas são criadas a partir dos descritores de métricas. Esta secção descreve as informações captadas num tipo de métrica e mostra como são apresentadas no material de referência.

Um tipo de métrica de amostra

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

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

Os tipos de métricas são apresentados numa tabela, e o cabeçalho da tabela explica o esquema das informações. Esta secção usa uma entrada como exemplo, mas todas as tabelas usam o mesmo formato.

A entrada da tabela do Cloud Storage de exemplo dá-lhe as seguintes informações sobre um tipo de métrica:

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

    O prefixo storage.googleapis.com funciona como um espaço de nomes para o Cloud Storage. Todos os tipos de métricas associados a um determinado tipo de recurso monitorizado usam o mesmo espaço de nomes.

    Os espaços de nomes são omitidos das entradas nas tabelas.

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

  • Fase de lançamento: um bloco colorido que indica a fase de lançamento do tipo de métrica com um valor como alfa, beta e GA.

  • Nome a apresentar: uma string breve que descreve o tipo de métrica, "Número de pedidos" no exemplo.

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

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

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

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

  • Recursos monitorizados: os recursos monitorizados para os quais este tipo de métrica está disponível. Os valores aqui são os mesmos que os descritos em Tipos de recursos monitorizados.

  • Descrição: informações mais detalhadas sobre o que é gravado e como. Definido em itálico para o distinguir das etiquetas.

  • Etiquetas: um conjunto de dimensões para classificar dados. Para mais informações, consulte o artigo Etiquetas.

Quando acede aos dados de monitorização através da API Cloud Monitoring, inclui um Google Cloud projeto na chamada API. Só pode obter os dados visíveis para esse Google Cloud projeto. Por exemplo, se pedir os dados do seu projeto para o tipo de métrica storage.googleapis.com/api/request_count, vê as contagens da API apenas para os contentores do Cloud Storage no seu projeto. Se o seu projeto não estiver a usar contentores do Cloud Storage, não são devolvidos dados de métricas.

Tipos de métricas integradas

Os tipos de métricas incorporadas são definidos pelos Google Cloud serviços, incluindo o Cloud Monitoring. Estes tipos de métricas descrevem medições padrão para uma vasta gama de infraestruturas comuns e estão disponíveis para qualquer pessoa usar.

A lista de métricas mostra o conjunto completo de tipos de métricas incorporadas. As métricas apresentadas na página Lista de métricas externas são um subconjunto especial de métricas incorporadas definidas pelo Cloud Monitoring em parceria com projetos de código aberto ou fornecedores externos. Normalmente, estas métricas têm o prefixo external.googleapis.com.

Métricas personalizadas

Quando cria a sua aplicação, pode ter determinadas propriedades que quer medir, coisas para as quais não existem métricas incorporadas no Cloud Monitoring. Com o Cloud Monitoring, pode definir os seus próprios tipos de métricas ou importar tipos de métricas de origens externas. Estes tipos de métricas são denominados métricas personalizadas. Se uma métrica tiver o prefixo custom.googleapis.com ou prometheus.googleapis.com, é uma métrica personalizada. As últimas métricas são normalmente provenientes do Google Cloud Managed Service for Prometheus.

Por exemplo, se quiser acompanhar o número de widgets vendidos pelas suas lojas, tem de usar uma métrica personalizada. Para mais informações, consulte o artigo Vista geral das métricas definidas pelo utilizador.

Etiquetas

Uma etiqueta é um par de chave-valor que pode ser usado para fornecer informações sobre um valor de dados.

Etiquetas de métricas e recursos monitorizados

As definições dos tipos de métricas e de recursos monitorizados incluem etiquetas. As etiquetas são classificadores dos dados que estão a ser recolhidos. Ajudam a categorizar os dados para uma análise mais detalhada. Por exemplo:

  • O tipo de métrica do Cloud Storage storage.googleapis.com/api/request_count tem duas etiquetas, response_code e method.
  • O tipo de recurso monitorizado do Cloud Storage gcs_bucket tem três etiquetas: project_id, bucket_name e location. As etiquetas identificam instâncias específicas do tipo de recurso.

Por conseguinte, todos os dados recolhidos para pedidos de API de um contentor do Cloud Storage são classificados pelo método que foi chamado, o código de resposta da chamada, o nome, a localização e o projeto do contentor envolvido. O conjunto de etiquetas varia consoante a métrica ou o tipo de recurso monitorizado. As etiquetas disponíveis estão documentadas nas páginas Lista de métricas e Lista de recursos monitorizados.

Ao acompanhar o código de resposta, o nome do método e a localização ao contabilizar as chamadas API, pode obter o número de chamadas para um método API específico, o número de chamadas com falhas para qualquer método ou o número de chamadas com falhas para um método específico numa localização específica.

O número de etiquetas e o número de valores que cada uma pode assumir é denominado cardinalidade. A cardinalidade é o número de intervalos temporais possíveis que podem ser recolhidos para um par de tipos de métricas e recursos monitorizados: existe um intervalo temporal para cada combinação de valores das respetivas etiquetas. Para mais informações, consulte o artigo Cardinalidade: séries cronológicas e etiquetas.

Etiquetas de metadados de recursos

Além das etiquetas definidas nos tipos de métricas e recursos monitorizados, o Monitoring recolhe internamente informações adicionais sobre os recursos monitorizados e armazena estas informações em etiquetas de metadados do sistema. Estas etiquetas de metadados do sistema estão disponíveis para os utilizadores como valores só de leitura. Alguns recursos também permitem que os utilizadores criem as suas próprias etiquetas de metadados de recursos quando configuram recursos como instâncias de VMs na Google Cloud consola.

As etiquetas de metadados do sistema e do utilizador são denominadas coletivamente etiquetas de metadados de recursos. Pode usar estas etiquetas como as etiquetas definidas nos tipos de métricas e de recursos monitorizados nos filtros de séries cronológicas.

As etiquetas de metadados de recursos só aparecem no resultado da consulta se as agregar explicitamente.

Para mais informações sobre a filtragem, consulte o artigo Monitorização de filtros.

Intervalos temporais: dados de um recurso monitorizado

Esta secção aborda o que são os dados de monitorização e como são organizados em séries cronológicas. É aqui que os componentes conceptuais do modelo de métricas se tornam artefactos concretos.

O Cloud Monitoring armazena medições regulares ao longo do tempo para pares de tipos de métricas e recursos monitorizados. As medições são recolhidas em séries cronológicas e cada série cronológica contém os seguintes itens:

  • O nome do tipo de métrica ao qual a série cronológica pertence e uma combinação de valores para as etiquetas da métrica.

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

  • O recurso monitorizado que é a origem dos dados de séries cronológicas e uma combinação de valores para as etiquetas do recurso.

É criada uma série cronológica para cada combinação de métricas e etiquetas de recursos que gera dados.

Exemplo estilizado: o tipo de métrica storage.googleapis.com/api/request_count pode ter muitas séries cronológicas para os contentores do Cloud Storage do seu projeto. A ilustração seguinte mostra algumas séries cronológicas possíveis.

Na ilustração, o valor bucket: xxxx representa o valor da etiqueta bucket_name no tipo de recurso monitorizado, e response_code e method são etiquetas no tipo de métrica. Existe um intervalo temporal para cada combinação de valores nas etiquetas de recursos e métricas. As ilustrações mostram algumas delas:

Imagens que mostram várias séries cronológicas numa métrica

O Cloud Monitoring não regista séries cronológicas "vazias". No exemplo dos contentores do Cloud Storage, se não estiver a usar um contentor específico ou nunca chamar um método de API específico, não são recolhidos dados para essa etiqueta, e nenhuma série cronológica a menciona. Isto significa que, se o seu projeto não tiver dados para uma métrica específica, nunca vê o tipo de métrica.

Os tipos de métricas não indicam que tipos de recursos monitorizados são encontrados nas séries cronológicas das métricas. Para o Cloud Storage, existe apenas um tipo de recurso monitorizado: gcs_bucket. Alguns tipos de métricas são associados a mais de um recurso monitorizado.

Exemplo em direto: se tiver um Google Cloud projeto, pode experimentar o widget do Explorador de APIs, localizado na página de referência do método timeSeries.list na API Monitoring.

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

  2. No painel com a etiqueta Experimentar este método, introduza o seguinte:

    • name: projects/PROJECT_ID substitua PROJECT_ID pelo ID do seu projeto Google Cloud .
    • filter: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
    • interval.start_time: introduza a hora de início e certifique-se de que é 20 minutos anterior à hora de fim.
    • interval.end_time: introduza a hora de fim.

Se o pedido for bem-sucedido, devolve os dados de séries cronológicas que correspondem ao pedido. Terá o seguinte aspeto:

{
  "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 a utilização do widget do Explorador de APIs, incluindo a resolução de problemas, consulte o Explorador de APIs.

Cardinalidade: intervalos temporais e etiquetas

Cada série cronológica está associada a um par específico de tipos de métricas e de recursos monitorizados. Os tipos de métricas e recursos monitorizados fornecem cada um um determinado número de etiquetas. No Cloud Monitoring, o número de combinações únicas de valores para o conjunto de etiquetas é a cardinalidade do tipo de métrica ou do tipo de recurso monitorizado. Estes valores são denominados cardinalidade das métricas e cardinalidade dos recursos e determinam quantas séries cronológicas possíveis, a cardinalidade total, podem ser geradas.

Cardinalidade da métrica, do recurso e total

Suponhamos que tem um tipo de métrica que especifica duas etiquetas: color e zone. A cardinalidade das métricas depende do número de valores possíveis que essas etiquetas têm:

  • Se existirem apenas três cores possíveis, "vermelho", "verde" e "azul", a etiqueta color pode ter até três valores distintos.
  • Se existirem apenas duas zonas possíveis, "east" e "west", a etiqueta zone pode ter até dois valores distintos.

A cardinalidade desta métrica é 6 (3 × 2). Se existirem 1000 valores possíveis para a etiqueta color e se cada cor puder aparecer em cada zona, a cardinalidade da métrica é 2000 (1000 × 2). O mesmo cálculo aplica-se se estas forem etiquetas num tipo de recurso monitorizado e não num tipo de métrica.

Este valor de cardinalidade é um máximo, com base no número de combinações de valores de etiquetas possíveis. O valor efetivo real pode ser significativamente inferior quando todas as combinações de valores de etiquetas não ocorrem efetivamente. Por exemplo, se cada cor aparecer apenas numa zona e não nas duas, o número máximo de séries cronológicas que vê no sistema em execução é 1000. No entanto, a utilidade da cardinalidade eficaz depende dos motivos pelos quais determinadas combinações não aparecem e se podem aparecer no futuro.

A cardinalidade depende dos valores que quaisquer etiquetas podem ter.

Quando os dados de séries cronológicas são escritos, são classificados por métrica e tipos de recursos monitorizados. Para qualquer par de tipos de métricas e recursos, a cardinalidade total é o produto da cardinalidade da métrica e da cardinalidade do recurso. Se tiver uma métrica com uma cardinalidade de 1000 e um recurso com uma cardinalidade de 100, e se todos os valores das etiquetas aparecerem, tem 100 000 intervalos temporais (1000 × 100).

Ao criar as suas próprias métricas, certifique-se de que o conjunto de valores possíveis para qualquer etiqueta está restrito. Um pequeno conjunto de valores discretos (como "vermelho", "verde" e "azul") é a abordagem preferencial. Por exemplo, se usar valores RGB de 8 bits para uma etiqueta color, pode ter mais de 16 milhões de valores diferentes. Não use valores de alta resolução, como datas/horas, qualquer tipo de identificador exclusivo, IDs de utilizadores, endereços IP, URLs sem parâmetros, etc., para etiquetas de métricas.

Desempenho e cardinalidade das consultas

Quando envia uma consulta de dados, o volume de dados que pede é o fator mais importante no desempenho da consulta: uma consulta de uma hora de dados é geralmente mais rápida do que a mesma consulta que abrange seis meses. No entanto, o volume de dados devolvidos por um pedido também é sensível ao número de séries cronológicas num pedido. Uma consulta que obtenha dois meses de dados para uma métrica de baixa cardinalidade tem provavelmente uma velocidade superior à de outra consulta que obtenha dois meses de dados para uma métrica de cardinalidade muito elevada, devido à quantidade de dados que está a ser obtida.

A cardinalidade depende principalmente do número de valores que as suas etiquetas podem ter e não do número de etiquetas. Em geral, não tem controlo sobre a cardinalidade dos recursos, uma vez que o número de pods ou VMs muda com base nas necessidades da empresa. No entanto, quando introduz métricas no Cloud Monitoring, em vez de usar métricas do sistema, tem frequentemente algum controlo sobre a cardinalidade das métricas. Por exemplo, com as métricas personalizadas definidas pelo utilizador, determina as etiquetas e os valores possíveis para as mesmas. Se estiver a carregar métricas do Prometheus, pode usar a redefinição de etiquetas para modificar o conjunto de etiquetas e eliminar séries cronológicas que não quer carregar.

Pode usar a página Gestão de métricas do Cloud Monitoring para identificar métricas que possam ter problemas de cardinalidade. Para ver a página Gestão de métricas, faça o seguinte:

  1. Na Google Cloud consola, aceda à página  Gestão de métricas:

    Aceda a Gestão de métricas

    Se usar a barra de pesquisa para encontrar esta página, selecione o resultado cujo subtítulo é Monitorização.

  2. Na barra de ferramentas, selecione o intervalo de tempo. Por predefinição, a página Gestão de métricas apresenta informações sobre as métricas recolhidas no dia anterior.

Para mais informações sobre a página Gestão de métricas, consulte o artigo Veja e faça a gestão da utilização de métricas.

Para obter informações técnicas sobre a forma como o Cloud Monitoring armazena e obtém dados de séries cronológicas, consulte o artigo Monarch: Google's Planet-Scale In-Memory Time Series Database.

Para obter informações sobre os limites das métricas definidas pelo utilizador no Cloud Monitoring, consulte o artigo Métricas definidas pelo utilizador.