Introdução ao Cloud Monitoring

Nesta página, você encontra uma visão geral do modelo de dados e das ferramentas do Cloud Monitoring. Ao usar o Cloud Monitoring, é possível responder a perguntas importantes como as seguintes:

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

Esta página é destinada a desenvolvedores e administradores de sistemas que precisam monitorar o desempenho de um serviço ou sistema.

Visão geral do Cloud Monitoring

O Cloud Monitoring coleta medições do seu serviço e dos recursos do Google Cloud que você usa. Nesta seção, fornecemos uma visão geral das ferramentas do Cloud Monitoring que podem ser usadas para visualizar e monitorar essas medições.

Políticas de alertas e verificações de tempo de atividade

Para receber uma notificação quando o desempenho de um serviço não atender aos critérios definidos, 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.

Para receber uma notificação quando um serviço implantado não estiver acessível ou não estiver respondendo corretamente, configure uma verificação de tempo de atividade e anexe uma política de alertas:

  • A verificação de tempo de atividade sonda periodicamente seu serviço e armazena o sucesso e a latência dessa sondagem como dados de métrica.
  • A política de alertas monitora o status de sucesso da verificação de tempo de atividade e notifica você se uma sondagem falhar.

Gráficos e painéis

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. O Cloud Monitoring preenche os painéis com base nos serviços e recursos usados. No entanto, também é possível criar painéis personalizados para mapear dados, exibir indicadores ou exibir texto.

É 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 são coletadas pelo agente do Cloud Monitoring. Essas métricas fornecem informações extras sobre recursos e sistemas do sistema em execução em instâncias do Compute Engine e em instâncias do Amazon Elastic Compute Cloud (Amazon EC2). 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 personalizadas que seu serviço grava usando a API Cloud Monitoring ou uma biblioteca como o OpenCensus.

  • 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 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. 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.

Métricas e séries temporais

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 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.

    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 campo type começa com custom ou external, 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 do MetricDescriptor, que é uma estrutura de dados que define os atributos dos dados medidos. O MetricDescriptor da métrica agent.googleapis.com/disk/percent_used inclui os rótulos device e state.

  • 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 projeto do Google Cloud contém várias instâncias de VM do Compute Engine, a utilização do disco para cada instância de VM é uma série temporal exclusiva. Veja algumas maneiras de exibir esses dados:

  • É possível mostrar a utilização do disco de todas as instâncias de VM.
  • É possível agrupar pelas instâncias de VM pelo rótulo state e exibir a utilização média do disco. A captura de tela a seguir ilustra um gráfico com esta configuração:

    Uso médio do disco agrupado por estado.

  • É possível mostrar a utilização do disco de uma instância de VM específica ao filtrar a série temporal para um único valor do rótulo instance_id. A captura de tela a seguir ilustra um gráfico com essa configuração:

    Porcentagem usada para um disco específico.

Ver série temporal

O Cloud Monitoring oferece várias maneiras de visualizar seus dados de série temporal:

  • Painéis predefinidos: o Cloud Monitoring cria automaticamente esses painéis com base nos recursos usados pelo seu 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. Crie um painel personalizado com a API Dashboards ou com o Console do 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 os gráficos criados com o Metrics Explorer em um painel personalizado .

Ao criar um gráfico, você seleciona o recurso monitorado e o tipo de métrica com os dados de série temporal que você quer visualizar. Depois de fazer essas seleções, é possível aplicar filtros a séries temporais que correspondam a determinados valores de rótulo e agrupar dados por rótulo. Por exemplo, é possível adicionar um filtro para que um gráfico exiba apenas as séries temporais de instâncias de VMs do Compute Engine localizadas no clusterus-east-1d zona para criar um anexo da VLAN de monitoramento.

As configurações do gráfico permitem comparar dados atuais com dados anteriores e criar gráficos que exibam dados de série temporal para 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:

O Metrics Explorer exibe bytes de leitura e gravação de disco.

Para mais informações sobre a visualização de dados de série temporal, consulte Como usar painéis e gráficos.

Configurar alertas

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, por exemplo:

  • Quero receber uma notificação quando uma 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 90o 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.

  • Quero receber uma notificação quando a carga da CPU de qualquer instância de VM no meu projeto do Google Cloud for maior que um limite de 0,6. A captura de tela a seguir ilustra essa política de alertas:

    Política de alertas que monitora a carga da CPU.

É possível criar políticas de alertas usando a API Cloud Monitoring e o Console do Google Cloud. Em ambos os casos, é possível gerenciar e visualizar suas políticas no Console do Google Cloud usando a página Alertas.

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 forem atendidas, por exemplo, quando cada verificação de tempo de atividade do domínio example.com falhar por três minutos, o Cloud Monitoring abrirá um incidente e emitirá notificações:

  • Um incidente é um registro permanente que armazena informações sobre os recursos monitorados quando a condição é atendida. Quando a condição para de ser atendida, o incidente é automaticamente fechado. É 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 uma lista completa de canais de notificação, consulte Opções de notificação.

Para mais informações sobre as políticas de alertas, consulte Introdução a alertas.

Verificar se o serviço está acessível

É possível configurar o Cloud Monitoring para testar periodicamente o serviço de uma maneira que simule o modo como os clientes o acessam. Quando você configura uma verificação de tempo de atividade, os servidores em pelo menos três locais diferentes sondam periodicamente seu serviço e depois registram o sucesso e a latência da sondagem. Para receber uma notificação quando houver falha na verificação de tempo de atividade, crie uma política de alertas para monitorar a métrica uptime_check/check_passed, que registra os resultados das verificações.

O Cloud Monitoring fornece uma página de Verificações de tempo de atividade que exibe um resumo das verificações de tempo de atividade. É possível filtrar a exibição e usar os links incorporados para visualizar os detalhes de uma verificação de tempo de atividade específica. 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:

Amostra de visualização detalhada de uma verificação de tempo de atividade.

Para mais informações sobre esse tópico, consulte Como gerenciar verificações de tempo de atividade.

Suporte a sistemas grandes

Esta seção descreve os recursos projetados para ajudar você a monitorar sistemas grandes.

Grupos de recursos

Para gerenciar seus recursos do Google Cloud ou da Amazon como uma coleção em vez de individualmente, crie um grupo de recursos. Um grupo de recursos é um conjunto de recursos dinâmicos que atende a alguns critérios que você fornece. add medida que você adiciona e remove recursos, por exemplo, ao adicionar instâncias de VM do Compute Engine ao seu projeto do Cloud, 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 sobre esse tópico, consulte Como usar grupos de recursos.

Ver métricas de vários projetos do 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 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 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 Como modificar a configuração do Cloud Monitoring do projeto.

Interfaces gráficas e programáticas

Para visualizar dados de métrica, criar e gerenciar políticas de alertas, painéis e verificações de tempo de atividade, use o Console do Google Cloud.

Também é possível usar diretamente a API Cloud Monitoring para gravar dados de métricas personalizadas e criar e gerenciar políticas de alertas, painéis e verificações de tempo de atividade. 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.

A seguir