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
-
Os Snapshots de Thread requerem JDK8 ou mais recente.
-
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.