Visão geral do Cloud Monitoring

Este documento fornece uma visão geral dos serviços oferecidos pelo Cloud Monitoring. Esses serviços podem ajudar você a entender o comportamento, a integridade e o desempenho dos seus aplicativos e de outros serviços do Google Cloud . O Cloud Monitoring coleta e armazena automaticamente informações de desempenho para a maioria dos serviços do Google Cloud . É possível coletar métricas do Prometheus usando o Google Cloud Managed Service para Prometheus. Se você instalar o Agente de operações nas máquinas virtuais (VMs) do Compute Engine, será possível coletar métricas e registros dos seus aplicativos e de terceiros.

Os serviços de alerta, teste e visualização fornecidos pelo Cloud Monitoring ajudam a responder a perguntas importantes, como:

  • Qual é a carga do meu serviço?
  • Meu site está respondendo corretamente?
  • Meu serviço tem um bom desempenho?

O Cloud Monitoring oferece suporte ao console do Google Cloud e à API para a maioria dos serviços. Alguns serviços também oferecem suporte à Google Cloud CLI ou ao Terraform. As páginas de referência da API Cloud Monitoring, como a página alertPolicies.list, permitem que você teste as chamadas de API diretamente da página de referência.

Serviços do Cloud Monitoring

O Cloud Monitoring oferece diferentes serviços que você pode usar para entender a integridade e o desempenho dos seus aplicativos e dos outros serviços do Google Cloud que você usa.

Alertas e notificações

Para receber uma notificação quando o valor de uma métrica de performance atender aos critérios definidos, crie uma política de alertas. A política de alertas inclui a lista de pessoas ou grupos que vão receber notificações. O Monitoring é compatível com canais de notificação comuns, incluindo e-mail, Cloud Mobile App e serviços como o PagerDuty ou o Slack. Por exemplo, você pode criar uma política de alertas para receber uma notificação quando a utilização da CPU de uma VM ultrapassar 80%.

Cada notificação inclui informações relevantes sobre uma falha e um link para um incidente. Um incidente é um registro permanente que armazena informações que podem ser usadas para resolver a falha. Normalmente, um registro lista o status do incidente, links para registros, um gráfico dos dados de métrica registrados, rótulos e duração.

O serviço de alertas é integrado a muitos serviços do Google Cloud . Quando essas integrações existirem, você poderá encontrar um painel que lista alertas recomendados ou um botão em um gráfico que permite criar uma política de alertas. Em ambos os casos, as políticas de alerta são pré-configuradas. Você só precisa especificar a lista de pessoas ou grupos a serem notificados.

É possível criar e gerenciar políticas de alertas usando o console Google Cloud , a API Cloud Monitoring, a Google Cloud CLI ou o Terraform.

Monitoramento e validação proativos

Para testar a disponibilidade, a consistência e o desempenho de serviços, aplicativos, páginas da Web e APIs, crie monitores sintéticos. Por exemplo, é possível verificar a capacidade de resposta de endpoints HTTP, HTTPS e TCP com verificações de tempo de atividade e receber notificações quando um endpoint não responder. Também é possível criar um verificador de links quebrados para rastrear uma página da Web e notificar você quando links quebrados forem detectados.

É possível criar e gerenciar monitores sintéticos usando o console Google Cloud , a API Cloud Monitoring, a Google Cloud CLI ou o Terraform.

Visualização de dados

Para visualizar tendências, identificar valores atípicos e conferir outros detalhes sobre seus dados, use os serviços de painel e gráficos:

  • O serviço de painel cria automaticamente um Google Cloud-gerenciado painel quando você adiciona um recurso ao seu projeto do Google Cloud . Por exemplo, um painel é criado quando você cria uma instância do Compute Engine, uma política de alerta ou um monitor sintético. É possível usar esses painéis para conferir informações de desempenho e configuração, como o uso do disco ou o endereço IP, e acessar eventos.

    Para controlar quais dados você visualiza e o formato de exibição deles, crie um painel personalizado. Por exemplo, é possível importar um painel do Grafana ou instalar um painel usando um modelo. Os painéis personalizados podem mostrar gráficos, tabelas, registros e grupos de erros, políticas de alerta e incidentes, além de texto. Também é possível compartilhar painéis personalizados com pessoas ou grupos na sua organização e configurar esses painéis para mostrar eventos.

    É possível criar e gerenciar painéis usando o console do Google Cloud ou a API.

  • O serviço de gráficos, Metrics Explorer, permite visualizar e analisar rapidamente dados de séries temporais. As configurações do gráfico permitem comparar dados atuais com dados anteriores, mostrar outliers e percentis e exibir várias métricas. Também é possível salvar gráficos em um painel personalizado.

