Opzioni configurabili agente Java APM
L'agente Java APM dispone delle seguenti opzioni configurabili per la raccolta dei dati:
Tracce ridotte
Questa funzione è progettata per eliminare i casi di conteggio eccessivo di intervalli per traccia. Quando vengono creati troppi intervalli in una singola chiamata, l'agente può causare un sovraccarico superiore a quello desiderato, può anche aumentare il conteggio dell'intervallo orario, causando una carica superiore al previsto. I casi in cui questo può essere un problema includono chiamate ricorsive (intenzionali o meno), codice generato che determina un numero elevato di istruzioni SQL eseguite per transazione e altri.
- La funzione abridge consente agli utenti di limitare il numero massimo di intervalli per chiamata. Fornisce anche un modo per escludere gli intervalli che possono essere considerati "non degni" (ad esempio, un volume elevato di SQL molto veloci).
- I limiti di conteggio specifici, l'inclusione/esclusione basata sul nome intervallo e la soglia JDBC sono configurabili per thread e per chiamata. Per informazioni dettagliate sulle opzioni di configurazione, vedere il file
ProbeConfig.acml
nella directoryoracle-apm-agent\config
. - L'impostazione predefinita prevede il limite di ogni chiamata a 100 intervalli.
- Le statistiche di riepilogo di base sugli intervalli eliminati possono essere raccolte per thread, per chiamata.
Di seguito è riportato un esempio di impostazione che limiterà a 50 il numero massimo di intervalli JDBC per chiamata thread, escluderà un'istruzione SQL non valida nota ed escluderà le istruzioni SQL eseguite in meno di 2 ms. Tenere presente che abilitando l'opzione summarize
, l'agente aggiungerà le metriche riportate di seguito all'intervallo padre: conteggio intervalli eliminati, durata media intervallo eliminato, tempo intervallo minimo eliminato, tempo intervallo massimo eliminato, conteggio errori intervallo eliminato, nonché record di log che mostrano i 5 intervalli più lunghi eliminati e i primi 5 errori eliminati.
abridged_probes:
summarize: true
settings_by_probe:
- probe: "JDBC"
span_limit: 50
excluded_patterns:
- contains: "select sysdate from dual"
excluded: true
threshold:
duration: 2
start_thresholding_after: 10
Interruttore di circuito
- L'interruttore di circuito riduce automaticamente il consumo dell'agente delle risorse JVM quando viene rilevata una forte pressione delle risorse. L'interruttore riprenderà automaticamente la normale funzione dell'agente quando la pressione delle risorse è stata sufficientemente alleviata.
- Per impostazione predefinita, l'interruttore di circuito interrompe/riprende automaticamente il lavoro dell'agente in base all'uso della memoria heap e al tempo di raccolta dei rifiuti.
Fattore prestazioni Arresta Riprendi Intervallo Componenti di destinazione Uso della memoria heap 95% 85% 2 minuti Prove 5 minuti Agente completo Tempo Garbage Collection 10% 5% 2 minuti Prove 5 minuti Agente completo - I fattori di prestazioni, le soglie di arresto, le soglie di ripresa, gli intervalli e i componenti di destinazione sono configurabili. Per maggiori dettagli, vedere il file
CircuitBreakerConfig.acml
nella directoryoracle-apm-agent\config\<version>
. - L'interruttore di circuito è abilitato per impostazione predefinita. Può essere disabilitato e riabilitato utilizzando la proprietà
com.oracle.apm.agent.circuit.breaker.enable
dal fileAgentConfig.properties
situato nella directoryoracle-apm-agent\config
.La disabilitazione e la riabilitazione dell'interruttore di circuito non richiedono il riavvio dell'agente Java APM.
Campionamento
- Per impostazione predefinita, vengono raccolti tutti gli intervalli. Per modificare la configurazione di campionamento, è necessario configurare la campionatura personalizzata.
- È possibile ridurre la quantità di dati di trace specificando la configurazione di campionamento. Per informazioni dettagliate, vedere Configura campionatura APM.
- L'operazione di campionamento è soggetta al limite di raccolta dei dati delle tracce e degli interruttori di circuito ridotti.
Inserimento della libreria di log
È possibile inserire nei messaggi di log spanId
e traceId
attivi. Ciò fornisce la correlazione tra i messaggi di log e i trace APM per semplificare l'analisi dei log e la risoluzione dei problemi.
-
Abilitare la sonda
LOG_LIB
nel fileProbeConfig.acml
. -
Abilitare l'inserimento desiderato nel log nella sezione
LOG_LIB
dettagliata nel fileProbeConfig.acml
.
L'abilitazione dell'inserimento della libreria di log comporta le operazioni riportate di seguito.
- L'iniezione automatica consente l'iniezione di
spanId
etraceId
senza modifiche alla configurazione di registrazione dell'applicazione esistente.Sono supportati Log4j 1.2, log4j 2, logback e java.util.logging.
- WebLogic L'inserimento del log degli accessi al server può inserire
spanId
etraceId
attivi per una determinata richiesta HTTP. Si noti che al contenuto statico, ad esempiofavicon.ico
, in genere non è associatospanId
otraceId
. -
L'inserimento MDC (Mapped Diagnostic Context) sfrutta le funzioni incorporate di log4j, log4j2 e logback per rendere disponibili i framework di log
spanId
etraceId
attivi.È possibile specificare le seguenti chiavi nella configurazione di log MDC appropriata per il framework di log dell'applicazione:- oracle.apm.spanId
- oracle.apm.traceId