Interagir com o gráfico de chama

O Cloud Profiler exibe dados de criação de perfil usando gráficos de chama. Veja uma introdução conceitual em Gráficos de chama.

O gráfico em dégradé é formado por frames. Cada frame representa uma função no serviço:

  • A largura de um frame corresponde ao consumo da métrica que está sendo analisada. Por exemplo, o frame do topo representa todo o serviço e consome toda a métrica em análise. Portanto, ele é mostrado com largura total.

  • Por padrão, a cor do frame corresponde ao pacote da função quando possível. Se as informações do pacote não estiverem disponíveis como acontece com o Node.js, os nomes dos arquivos de origem serão usados para colorir os blocos da função. Em uma pilha de chamadas, há transição de um pacote para o outro quando as cores dos blocos mudam. É possível alterar como os frames são coloridos. Para mais informações, consulte Modo de cor.

O gráfico em dégradé mostra uma ou mais pilhas de chamadas com os valores médios de um conjunto de perfis:

  • Cada perfil individual representa dados coletados uma vez por minuto a partir de uma instância do serviço configurado em uma zona do Compute Engine. O período de coleta varia de acordo com o tipo de perfil. Consulte Coleta de perfil para mais informações.
  • O número total de 250 perfis tem a média calculada. Se houver mais disponíveis, 250 deles serão selecionados aleatoriamente como um conjunto de amostra.
  • O frame do topo ou principal indica o serviço inteiro. Abaixo dele, há outro frame ou conjunto de frames que formam a segunda linha do gráfico. Cada um desses frames codificados por cor é uma chamada avançada feita pelo serviço. Abaixo deles, há outro conjunto de frames de funções. Cada um deles é responsável por alguma parte do recurso do frame superior. A hierarquia de frames de funções no gráfico representa a sequência de chamadas. Já a largura do frame indica a quantidade de recursos que essa função ou método consomem.

Por exemplo, o gráfico do criador de perfil do heap consumido para o docdemo-service mostra que o serviço chama vários frames de nível superior, sendo um deles a função main do ambiente de execução do Go. A largura desses frames de nível superior mostra que a maior parte do heap é consumida pela pilha de chamadas. Essa pilha envolve a main do ambiente de execução do Go, além de main, allocOnce e allocImpl, que são específicas do aplicativo:

Gráfico do criador de perfil para o heap consumido.

O frame principal exibe informações de consumo de métricas.

Como passar o cursor sobre um quadro

Quando você coloca o ponteiro sobre um quadro no gráfico em degradê, uma dica é aberta. Ela exibe informações complementares sobre ele:

  • Nome da função
  • Nome de arquivo da função
  • Uso absoluto e percentual de uso

Nas informações de consumo de métrica, o prefixo total indica que a porcentagem e o valor da métrica são referentes a uma função e os filhos dela. Já o prefixo self indica que eles são referentes à função, exceto o consumo dos filhos.

A caixa de diálogo também inclui botões:

  • Foco: focaliza o gráfico na função do frame atual.
  • Mostrar pilhas: adiciona um filtro para mostrar somente as pilhas que incluem a função desse frame.
  • Mostrar histórico: abre a visualização do histórico de função do frame.

Neste exemplo, a dica mostra que a função runtime.main está localizada no arquivo /usr/local/go/src/runtime/proc.go. As informações de consumo de métricas mostram que runtime.main e seus filhos consomem 54,73 MiB de memória, isto é, cerca de 98% da memória total consumida pelo programa:

Consumo de métrica para runtime.main.

Como selecionar um quadro

Quando você clica em um quadro, o gráfico em degradê é redesenhado com o quadro exibido na largura total e as cores mais altas na pilha de chamadas são silenciadas. Clicar em um quadro não altera nenhuma configuração, apenas altera a maneira como o gráfico é exibido. Para retornar à visualização original, clique no quadro raiz (superior).

No exemplo a seguir, o ponteiro está sobre um frame pequeno e é difícil visualizar a pilha de chamadas. A dica identifica (*huffmanBitWriter).write como a função do frame:

Um quadro pequeno no gráfico em degradê

Depois de clicar no frame, o gráfico é redesenhado, tornando a pilha de chamadas mais visível:

O quadro pequeno ampliado.

A seguir