Konfigurierbare APM-Java-Agent-Optionen

Für den APM-Java-Agent können die folgenden Optionen für die Datenerfassung konfiguriert werden:

Abgelöste Traces

Dieses Feature wurde entwickelt, um Fälle von übermäßigem Spannenanzahl pro Trace zu beseitigen. Wenn zu viele Spans in einem einzelnen Aufruf erstellt werden, kann der Agent einen höheren als den gewünschten Overhead verursachen. Außerdem kann er die Stundenanzahl erhöhen, was zu einer höheren als erwarteten Gebühr führt. Fälle, in denen dies ein Problem darstellen kann, umfassen rekursive Aufrufe (absichtlich oder nicht), generierter Code, der zu einer hohen Anzahl von pro Transaktion ausgeführten SQLs und anderen führt.

  • Mit der Funktion "Betrug" können Benutzer die maximale Anzahl von Spans pro Aufruf begrenzen. Es bietet auch eine Möglichkeit, Spans auszuschließen, die als "nicht wert" betrachtet werden können (z. B. eine große Menge an sehr schnellen SQLs).
  • Die spezifischen Grenzwerte für Stichproben, die auf einem Span-Namen basierende Inklusion/Ausschluss und die JDBC-Schwellenwerte können pro Thread pro Aufruf konfiguriert werden. Einzelheiten zu Konfigurationsoptionen finden Sie in der Datei ProbeConfig.acml im Verzeichnis oracle-apm-agent\config.
  • Standardmäßig wird jeder Aufruf auf 100 Spans beschränkt.
  • Basisstatistiken über gelöschte Spans können pro Thread pro Aufruf erfasst werden.

Im Folgenden finden Sie ein Beispiel für eine Einstellung, mit der die maximale Anzahl von JDBC-Spans pro Threadaufruf auf 50 begrenzt, ein bekanntes mundanes SQL ausgeschlossen und SQLs ausgeschlossen werden, die in weniger als 2 ms ausgeführt werden. Beachten Sie, dass der Agent durch Aktivieren der Option summarize dem übergeordneten Span die folgenden Metriken hinzufügt: Anzahl gelöschter Span, durchschnittliche Dauer gelöschter Span, minimale Zeit für gelöschte Span, maximale Zeit für gelöschte Span, Anzahl gelöschte Span-Fehler sowie Logdatensätze mit den 5 längsten gelöschten Spans und den ersten 5 gelöschten Fehlern.

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

Stromunterbrecher

  • Der Circuit Breaker reduziert automatisch die Nutzung von JVM-Ressourcen durch den Agent, wenn ein starker Ressourcendruck erkannt wird. Der Circuit Breaker nimmt automatisch die normale Agent-Funktion wieder auf, wenn der Ressourcendruck ausreichend verringert wurde.
  • Standardmäßig wird der Circuit Breaker inkrementell gestoppt, und die Agent-Ausführung wird basierend auf der Heap-Speicherauslastung und der Garbage-Collection-Zeit automatisch angehalten und wiederaufgenommen.
    Performancefaktor Anhalten Wiederaufnehmen Intervall Zielkomponenten
    Heap-Speicherauslastung 95 % 85 % 2 Minuten Probes
          5 Minuten Vollständiger Agent
    Garbage-Collection-Zeit 10 % 5 % 2 Minuten Probes
          5 Minuten Vollständiger Agent
  • Performancefaktoren, Schwellenwerte für Anhalten/Wiederaufnehmen, Intervalle und Zielkomponenten können konfiguriert werden. Weitere Einzelheiten finden Sie in der Datei CircuitBreakerConfig.acml im Verzeichnis oracle-apm-agent\config\<version>.
  • Der Leistungsschalter ist standardmäßig aktiviert. Sie kann mit der Eigenschaft com.oracle.apm.agent.circuit.breaker.enable aus der Datei AgentConfig.properties unter dem Verzeichnis oracle-apm-agent\config deaktiviert und erneut aktiviert werden.

    Um Circuit Breaker zu deaktivieren und erneut zu aktivieren, muss der APM-Java-Agent nicht neu gestartet werden.

Stichprobe

  • Standardmäßig werden alle Spans erfasst. Um die Samplingkonfiguration zu ändern, müssen Sie das benutzerdefinierte Sampling konfigurieren.
  • Sie können die Menge der Tracedaten reduzieren, indem Sie die Sampling-Konfiguration angeben. Weitere Einzelheiten finden Sie unter APM-Sampling konfigurieren.
  • Der Samplingvorgang unterliegt dem Grenzwert der abgekürzten Traces und des Circuit Breakers für die Datenerfassung.

Logbibliothekseinfügung

Die aktiven spanId und traceId können in Logmeldungen injiziert werden. Dies ermöglicht eine Korrelation zwischen Logmeldungen und APM-Traces, um die Loganalyse und Fehlerbehebung zu vereinfachen.

So konfigurieren Sie dieses Feature:
  • Aktivieren Sie die Probe LOG_LIB in der Datei ProbeConfig.acml.

  • Aktivieren Sie die gewünschte Log-Injection im detaillierten LOG_LIB-Abschnitt in ProbeConfig.acml.

Die Aktivierung von Log Library Injection führt folgende Schritte aus:

  • Die automatische Injection ermöglicht die Injection von spanId und traceId ohne Änderung der vorhandenen Anwendungsloggingkonfiguration.

    Log4j 1.2, log4j 2, logback und java.util.logging werden unterstützt.

  • WebLogic Mit Injection des Serverzugriffslogs können die aktiven spanId und traceId für eine bestimmte HTTP-Anforderung injiziert werden. Beachten Sie, dass statischer Inhalt wie favicon.ico in der Regel nicht mit spanId oder traceId verknüpft ist.
  • Mapped Diagnostic Context-(MDC-)Injection nutzt die integrierten Funktionen log4j, log4j2 und Logback, um die aktiven spanId und traceId für Logging-Frameworks verfügbar zu machen.

    Sie können die folgenden Schlüssel in der entsprechenden MDC-Loggingkonfiguration für das Logging-Framework der Anwendung angeben:
    • oracle.apm.spanId
    • oracle.apm.traceId