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

O modelo de métrica do Cloud Monitoring descreve esses conceitos em termos gerais. Se esses conceitos forem 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ê deve entender as informações nesta 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 da série temporal, especialmente se você planeja usar a 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. Na última contagem, o Cloud Monitoring é compatível com aproximadamente 100 tipos de recursos monitorados.

Os tipos de recursos monitorados incluem tarefas e nós genéricos, tabelas no Cloud Bigtable, componentes de arquitetura no Google Kubernetes Engine, 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 tabela 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

Veja a entrada na lista de um bucket do Cloud Storage:

Listagem para o bucket do Cloud Storage.

Todas as entradas na tabela incluem as informações a seguir:

  • 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. Na última contagem, o Cloud Monitoring é compatível com aproximadamente 1.500 tipos de métricas e permite que você defina 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étricas.

Cada um dos tipos de métrica integrados tem uma entrada na 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 de um tipo de métrica do Cloud Storage:

Um esforço 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.

Só é possível acessar os dados de monitoramento que pertencem ao seu projeto ou espaço de trabalho atual do Google Cloud. Por exemplo, se você solicitar dados do tipo de métrica storage.googleapis.com/api/request_count, verá contagens de API apenas para buckets do Cloud Storage no projeto. Se o projeto não estiver usando buckets do Cloud Storage, você não receberá dados de métricas.

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 external.googleapis.com.

Métricas personalizadas

Ao criar seu aplicativo, talvez você queira avaliar algumas propriedades que não têm métricas integradas. Com o Cloud Monitoring, é possível definir seus próprios tipos de métricas. Esses tipos de métricas são chamados de métricas personalizadas. Se uma métrica tiver um prefixo custom.googleapis.com ou external.googleapis.com/prometheus, ela será uma métrica personalizada. As últimas métricas geralmente vêm do arquivo secundário Stackdriver Prometheus. Para mais informações, consulte Como usar o 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 Como usar métricas personalizadas.

Labels

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. Isso é discutido mais detalhadamente em Cardinalidade: séries temporais 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 configurando 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étricas e recursos que geram dados.

Exemplo estilizado: o tipo de métrica storage.googleapis.com/api/request_count descrito acima pode ter muitas séries temporais para os buckets do Cloud Storage do seu 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 grava séries temporais "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 ele não será mencionado por nenhuma série temporal. 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 em um espaço de trabalho, teste o widget do API Explorer, localizado na página de referência do método timeSeries.list na API Monitoring. O botão TESTAR abaixo oferece os seguintes parâmetros padrão para o método timeSeries.list:

  • nome: projects/[PROJECT_ID]
  • filter: metric.type="logging.googleapis.com/log_entry_count" resource.type="gce_instance"
  • interval.start_time: 2019-11-11T00:00:00Z
  • interval.end_time: 2019-11-11T00:20:00Z
  • fields: timeSeries.metric

Quando for tentar executar este exemplo, você precisa alterar [PROJECT_ID] no campo nome do ID do projeto.

Neste exemplo, pressupomos que você tenha uma instância do Compute Engine executando o agente do Cloud Logging. O tipo de recurso monitorado é gce_instance e o tipo de métrica é logging.googleapis.com/log_entry_count. É possível alterar esses valores se eles não se aplicarem a você.

Ao recuperar dados de série temporal, você precisa especificar os horários de início e término. O período deste exemplo é 11 de novembro de 2019. No entanto, os dados de série temporal são armazenados por seis semanas. Portanto, você provavelmente precisará ajustar a data antes de executar a solicitação.

Para executar a solicitação, clique no botão abaixo, ajuste os parâmetros conforme necessário e clique no botão Executar na parte inferior do painel de widgets.

Faça o teste!

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": "2019-10-29T13:53:00Z",
            "endTime": "2019-10-29T13:54:00Z"
          },
          "value": {
            "int64Value": "0"
          }
        },
        ...
      ]
    },
    ...
  ]
}

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

Cardinalidade: séries temporais e rótulos

Cada série temporal é associada a um par específico de tipos de métricas e recursos monitorados, mas cada par pode ter muitas séries temporais. O número possível de séries temporais é determinado pela cardinalidade do par: o número de rótulos e o número de valores que cada rótulo pode assumir.

Por exemplo, suponha que você tenha um tipo de métrica comum que especifique um rótulo, color, e um tipo de recurso monitorado com outro rótulo, zone. Você recebe uma série temporal para cada combinação de valores zone e color.

O número de valores que um rótulo pode assumir é importante:

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

A cardinalidade depende dos rótulos e dos valores deles.

A cardinalidade dessa métrica é 6 (3×2), embora a métrica possa produzir menos séries temporais. Se, por exemplo, você nunca recebe dados da zona "oeste", então você nunca terá mais de três séries temporais.

A cardinalidade da métrica é um fator crítico no desempenho quando você solicita métricas para um gráfico ou outros usos. Uma cardinalidade maior pode levar a tempos de resposta de consulta mais lentos.

A cardinalidade também precisa ser considerada ao projetar métricas personalizadas, em que você determina o conjunto de rótulos e os valores possíveis. Cada tipo de métrica tem um limite de 10 rótulos, mas também precisa garantir que o conjunto de valores possíveis para qualquer rótulo seja restrito. A abordagem recomendada é ter um pequeno conjunto de valores distintos (como "vermelho", "verde" e "azul"). Valores granulares, como carimbos de data/hora, não devem ser usados. Também há outros limites para métricas personalizadas. Consulte Métricas personalizadas para saber mais.