Neste documento, fornecemos uma visão geral do Cloud Monitoring, que faz parte do pacote de operações do Google Cloud. O Cloud Monitoring é integrado à maioria dos serviços do Google Cloud e coleta e armazena automaticamente informações de desempenho sobre esses serviços. Ele também pode coletar métricas do sistema e de aplicativos de terceiros. As ferramentas de visualização e análise de dados fornecidas pelo Cloud Monitoring ajudam você a responder a 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, e 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.
Este documento é destinado a desenvolvedores e administradores de sistemas que precisam monitorar o desempenho de um serviço ou sistema.
Monitorar a carga em um serviço
Para entender a carga atual em um serviço ou para visualizar os dados de desempenho dele no último mês, use as ferramentas de gráficos e painéis. É possível criar gráficos e monitorar dados de métricas (numéricas) que seu projeto do Google Cloud coleta, incluindo:
Métricas do sistema geradas pelos serviços do Google Cloud. Essas métricas fornecem informações sobre como o serviço está operando. Por exemplo, o Compute Engine informa mais de 25 métricas exclusivas para cada instância de máquina virtual (VM). Para uma lista completa de métricas, consulte Métricas do Google Cloud.
Métricas do sistema e do aplicativo que os agentes do pacote de operações do Google Cloud coletam. Essas métricas fornecem mais informações sobre recursos do sistema e aplicativos executados em instâncias do Compute Engine. Outra opção é configurar o agente 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 gravadas pelo serviço usando a API Cloud Monitoring ou uma biblioteca como a OpenTelemetry.
Métricas com base em registros, que coletam 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 seu 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. Por exemplo, é possível criar uma métrica que conta o número de erros
404 Not Found
para um aplicativo implantado no App Engine.
Para visualizar seus dados para ver tendências, identificar outliers e ver outros detalhes sobre eles, use as seguintes ferramentas:
Painéis do Google Cloud: o Cloud Monitoring cria automaticamente esses painéis com base nos recursos usados pelo projeto do Google Cloud.
Por exemplo, quando um projeto do Google Cloud contém instâncias de VM do Compute Engine, os painéis para essas instâncias de VM e discos são criados automaticamente. Ao usar o painel Instâncias de VM, é possível ver detalhes, como o uso de memória e disco, identificar endereços IP e identificar quais VMs estão descartando pacotes de rede. Esse painel também exibe informações sobre o uso do agente do Cloud Monitoring e fornece sugestões para instrumentação.
Painéis personalizados: você cria ou instala esses painéis. Os painéis personalizados permitem definir quais dados você quer visualizar e como ver esses dados. Por exemplo, é possível exibir dados de métricas, políticas de alertas e registros armazenados no projeto do Google Cloud. É possível exibir dados de série temporal em um gráfico, com um medidor, visão geral ou em formato tabular. Os painéis também são compatíveis com widgets de texto. É possível criar um painel personalizado com a API Dashboards ou com o Console do Google Cloud.
Gráficos: é possível adicionar gráficos a um painel personalizado ou usar o Metrics Explorer, uma ferramenta de gráficos usada para criar rapidamente gráficos e explorar dados de série temporal. É possível salvar gráficos criados com o Metrics Explorer em um painel personalizado.
Ao criar um gráfico, você seleciona os dados de série temporal que deseja visualizar. Por exemplo, é possível configurar um gráfico para exibir dados de instâncias de VM do Compute Engine que estão localizadas na zona us-east-1d.
As configurações do gráfico permitem comparar dados atuais com dados anteriores, exibir valores atípicos e percentuais e exibir várias métricas. Por exemplo, a captura de tela a seguir mostra um gráfico que exibe o número de bytes lidos e gravados por uma única VM:
Para mais informações sobre como visualizar dados de série temporal, consulte Como usar painéis e gráficos.
Monitorar a disponibilidade do site
Para monitorar se um site está respondendo, configure uma verificação de tempo de atividade. Essas verificações sondam periodicamente o serviço de uma maneira que imita como os clientes acessam o serviço e registram o sucesso e a latência da sondagem.
Para visualizar informações sobre suas verificações de tempo de atividade, o Cloud Monitoring fornece um painel que resume o status de cada verificação e, para cada verificação, apresenta um painel com informações detalhadas. A visualização detalhada de uma verificação de tempo de atividade exibe o sucesso ou a falha da resposta e a latência dela, além de detalhes sobre essa verificação:
Para mais informações sobre esse tópico, consulte Como gerenciar verificações de tempo de atividade.
Receber notificações quando um serviço não tiver um bom desempenho
Para receber notificações quando o desempenho de um serviço atender aos critérios definidos por você, crie uma política de alertas.
Por exemplo, é possível criar uma política de alertas que notifique sua equipe de plantão quando o 90o percentil da latência de respostas HTTP 200
do seu serviço exceder 100 ms. Da mesma forma, você pode ser notificado quando uma verificação de tempo de atividade falhar.
Com as políticas de alertas, você configura se uma única série temporal pode atender a uma condição ou se várias séries temporais precisam atender à condição antes de ser atendida. As políticas de alertas podem ser simples ou complexas. Exemplo:
Notifique-me quando qualquer verificação de tempo de atividade para o domínio
example.com
falhar por pelo menos três minutos.Notifique a equipe de plantão quando o 90º percentil das respostas HTTP
200
exceder uma latência de 100 ms para três ou mais servidores da Web em dois locais do Google Cloud, desde que haja menos de 15 QPS no servidor.Avisar se a carga de CPU de qualquer instância de VM no projeto do Google Cloud estiver acima do limite de 0,6.
O Cloud Monitoring fornece um painel que resume o status das suas políticas de alertas e, para cada política, fornece um painel com informações detalhadas. Conforme mostrado na captura de tela a seguir, o painel detalhado de um alerta exibe os dados que estão sendo monitorados, o limite do alerta, os canais de notificação, uma lista de incidentes e qualquer documentação definida pelo usuário incluída em uma notificação:
As condições são o componente principal de uma política de alertas. Uma condição descreve um possível problema com o sistema que você quer que o Cloud Monitoring monitore. Por exemplo, você pode descrever condições como as seguintes:
- Qualquer verificação de tempo de atividade para o domínio
example.com
falha por pelo menos três minutos. - O espaço livre de qualquer instância de VM monitorada é inferior a 10%.
Quando as condições de uma política de alertas são atendidas, por exemplo, quando cada
verificação de tempo de atividade do domínio example.com
falha por três minutos,
o Cloud Monitoring abre um incidente e emite notificações.
Um incidente é um registro permanente que armazena informações sobre o recurso que está sendo monitorado. Por exemplo, uma política de alertas que monitora o uso da CPU armazenaria informações sobre a VM cuja utilização faz com que a condição seja atendida. Quando a condição para de ser atendida, o incidente é fechado automaticamente. É possível visualizar todos os incidentes, abertos e fechados, usando o painel de alertas.
Especifique quem será notificado quando configurar uma política de alertas. Ele é compatível com canais de notificação comuns, incluindo e-mail, Cloud Mobile App e serviços como o PagerDuty ou o Slack. Para ver uma lista completa de canais de notificação, consulte Criar e gerenciar canais de notificação.
Para mais informações sobre políticas de alertas, consulte Visão geral de alertas.
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 satisfazem alguns critérios fornecidos por você. À medida que você adiciona e remove recursos, por exemplo, ao adicionar 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 sobre esse tópico, 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 de escopo. O projeto de escopo é o que você selecionou com o seletor de projetos do Console do Google Cloud. O projeto de escopo armazena os alertas, verificações de tempo de atividade, painéis e grupos de monitoramento que 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:
Uma métrica descreve algo que é medido. Exemplos 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.
Por exemplo, o exemplo a seguir ilustra uma série temporal:
"timeSeries": [ { "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 } }, ], "resource": { "type": "gce_instance", "labels": { "instance_id": "2708613220420473591", "zone": "us-east1-b", "project_id": "sampleproject" } }, "metric": { "labels": { "device": "sda1", "state": "free" }, "type": "agent.googleapis.com/disk/percent_used" }, "metricKind": "GAUGE", "valueType": "DOUBLE", },
Veja alguns detalhes sobre o que uma série temporal contém:
A matriz
points
contém as medidas com carimbo de data/hora.No exemplo anterior, a matriz
points
contém 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 completa de recursos monitorados, consulte a Lista de recursos monitorados.No exemplo anterior, o campo
resource
é o seguinte:"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.No exemplo anterior, o campo
metric
é como mostrado:"metric": { "labels": { "device": "sda1", "state": "free" }, "type": "agent.googleapis.com/disk/percent_used" },
Para os serviços do Google, o campo
type
especifica o serviço e o que está sendo monitorado. Neste exemplo, o agente do Cloud Monitoring é o serviço e está avaliando a porcentagem do disco usado. Quando o campotype
começa comcustom
ouexternal
, a 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étricaagent.googleapis.com/disk/percent_used
inclui os rótulosdevice
estate
.
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 para cada instância de VM é uma série temporal única. 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 por 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:
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 o projeto do Google Cloud para visualizar métricas de vários projetos e contas da AWS, consulte Visão geral dos escopos das métricas.
Para mais informações sobre a API Cloud Monitoring, consulte APIs e referência.
Para listas de métricas e recursos monitorados, consulte Lista de métricas e Lista de recursos monitorados.
Para informações sobre preços, cotas e limites, consulte Recursos.