Guia de início rápido: como explorar o Profiler

Esta página mostra como configurar e usar o Cloud Profiler. Você fará o download de um programa Go de amostra, além de executá-lo com a criação de perfil ativada e usar a interface do Profiler para explorar os dados coletados.

Antes de começar

  1. Faça login na sua conta do Google.

    Se você ainda não tiver uma, inscreva-se.

  2. No Console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud.

    Acessar a página do seletor de projetos

  3. Para ativar a API Cloud Profiler para seu projeto, no painel de navegação do Console do Google Cloud, clique em Profiler ou use o seguinte botão:

    Acessar o Profiler

  4. Para abrir o Cloud Shell, na barra de ferramentas do Console do Google Cloud, clique em Ativar o Cloud Shell:

    Ative o Cloud Shell.

    Após alguns instantes, uma sessão do Cloud Shell é aberta no Console do Google Cloud:

    Sessão do Cloud Shell.

Crie o perfil de um programa

O programa de amostra, main.go, está no repositório golang-samples no GitHub. Para consegui-lo, recupere o pacote de amostras do Go:

go get -u github.com/GoogleCloudPlatform/golang-samples/profiler/...

A recuperação do pacote leva algum tempo para ser concluída.

Crie o perfil do código

Vá para o diretório do código de amostra do Profiler no pacote recuperado:

cd ~/gopath/src/github.com/GoogleCloudPlatform/golang-samples/profiler/profiler_quickstart

O programa main.go cria uma carga de trabalho com uso intensivo da CPU para fornecer dados ao criador de perfil. Inicie o programa e deixe-o em execução:

 go run main.go

Esse programa foi projetado para carregar a CPU enquanto ele é executado. Ele é configurado para usar o Profiler, que coleta dados de criação de perfil do programa durante a execução dele e os salva periodicamente.

Após iniciar o programa, você verá a mensagem profiler has started em alguns segundos. Depois de quase um minuto, mais duas mensagens serão exibidas:

 successfully created profile CPU
 start uploading profile

Elas indicam que um perfil foi criado e enviado ao projeto do Cloud Storage. O programa continuará exibindo as últimas duas mensagens a cada minuto enquanto estiver sendo executado.

Se você receber uma mensagem de erro de permissão negada após iniciar o serviço, consulte Por que estou recebendo um erro de permissão negada? para ver as possíveis causas.

Interface do Profiler

Alguns instantes depois de iniciar o aplicativo, o Profiler exibe os dados iniciais do perfil. A interface tem vários controles e um gráfico de chama para você explorar os dados de criação de perfil:

Interface do Profiler com o código de amostra

Abaixo dos controles de tempo, há opções para você escolher o conjunto de dados de perfil que serão usados. Ao criar um perfil de vários aplicativos, use o Serviço para selecionar a origem dos dados com perfil. Com o Tipo de perfil, é possível escolher o tipo de dados de perfil que será exibido. As opções Nome da zona e Versão permitem restringir a exibição aos dados das zonas do Compute Engine ou às versões do aplicativo. O Peso permite que você selecione perfis capturados durante os períodos de pico de consumo de recursos.

Para refinar como o gráfico em degradê exibe os perfis que você selecionou para analisar, adicione filtros. Na captura de tela anterior, a barra de filtro mostra um filtro. Essa opção de filtro é Metric, e o valor do filtro é CPU time.

Como explorar os dados

Abaixo dos controles de seleção, as pilhas de chamadas do programa são exibidas em um gráfico em degradê. Ele representa cada função com um quadro. A largura do quadro representa a proporção de consumo de recursos por essa função. O primeiro quadro representa o programa inteiro. Ele sempre mostra todo o consumo de recursos. Esse frame também lista quantos perfis têm a média calculada no gráfico.

O programa de amostra não tem um conjunto complexo de pilhas de chamadas. Na imagem acima, você vê cinco frames:

  • O frame cinza representa tudo que é executável, responsável por todos os recursos consumidos.
  • O frame main verde é o runtime.main do Go.
  • O frame main laranja é a rotina main do programa de amostra.
  • O frame busyloop laranja é uma rotina chamada a partir do main da amostra.
  • O frame main.load laranja é uma rotina chamada a partir do main da amostra.

Com o seletor, você filtra funções que correspondem a algum nome e realiza outras tarefas. Por exemplo, se houver uma biblioteca padrão de funções de utilitário, será possível removê-las do gráfico. Remova também pilhas de chamadas originadas de um determinado método ou simplifique o gráfico de outras maneiras. O aplicativo main.go é simples, então não há muito o que filtrar.

Mesmo para um aplicativo simples, os filtros permitem ocultar quadros menos importantes, para que você possa visualizar melhor os quadros que mais lhe interessam. Por exemplo, na captura de tela da criação de perfil do código de amostra, o frame cinza é um pouco maior que o primeiro frame main abaixo dele. Por quê? Será que está acontecendo algo que não é aparente de imediato porque a pilha de chamadas main consome uma porcentagem muito grande de recursos? Para ver o que está acontecendo fora da rotina main do aplicativo, adicione um filtro que oculte a pilha de chamadas da rotina main. Somente 0,227% do consumo de recursos ocorre fora de main:

Como ocultar pilhas no programa de amostra

Consulte Como usar a interface do Profiler para mais informações sobre filtros e outras maneiras de explorar os dados de criação de perfil.

A seguir

Precisa de mais informações gerais?

Saiba mais sobre como executar o agente do Cloud Profiler em: