Configura snapshot thread in agente APM

La funzione Snapshot thread consente la raccolta di snapshot dello stack di thread che possono essere utilizzati per l'analisi approfondita.

Gli snapshot thread consentono la raccolta di trace quali gli snapshot dello stack di thread, il sovraccarico di memoria dei thread, il sovraccarico della CPU di thread e l'impatto di gc sul trace. Raccoglie gli snapshot dello stack di thread e i dati correlati allo stack, ad esempio stato e lock, a un intervallo specifico.

Gli utenti possono abilitare la raccolta di snapshot dello stack di thread per l'acquisizione del dump dello stack degli intervalli. Offre visibilità sullo stack di codice dell'utente.

L'intervallo di tempo predefinito per la raccolta delle istantanee thread è 250 ms.

Il valore minimo consigliato è di almeno 100 MB per le piattaforme a 32 bit e di almeno 144 MB per le piattaforme a 64 bit.

APM Java Agent e APM Tracer supportano la raccolta di snapshot thread. Per informazioni dettagliate sulla configurazione degli snapshot di thread in APM Tracer, vedere Configura snapshot di thread in APM Tracer.

In questa sezione vengono trattati gli argomenti riportati di seguito.

Prerequisiti

  1. Gli snapshot thread richiedono JDK8 o versione successiva.

  2. Gli snapshot thread sono supportati nella versione 1.4 o successiva di APM Java Agent.

Abilita snapshot thread

Dopo aver eseguito il provisioning dell'agente Java APM, è possibile abilitare la funzione Snapshot thread aggiornando il file AgentConfig.properties che deve essere presente nella seguente posizione:

$DOMAIN_HOME/oracle-apm-agent/config

  • Aprire il file AgentConfig.properties.
  • Aggiornare la proprietà seguente al valore true:
    com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable=true 

    Per impostazione predefinita, il valore della proprietà relativa alle istantanee dei thread è false (funzione disabilitata).

Proprietà di configurazione

La tabella riportata di seguito mostra le proprietà degli snapshot thread che è possibile configurare in runtime.

Nome proprietà descrizione; Unità Valore predefinito Valori supportati
com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable Abilita o disabilita la raccolta di snapshot di approfondimento. Stringa false true/false
com.oracle.apm.agent.deepdive.maxPercentTraceExportToCollectorPerMinute Percentuale massima di trace in entrata al minuto per esportarli nel collector. Percentuale 100

minimo:1

Massimo: 100

com.oracle.apm.agent.deepdive.maxTraceExportToCollectorPerMinute Numero massimo di prime tracce al minuto per esportarle nel collector. Numerico 200

minimo:1

Massimo: 1500

com.oracle.apm.agent.deepdive.snapshotCollectionIntervalInMS Intervallo in base al quale verranno raccolti i dati dello snapshot del thread. millisecondi 250

Minima:250

Massimo: 30000

com.oracle.apm.agent.deepdive.maxSnapshotsPerTrace Numero massimo di snapshot consentiti per trace. Numerico 16

Minima: 1

Massima: 16

com.oracle.apm.agent.deepdive.maxStackTraceDepthPerSnapshot Numero massimo di frame di stack trace raccolti per qualsiasi thread. Numerico 256

Minima: 1

Massimo: 256

com.oracle.apm.agent.deepdive.logLevel Stampa i log di approfondimento, uguali o superiori a questo valore di proprietà. Stringa Informazioni

DEBUG, INFO, AVVISA, GRAVE

com.oracle.apm.agent.deepdive.maxProcessCpuUsagePercent Uso massimo della CPU del processo. Si consiglia di mantenere l'uso complessivo della CPU del processo sotto questa soglia. Numerico 90

Minima: 1

Massimo: 90

com.oracle.apm.agent.deepdive.deepDiveCpuUsagePercent.minThreshold Soglia minima per mantenere l'uso complessivo della CPU deepdive. Percentuale 3

Minima: 1

Massimo: 5

com.oracle.apm.agent.deepdive.deepDiveCpuUsagePercent.maxThreshold Soglia massima per mantenere l'uso complessivo della CPU deepdive. Percentuale 5

Minima: 5

Massima: 20

com.oracle.apm.agent.deepdive.traceLifeInMS.minThreshold Soglia minima per una traccia. millisecondi 50

Minima: 50

Massimo: 60000

com.oracle.apm.agent.deepdive.traceLifeInMS.maxThreshold Soglia massima per una traccia. millisecondi 60000

Minima: 60000

Massimo: 600000

Verifica snapshot thread

  • Per verificare che la funzione Snapshot thread sia stata inizializzata, controllare il file di log dalla seguente posizione: $DOMAIN_HOME/oracle-apm-agent/deepdive/<server-name>/ApmDeepDiveAgent.log.

    Il file di log dovrebbe avere l'aspetto seguente:
     INFO [main] <DeepDiveManager> DeepDiveManger initialized successfully. 
  • Per verificare che la funzione Snapshot thread sia stata configurata correttamente e che i dati siano stati caricati in Application Performance Monitoring, utilizzare l'opzione Vista snapshot in Visualizza dettagli trace o intervallo.