Thread-Snapshots in APM Agent konfigurieren

Mit der Thread-Snapshots-Funktion können Sie Thread-Stack-Snapshots sammeln, die für eine tiefgreifende Tauchanalyse verwendet werden können.

Thread-Snapshots ermöglichen die Sammlung von Traces wie Thread-Stack-Snapshots, Thread-Speicher-Overhead, Thread-CPU-Overhead und GC-Auswirkungen auf Trace. Er erfasst die Thread-Stack-Snapshots und stapelbezogenen Daten wie Status und Sperren in einem bestimmten Intervall.

Benutzer können die Erfassung von Thread-Stack-Snapshots aktivieren, um Stack-Dumps von Spans zu erstellen. Sie bietet Sichtbarkeit für Benutzercode-Stacks.

Das Standardzeitintervall für die Thread-Snapshots-Erfassung beträgt 250 ms.

Dieses Feature ist standardmäßig deaktiviert.

Die Thread-Snapshots werden von APM Java Agent und APM Tracer unterstützt. Einzelheiten zum Konfigurieren von Thread-Snapshots in APM Tracer finden Sie unter Thread-Snapshots in APM-Tracer konfigurieren.

Voraussetzungen

  1. Thread-Snapshots erfordern JDK8 oder höher.

  2. Thread-Snapshots werden in der Version von APM Java Agent 1.4 oder höher unterstützt.

Thread-Snapshots aktivieren

Nachdem der APM-Java-Agent bereitgestellt wurde, können Sie das Feature "Thread-Snapshots" aktivieren, indem Sie die Datei AgentConfig.properties aktualisieren, die unter dem folgenden Speicherort vorhanden sein muss:

$DOMAIN_HOME/oracle-apm-agent/config

  • Öffnen Sie die Datei AgentConfig.properties.
  • Aktualisieren Sie die folgende Eigenschaft in den Wert true:
    com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable=true 

    Der Eigenschaftswert für Thread-Snapshots ist standardmäßig false (Funktion deaktiviert).

Konfigurationseigenschaften

In der folgenden Tabelle werden die Eigenschaften der Thread-Snapshots angezeigt, die zur Laufzeit konfiguriert werden können.

Eigenschaftsname Beschreibung Einheit Standardwert Unterstützte Werte
com.oracle.apm.agent.deepdive.trace.snapshots.collection.enable Aktivieren oder deaktivieren Sie die Deepdive Snapshot-Zusammenstellung. Zeichenfolge false Wahr/false
com.oracle.apm.agent.deepdive.maxPercentTraceExportToCollectorPerMinute Maximaler Prozentsatz der eingehenden Traces pro Minute, um sie in den Collector zu exportieren. Prozentsatz 100

Minimum:1

Maximum: 100

com.oracle.apm.agent.deepdive.maxTraceExportToCollectorPerMinute Maximale Anzahl der Top Traces pro Minute, um sie in den Collector zu exportieren. Nummer 2000

Minimum:1

Maximum: 1500

com.oracle.apm.agent.deepdive.snapshotCollectionIntervalInMS Intervall, in dem Thread-Snapshot-Daten erfasst werden. Millisekunden 250

Minimum:250

Maximum: 300000

com.oracle.apm.agent.deepdive.maxSnapshotsPerTrace Maximal zulässige Anzahl an Snapshots pro Trace. Nummer 16

Minimum: 1

Maximum: 16

com.oracle.apm.agent.deepdive.maxStackTraceDepthPerSnapshot Maximal gesammelte Stacktrace Frames für jeden Thread. Nummer 256

Minimum: 1

Maximum: 256

com.oracle.apm.agent.deepdive.logLevel Drucken Sie tiefe Tauchlogs, die diesem Eigenschaftswert entsprechen oder darüber liegen. Zeichenfolge INFO

DEBUG, INFO, WARNUNG, SCHWERWIEGEND

com.oracle.apm.agent.deepdive.maxProcessCpuUsagePercent Maximale Prozess-CPU-Auslastung. Es wird empfohlen, die gesamte CPU-Auslastung des Prozesses unter diesem Schwellenwert zu halten. Nummer 90

Minimum: 1

Maximum: 90

com.oracle.apm.agent.deepdive.deepDiveCpuUsagePercent.minSchwellenwert Mindestschwellenwert für die allgemeine tiefe CPU-Auslastung. Prozentsatz 3

Minimum: 1

Maximum: 5

com.oracle.apm.agent.deepdive.deepDiveCpuUsagePercent.maxThreshold Maximaler Schwellenwert für die allgemeine tiefe CPU-Auslastung. Prozentsatz 5

Minimum: 5

Maximum: 20

com.oracle.apm.agent.deepdive.traceLifeInMS.minSchwellenwert Minimaler Schwellenwert für ein Trace. Millisekunden 50

Minimum: 50

Maximum: 60000

com.oracle.apm.agent.deepdive.traceLifeInMS.maxThreshold Maximaler Schwellenwert für ein Trace. Millisekunden 60000

Minimum: 60000

Maximum: 600000

Thread-Snapshots überprüfen

  • Um zu prüfen, ob die Funktion für Thread-Snapshots initialisiert wurde, prüfen Sie die Logdatei vom folgenden Speicherort: $DOMAIN_HOME/oracle-apm-agent/deepdive/<server-name>/ApmDeepDiveAgent.log.

    Die Logdatei sollte wie folgt aussehen:
     INFO [main] <DeepDiveManager> DeepDiveManger initialized successfully. 
  • Um zu prüfen, ob die Funktion "Thread-Snapshots" richtig konfiguriert wurde und Daten in Application Performance Monitoring hochgeladen werden, verwenden Sie die Option Snapshot-Ansicht unter Trace- oder Span-Details anzeigen.