Coleta e armazenamento de dados

O Cloud Monitoring coleta e armazena os seguintes tipos de dados de métricas:

  • Métricas com base em registros que registram informações numéricas sobre os registros gravados no Cloud Logging. As métricas com base em registros definidas pelo Google incluem contagens de erros que o serviço detecta e o número total de entradas de registro recebidas pelo seu projeto do Google Cloud . Também é possível definir métricas com base em registros.

Idiomas da consulta

Ao criar uma política de alertas ou um gráfico, é necessário fornecer uma consulta que descreva os dados que você quer monitorar ou representar em um gráfico:

  • Console do Google Cloud : você pode criar sua consulta fazendo seleções em menus ou escrevendo uma consulta. Os editores de consulta estão disponíveis para a Linguagem de consulta do Prometheus (PromQL) e a Linguagem de consulta do Monitoring (MQL). Os editores de consulta fornecem verificações e sugestões de sintaxe. Também é possível escrever uma expressão de filtro de monitoramento.

  • API Cloud Monitoring: a API oferece suporte à linguagem de consulta Prometheus (PromQL), consultas MQL e expressões de filtro do Monitoring.

Monitorar sistemas grandes

Esta seção descreve como gerenciar recursos como uma coleção e como monitorar métricas armazenadas em vários projetos do Google Cloud .

Gerenciar recursos como uma coleção

Para gerenciar seus recursos como uma coleção em vez de individualmente, crie um grupo de recursos. Um grupo de recursos é um conjunto dinâmico de recursos que atende a alguns critérios que você fornece. À medida que você adiciona e remove recursos, por exemplo, ao adicionar instâncias de VM do Compute Engine ao seu Google Cloud projeto, a associação ao grupo é alterada automaticamente. Veja a seguir exemplos de grupos de recursos:

  • Instâncias do Compute Engine com nomes que começam com a string prod-.
  • Recursos com a tag test-cluster.
  • Instâncias do Amazon EC2 na região A ou região B.

Depois de definir um grupo de recursos, é possível monitorar o grupo como se fosse um único recurso. Por exemplo, é possível configurar uma verificação de tempo de atividade para monitorar um grupo de recursos. Para gráficos e políticas de alertas, também é possível filtrar com base no nome do grupo.

Para mais informações, consulte Configurar grupos de recursos.

Monitorar métricas de vários projetos do Google Cloud

Para visualizar e monitorar os dados de série temporal de vários projetos do Google Cloud e contas da AWS em uma única interface, configure um escopo de métricas de vários projetos.

Por padrão, as páginas do Cloud Monitoring no console do Google Cloud fornecem acesso somente à série temporal armazenada no projeto de escopo. O projeto de escopo é o projeto que você selecionou com o seletor de projetos do console do Google Cloud . O projeto de escopo armazena os alertas, os monitores sintéticos, os painéis e os grupos de monitoramento que você configura.

O projeto de escopo também hospeda um escopo de métricas. O escopo de métricas define os projetos e as contas com métricas visíveis para o projeto de escopo. É possível configurar o escopo das métricas para incluir dados de série temporal de outros projetos do Google Cloud e de contas da AWS. Para informações sobre como modificar um escopo de métricas, consulte Configurar um escopo de métricas para vários projetos.

Modelo de dados do Cloud Monitoring

Nesta seção, apresentamos o modelo de dados do Cloud Monitoring:

  • Um tipo de métrica descreve algo que é medido. Exemplos de tipos de métricas incluem a utilização da CPU de uma VM e a porcentagem de um disco usado.

  • Uma série temporal é uma estrutura de dados que contém medições com carimbo de data/hora de uma métrica e informações sobre a origem e o significado dessas medidas.

