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
-
Thread-Snapshots erfordern JDK8 oder höher.
-
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.