Configurar Snapshots de Thread no Agente do APM

O recurso de snapshots de thread permite a coleta de snapshots de pilha de thread que podem ser usados para análise de mergulho profundo.

Os snapshots de thread permitem a coleta de rastreamentos como snapshots de pilha de threads, overhead de memória de thread, overhead de cpu de thread e impacto gc no rastreamento. Ele coleta os snapshots da pilha de threads e os dados relacionados à pilha, como estado e bloqueios, em um intervalo específico.

Os usuários podem ativar a coleta de snapshots de pilha de thread para obtenção de dump de pilha de intervalos. Ele oferece visibilidade da pilha de códigos de usuário.

O intervalo de tempo padrão da coleta de snapshots de thread é de 250 ms.

Esse recurso é desativado por padrão.

O Agente Java do APM e o Rastreador do APM suportam a coleta de snapshots de thread. Para obter detalhes sobre como configurar snapshots de thread no Rastreador do APM, consulte Configurar Snapshots de Thread no Rastreador do APM.

Pré-requisitos

  1. Os Snapshots de Thread requerem JDK8 ou mais recente.

  2. Os snapshots de thread são suportados no APM Java Agent 1.4 versão ou versão mais recente.

Ativar Snapshots de Thread

Depois que o Agente Java do APM for provisionado, você poderá ativar o recurso de snapshots de thread atualizando o arquivo AgentConfig.properties que deve estar presente no seguinte local:

$DOMAIN_HOME/oracle-apm-agent/config

  • Abra o arquivo AgentConfig.properties.
  • Atualize a seguinte propriedade para o valor true:
    com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable=true 

    Por padrão, o valor da propriedade de snapshots de thread é false (Recurso desativado).

Propriedades da Configuração

A tabela abaixo mostra as propriedades de instantâneos de thread que podem ser configuradas no runtime.

Nome da Propriedade Descrição Unidade Valor Padrão Valores Suporte
com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable Ativar ou desativar a coleta de snapshot profunda. String falso verdadeiro/falso
com.oracle.apm.agent.deepdive.maxPercentTraceExportToCollectorPerMinute Porcentagem máxima de rastreamentos de entrada por minuto para exportá-los para o cobrador. Porcentagem 100

Mínimo:1

Máximo: 100

com.oracle.apm.agent.deepdive.maxTraceExportToCollectorPerMinute Número máximo de rastreamentos principais por minuto para exportá-los para o cobrador. Número 200

Mínimo:1

Máximo: 1500

com.oracle.apm.agent.deepdive.snapshotCollectionIntervalInMS Intervalo no qual os dados do snapshot do thread serão coletados. Milissegundos 250

Mínimo:250

Máximo: 300000

com.oracle.apm.agent.deepdive.maxSnapshotsPerTrace Número máximo de snapshots permitidos por rastreamento. Número 16

Mínimo: 1

Máximo: 16

com.oracle.apm.agent.deepdive.maxStackTraceDepthPerSnapshot Máximo de quadros de rastreamento de pilha coletados para qualquer thread. Número 256

Mínimo: 1

Máximo: 256

com.oracle.apm.agent.deepdive.logLevel Imprima logs de mergulho profundo, que sejam iguais ou superiores a esse valor de propriedade. String INFO

DEPURAÇÃO, INFORMAÇÕES, AVISAR, GRAVE

com.oracle.apm.agent.deepdive.maxProcessCpuUsagePercent Uso máximo da CPU no processo. É recomendável manter o uso geral de CPU do processo abaixo desse limite. Número 90

Mínimo: 1

Máximo: 90

com.oracle.apm.agent.deepdive.deepDiveCpuUsagePercent.minThreshold Limite mínimo para manter o uso geral profundo da CPU. Porcentagem 3

Mínimo: 1

Máximo: 5

com.oracle.apm.agent.deepdive.deepDiveCpuUsagePercent.maxThreshold Limite máximo para manter o uso geral profundo da CPU. Porcentagem 5

Mínimo: 5

Máximo: 20

com.oracle.apm.agent.deepdive.traceLifeInMS.minThreshold Limite mínimo para um rastreamento. Milissegundos 50

Mínimo: 50

Máximo: 60000

com.oracle.apm.agent.deepdive.traceLifeInMS.maxThreshold Limite máximo para um rastreamento. Milissegundos 60000

Mínimo: 60000

Máximo: 600000

Verificar Snapshots de Thread

  • Para verificar se o recurso de snapshots de thread foi inicializado, verifique o arquivo de log no seguinte local: $DOMAIN_HOME/oracle-apm-agent/deepdive/<server-name>/ApmDeepDiveAgent.log.

    O arquivo de log deve ter esta aparência:
     INFO [main] <DeepDiveManager> DeepDiveManger initialized successfully. 
  • Para verificar se o recurso de snapshots de thread foi configurado corretamente e se os dados estão sendo submetidos a upload para o Application Performance Monitoring, use a opção View Snapshot em Exibir Detalhes do Rastreamento ou do Intervalo.