Veja alguns detalhes sobre o que uma série temporal contém:

  • A matriz points contém as medidas com carimbo de data/hora.

    Confira a seguir um exemplo de uma matriz points com dois valores:

      "points": [
        {
          "interval": {
            "startTime": "2020-07-27T20:20:21.597143Z",
            "endTime": "2020-07-27T20:20:21.597143Z"
          },
          "value": {
            "doubleValue": 0.473005
          }
        },
        {
          "interval": {
            "startTime": "2020-07-27T20:19:21.597239Z",
            "endTime": "2020-07-27T20:19:21.597239Z"
          },
          "value": {
            "doubleValue": 0.473025
          }
        },
      ],
    

    Para entender o significado de um valor, consulte os outros dados incluídos na série temporal e as definições desses dados.

  • O campo resource descreve o componente de hardware ou software que está sendo monitorado. No Cloud Monitoring, o componente de hardware ou software é chamado de recurso monitorado. Exemplos de recursos monitorados incluem instâncias do Compute Engine e aplicativos do App Engine. Para uma lista de recursos monitorados, consulte a Lista de recursos monitorados.

    Confira abaixo um exemplo de campo resource:

      "resource": {
        "type": "gce_instance",
        "labels": {
          "instance_id": "2708613220420473591",
          "zone": "us-east1-b",
          "project_id": "sampleproject"
        }
      }
    
    • O campo type lista o recurso monitorado como um gce_instance, que indica que essas medidas são tomadas em uma instância de VM do Compute Engine.

    • O campo labels contém pares de chave-valor que fornecem informações adicionais sobre o recurso monitorado. Para um tipo gce_instance, os rótulos identificam a instância de VM que está sendo monitorada.

  • O campo metric descreve o que está sendo medido.

    Confira abaixo um exemplo de campo metric:

      "metric": {
        "labels": {
          "instance_name": "test"
        },
        "type": "compute.googleapis.com/instance/cpu/utilization"
      },
    
    • Para os serviços do Google Cloud , o campo type especifica o serviço e o que está sendo monitorado. Neste exemplo, o serviço do Compute Engine mede a utilização da CPU. Quando o campo type começa com custom ou external, a métrica é métrica personalizada ou definida por terceiros.
    • O campo labels contém pares de chave-valor que fornecem informações adicionais sobre a medição. Esses rótulos são definidos como parte do MetricDescriptor, que é uma estrutura de dados que define os atributos dos dados medidos. O MetricDescriptor da métrica compute.googleapis.com/instance/cpu/utilization inclui o rótulo instance_name.
  • O campo metricKind descreve a relação entre medições adjacentes em uma série temporal:

    • As métricas GAUGE armazenam o valor da coisa que está sendo medida em um determinado momento, por exemplo, um registro de temperatura por hora.

    • As métricas CUMULATIVE armazenam o valor acumulado daquilo que está sendo medido em um determinado momento. Por exemplo, um odômetro em um veículo.

    • As métricas DELTA armazenam a alteração no valor do que está sendo medido durante um período especificado. Por exemplo, um resumo de ações que mostra os ganhos ou as perdas delas.

  • O campo valueType descreve o tipo de dados da medição: INT64, DOUBLE, BOOL, STRING ou DISTRIBUTION.

O Cloud Monitoring grava uma série temporal para cada combinação de valores de rótulo de métrica e recurso. Você pode usar esses rótulos para agrupar e filtrar séries temporais. Por exemplo, quando um Google Cloud projeto contém várias instâncias de VM do Compute Engine, a utilização da CPU para cada instância de VM é uma série temporal exclusiva. Veja algumas maneiras de exibir esses dados:

  • É possível mostrar a utilização da CPU de todas as instâncias de VM.
  • É possível mostrar a utilização da CPU de uma instância de VM específica ao filtrar a série temporal para um único valor do rótulo instance_id.
  • É possível agrupar pelas instâncias de VM pelo rótulo machine_type e mostrar a utilização média da CPU. A captura de tela a seguir ilustra um gráfico com esta configuração:

    Utilização média da CPU agrupada por tipo de máquina.

Preços

Em geral, as métricas do sistema do Cloud Monitoring são gratuitas, e as métricas de sistemas, agentes ou aplicativos externos não são. As métricas faturáveis são faturadas pelo número de bytes ou de amostras ingeridas.

Para mais informações sobre os preços do Cloud Monitoring, consulte os seguintes documentos:

A seguir

  • Para informações sobre como configurar nosso projeto do Google Cloud para visualizar métricas de vários projetos do Google Cloud e contas da AWS, consulte Visão geral dos escopos de métricas.