Neste documento, você terá 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 de seus aplicativos e de outros serviços do Google Cloud. O Cloud Monitoring coleta e armazena automaticamente as informações de desempenho da 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 aplicativos de terceiros.
Os serviços de alerta, teste e visualização fornecidos pelo Cloud Monitoring ajudam a responder perguntas importantes como as seguintes:
- 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 dão suporte ao Google Cloud CLI ou
Terraform. As páginas de referência da API Cloud Monitoring, como a página
alertPolicies.list
,
permitem testar chamadas de API diretamente da página de referência.
Serviços do Cloud Monitoring
O Cloud Monitoring fornece diferentes serviços que podem ser usados para entender a integridade e o desempenho de 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 desempenho atender aos critérios definidos, crie uma política de alertas. A política de alertas inclui a lista de pessoas ou grupos que receberão 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, é possível criar uma política de alertas para ser notificado quando a utilização da CPU de uma VM exceder 80%.
Cada notificação inclui informações relevantes sobre uma falha e um link para um incidente. Um incidente é um registro persistente que armazena informações que podem ser usadas para solucionar problemas da falha. Normalmente, um registro lista o status do incidente, links para registros, um gráfico dos dados de métricas gravados, 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á ver um painel que lista os 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 alertas são pré-configuradas. Basta especificar a lista de pessoas ou grupos que serão notificados.
É possível criar e gerenciar políticas de alertas usando o console do 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 sondar endpoints HTTP, HTTPS e TCP em busca de capacidade de resposta 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 corrompidos para rastrear uma página da Web e notificar você quando links corrompidos são detectados.
É possível criar e gerenciar monitores sintéticos usando o console do Google Cloud, a API Cloud Monitoring, a Google Cloud CLI ou o Terraform.
Visualização de dados
Para visualizar tendências, identificar outliers e conferir outros detalhes sobre os dados, use os serviços de painel e de gráfico:
O serviço de painel cria automaticamente um painel gerenciado pelo Google Cloud quando você adiciona um recurso ao seu projeto do Google Cloud. Por exemplo, um painel é gerado quando você cria uma instância do Compute Engine, uma política de alertas ou um monitor sintético. Use-os para conferir informações de desempenho e configuração, como o uso do disco ou o endereço IP, além de visualizar eventos.
Para controlar quais dados você visualiza e o formato de exibição para esses dados, 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 exibir gráficos, tabelas, registros e grupos de erros, além de textos, políticas e incidentes de alerta. Também é possível compartilhar painéis personalizados com pessoas ou grupos na sua organização e configurá-los para exibir 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 os dados atuais com os anteriores, exibir outliers e percentis e exibir várias métricas. Também é possível salvar os 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 do sistema geradas pelos serviços do Google Cloud. Essas métricas fornecem informações sobre como um serviço está operando.
- Métricas do sistema e do aplicativo que o Agente de operações coleta sobre recursos do sistema e aplicativos em execução nas instâncias do Compute Engine. É possível configurar o Agente de operações para coletar métricas de plug-ins de terceiros, como servidores da Web Apache ou Nginx, ou bancos de dados MongoDB ou PostgreSQL.
Métricas definidas pelo usuário que são criadas usando a API Cloud Monitoring ou uma biblioteca, como OpenTelemetry.
[Métricas externas][metrics-external] que são definidas por algumas bibliotecas de código aberto ou provedores terceirizados.
Métricas do Prometheus coletadas pelo Google Cloud Managed Service para Prometheus ou usando o Agente de operações e o Receptor do Prometheus ou o Receptor OLTP.
- 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 dos erros que o serviço detecta e o número total de entradas de registro recebidas pelo projeto do Google Cloud. Também é possível definir métricas com base em registros.
Linguagens de consulta
Ao criar uma política de alertas ou um gráfico, forneça uma consulta que descreva os dados que você quer monitorar ou traçar:
Console do Google Cloud: é possível criar sua consulta fazendo seleções nos menus ou escrever uma consulta. Os editores de consultas estão disponíveis para a Linguagem de consulta do Prometheus (PromQL, na sigla em inglês) e a Linguagem de consulta do Monitoring (MQL, na sigla em inglês). Os editores de consultas oferecem sugestões e verificações de sintaxe. Também é possível escrever uma expressão de filtro do Monitoring.
API Cloud Monitoring: a API oferece suporte à linguagem de consulta do Prometheus (PromQL), a consultas MQL e a expressões de filtro do Monitoring.
Monitorar sistemas grandes
Nesta seção, descrevemos 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 os recursos como uma coleção em vez de individualmente, crie um grupo de recursos. Um grupo de recursos é uma coleção dinâmica de recursos que atendem a alguns critérios fornecidos por você. Quando você adiciona e remove recursos, como instâncias de VM do Compute Engine ao projeto do Google Cloud, a associação no 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 para vários projetos do Google Cloud e contas da AWS por meio de 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 apenas à série temporal armazenada no projeto do escopo. O projeto do escopo é aquele que você selecionou com o seletor de projetos do console do Google Cloud. O projeto de escopo armazena os alertas, monitores sintéticos, painéis e 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étrica incluem o uso 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.Este é 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 ver uma lista de recursos monitorados, consulte Lista de recursos monitorados.Veja a seguir um exemplo de um 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 umgce_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 tipogce_instance
, os rótulos identificam a instância de VM que está sendo monitorada.
O campo
metric
descreve o que está sendo medido.Veja a seguir um exemplo de um campo
metric
:"metric": { "labels": { "instance_name": "test" }, "type": "compute.googleapis.com/instance/cpu/utilization" },
Para os serviços do Google, o campo
type
especifica o serviço e o que está sendo monitorado. Neste exemplo, o serviço do Compute Engine que mede a utilização da CPU. Quando o campotype
começa comcustom
ouexternal
, 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 doMetricDescriptor
, que é uma estrutura de dados que define os atributos dos dados medidos. OMetricDescriptor
da métricacompute.googleapis.com/instance/cpu/utilization
inclui o rótuloinstance_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
ouDISTRIBUTION
.
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 projeto do Google Cloud contém várias instâncias de VM do Compute Engine, a utilização da CPU em cada uma delas é uma série temporal exclusiva. Veja algumas maneiras de exibir esses dados:
- É possível mostrar a utilização da CPU de cada instância de VM.
- É possível mostrar a utilização da CPU para uma instância de VM específica filtrando 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, em seguida, exibir a utilização média da CPU. A captura de tela a seguir ilustra um gráfico com esta configuração:
Preços
Em geral, as métricas de sistema do Cloud Monitoring são gratuitas, já as métricas de sistemas, agentes ou aplicativos externos não. As métricas faturáveis são cobradas 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 explorar o Cloud Monitoring, consulte o Guia de início rápido para monitorar uma instância do Compute Engine.
- 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.
Para informações sobre o modelo de dados do Cloud Monitoring, consulte Métricas, série temporal e recursos.
Para mais informações sobre a API Cloud Monitoring, consulte APIs e referência.
Consulte as listas de métricas e recursos monitorados em Lista de métricas e Lista de recursos monitorados.