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 directory oracle-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 directory oracle-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 file AgentConfig.properties situato nella directory oracle-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.

Per configurare questa funzione, effettuare le operazioni riportate di seguito.
  • Abilitare la sonda LOG_LIB nel file ProbeConfig.acml.

  • Abilitare l'inserimento desiderato nel log nella sezione LOG_LIB dettagliata nel file ProbeConfig.acml.

L'abilitazione dell'inserimento della libreria di log comporta le operazioni riportate di seguito.

  • L'iniezione automatica consente l'iniezione di spanId e traceId 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 e traceId attivi per una determinata richiesta HTTP. Si noti che al contenuto statico, ad esempio favicon.ico, in genere non è associato spanId o traceId.
  • L'inserimento MDC (Mapped Diagnostic Context) sfrutta le funzioni incorporate di log4j, log4j2 e logback per rendere disponibili i framework di log spanId e traceId 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