Todos os produtos
Search
Central de documentação

Application Real-Time Monitoring Service:Continuous profiling for Go applications

Última atualização: Jun 27, 2026

Quando uma aplicação Go apresenta alta latência, consumo excessivo de memória ou picos inesperados de CPU em produção, métricas e logs padrão raramente identificam o método ou a linha de código exata responsável. O profiling contínuo no ARMS Application Monitoring captura dados de gargalos de CPU, memória e I/O no nível de nome de método, nome de classe e número de linha. Esse recurso permite otimizar programas, reduzir a latência, aumentar o throughput e economizar custos sem reproduzir problemas localmente.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma aplicação Go monitorada pelo Application Monitoring

  • Agente do ARMS para Go versão 1.3.0 ou posterior. Para verificar a versão, abra a página de detalhes da aplicação e escolha Configuration > Agent Management

Ative o profiling contínuo

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Na barra de navegação superior, selecione uma região e clique em no nome da sua aplicação.

    Os ícones na coluna Language indicam a linguagem da aplicação:

    Java icon: Java

    Go icon: Go

    Python icon: Python

    Hífen (-): aplicação monitorada no Managed Service for OpenTelemetry.

  3. Na barra de navegação superior, escolha Configuration > Custom Configurations.

  4. Na seção Ongoing Profiling Settings, ative a Master switch e outras chaves de tipo de perfil conforme necessário.

    Ongoing Profiling Settings

  5. Clique em Save. As alterações entram em vigor em até 2 minutos.

Visualize e analisar dados de profiling

  1. Faça login no console do ARMS. No painel de navegação à esquerda, escolha Application Monitoring > Application List.

  2. Na barra de navegação superior, selecione uma região e clique em no nome da sua aplicação.

  3. Na barra de navegação superior, escolha Application Diagnostics > Continuous Profiling.

  4. Na lista de instâncias à esquerda, selecione a instância desejada. Em seguida, defina o intervalo de tempo dos dados à direita.

  5. Na aba Single View, consulte e analise os dados de profiling:

    Single View profiling interface

    1. Selecione a duração do snapshot: na seção Time window size (ícone 1), escolha uma duração e arraste sobre o gráfico de linhas para selecionar um intervalo de tempo.

    2. Escolha o tipo de perfil: na lista suspensa (ícone 2), selecione os dados a visualizar: CPU, heap do Go, Goroutine, Mutex e block.

    3. Analise os resultados: o intervalo de tempo selecionado (ícone 3) preenche o painel de dados. Clique em Aggregate analysis para abrir os detalhes do snapshot.

    4. Análise de desempenho

      Interpretar a tabela de resultados de profiling

      A tabela de resultados de profiling possui duas colunas importantes:

      Coluna

      Significado

      Quando usar

      Self

      Tempo ou recursos que um método consome em seu próprio código, excluindo chamadas a métodos filhos.

      Identifique métodos individualmente custosos.

      Total

      Tempo ou recursos consumidos por um método, incluindo todas as chamadas a métodos filhos.

      Encontre os maiores contribuidores gerais para o uso de recursos.

      Localize gargalos com gráficos de chama: no gráfico de chama à direita, procure barras largas na parte inferior. Uma barra larga indica que o método consome uma parcela desproporcional de recursos — geralmente é aí que reside o gargalo. A coluna Self na tabela destaca esses mesmos pontos críticos.

      Tipos de perfil

      Cada tipo de perfil captura uma dimensão diferente do comportamento de execução da sua aplicação. Selecione o tipo de perfil correspondente ao problema de desempenho investigado.

      CPU

      Métrica

      O que mede

      Quando usar

      CPU Time

      Número de núcleos de CPU solicitados por cada método.

      Identifique caminhos de código intensivos em computação que causam alta utilização da CPU.

      CPU Time

      Memória (heap do Go)

      Métrica

      O que mede

      Quando usar

      Allocated Memory

      Tamanho da memória solicitada por cada método.

      Encontre alocações grandes ou frequentes.

      Allocations

      Número de solicitações de memória por método.

      Detecte métodos que solicitam memória frequentemente, mesmo que as alocações individuais sejam pequenas.

      Allocated Memory

      Allocations

      Goroutine

      Goroutine

      Mutex

      Métrica

      O que mede

      mutexContentions

      Eventos de contenção de mutex.

      mutexDelay

      Tempo de atraso de mutex.

      mutexContentions

      mutexDelay

      Block

      Métrica

      O que mede

      blockContentions

      Eventos de contenção de bloqueio.

      blockDelay

      Tempo de atraso de bloqueio.

      blockContentions

      blockDelay

      Lista de snapshots

      A lista de snapshots exibe todos os snapshots de profiling capturados durante o intervalo de tempo selecionado. Clique em qualquer snapshot para visualizar seus detalhes.

      Snapshot list

Veja também