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

Se você quiser receber notificações 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 chamada se o 90o percentil da latência das respostas HTTP 200 do serviço exceder 100 ms.

Caso tenha interesse em ser notificado se um serviço implantado não estiver acessível ou se não estiver respondendo corretamente, configure uma verificação de tempo de atividade e anexe um 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 quando uma sondagem falha.

Gráficos e painéis

Para entender a carga atual de um serviço ou visualizar os dados de desempenho do serviço do ú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 gerar gráficos e monitorar todos os dados de métricas (numéricos) que seu projeto do Google Cloud coleta, incluindo os seguintes:

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

Como entender 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 feitas 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. Se o campo type começar com custom ou external, a métrica será uma métrica personalizada ou uma 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 ao longo de um período específico. Por exemplo, um resumo de ações que mostra os ganhos ou perdas da ação.

  • 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, se você tiver um projeto do Google Cloud com várias instâncias de VM do Compute Engine, a utilização do disco para cada instância de VM será 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.

Como visualizar dados de séries temporais com gráficos e painéis

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, se o projeto do Google Cloud contiver instâncias de VM do Compute Engine, os painéis dessas instâncias de VM e discos serã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. Nos painéis, adicione widgets que exibem gráficos, texto, medidores ou visões gerais. É possível criar um painel personalizado com a API Dashboards ou o Console do Cloud.

  • Gráficos: é possível adicionar gráficos a um painel personalizado ou usar o Metrics Explorer, que é uma ferramenta de gráficos desenvolvida para permitir a rápida análise e a exploração de dados de série temporal. Se você criar um gráfico com o Metrics Explorer, salve-o 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.

Como configurar alertas

Se você criar uma política de alertas, poderá ser notificado quando uma única série temporal atender a uma determinada condição ou quando várias séries temporais atenderem a essa condição. As políticas de alerta podem ser simples ou complexas, por exemplo:

  • Receber notificação se alguma verificação de tempo de atividade para o domínio example.com falhar por pelo menos três minutos.

  • Notificar a equipe de chamada se o 90o percentil das respostas HTTP 200 de três ou mais servidores da Web em dois locais distintos do Google Cloud exceder uma latência de resposta de 100 ms, desde que haja são inferiores a 15 QPS no servidor.

  • Enviar notificação se 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%.

Se as condições de uma política de alertas forem atendidas, por exemplo, se todas as verificações de tempo de atividade no domínio example.com falharem 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. O Monitoring suporta canais de notificações comuns, incluindo e-mail, aplicativo do Cloud Mobile e serviços como PagerDuty ou 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.

Como verificar se o serviço está acessível

É possível configurar o Cloud Monitoring para analisar periodicamente o serviço de uma maneira que simula o modo como seus clientes acessam o serviço. 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. Se você quiser receber uma notificação quando a verificação de tempo de atividade falhar, crie uma política de alertas para monitorar a métrica uptime_check/check_passed, que registra os resultados do tempo de atividade. 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.

Como monitorar sistemas grandes

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

Como usar grupos de recursos

Se você quiser 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 dinâmico de recursos que atendem 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.

Como visualizar métricas para vários projetos do Google Cloud

Se você quiser visualizar e monitorar os dados de série temporal de 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 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.

Como usar interfaces programáticas e gráficas

Para visualizar os dados de métricas e 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