Manuelles Erfassen von Heapdump, Threaddump und JFR in Azure Spring Apps
Hinweis
Die Pläne Basic, Standard und Enterprise gelten ab Mitte März 2025 als veraltet und werden über einen Zeitraum von 3 Jahren eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie in der Ankündigung zur Einstellung von Azure Spring Apps.
Der Standardverbrauchs- und dedizierte Plan wird ab dem 30. September 2024 als veraltet gekennzeichnet und nach sechs Monaten vollständig eingestellt. Es wird empfohlen, auf Azure Container Apps umzustellen. Weitere Informationen finden Sie unter Migrieren vom Standardverbrauchs- und dedizierten Plan von Azure Spring Apps zu Azure Container Apps.
Dieser Artikel gilt für: ✔️ Basic/Standard ✔️ Enterprise
In diesem Artikel wird beschrieben, wie Sie manuell ein Heap- oder Threadabbild generieren und Java Flight Recorder (JFR) starten.
Eine effektive Problembehandlung ist wichtig, um sicherzustellen, dass Sie Probleme in Produktionsumgebungen beheben und die Onlineverfügbarkeit Ihres Unternehmens gewährleisten können. Azure Spring Apps bietet unter anderem Streaming und Abfragen von Anwendungsprotokollen, umfangreiche Metriken, Warnungen und die verteilte Ablaufverfolgung. Wenn Sie jedoch Warnungen zu Anforderungen mit hoher Latenz, JVM-Heapverlust oder hoher CPU-Auslastung erhalten, gibt es keine Lösung für die letzten Schritte. Aus diesem Grund haben wir es Ihnen ermöglicht, manuell ein Heap- oder Threadabbild zu generieren und JFR zu starten.
Voraussetzungen
- Eine bereitgestellte Azure Spring Apps-Dienstinstanz. Informationen zu den ersten Schritten finden Sie unter Schnellstart: Bereitstellen Ihrer ersten Anwendung in Azure Spring Apps.
- Mindestens eine bereits in Ihrer Dienstinstanz erstellte Anwendung.
- Ihr eigener persistenter Speicher (wie unter Aktivieren des eigenen persistenten Speichers in Azure Spring Apps beschrieben). Dieser Speicher wird verwendet, um generierte Diagnosedateien zu speichern. Die Pfade, die Sie in den unten angegebenen Parameterwerten angeben, sollten sich unter dem Bereitstellungspfad des persistenten Speichers befinden, der an Ihre App gebunden ist. Wenn Sie einen Pfad unter dem Bereitstellungspfad verwenden möchten, müssen Sie den Unterpfad im Voraus erstellen.
Generieren eines Heapdumps
Verwenden Sie den folgenden Befehl, um ein Heapabbild Ihrer App in Azure Spring Apps zu generieren.
az spring app deployment generate-heap-dump \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--app <app-name> \
--deployment <deployment-name> \
--app-instance <app-instance name> \
--file-path <your-target-file-path-in-your-persistent-storage-mount-path>
Generieren eines Threaddumps
Verwenden Sie den folgenden Befehl, um ein Threadabbild Ihrer App in Azure Spring Apps zu generieren.
az spring app deployment generate-thread-dump \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--app <app-name> \
--deployment <deployment-name> \
--app-instance <app-instance name> \
--file-path <your-target-file-path-in-your-persistent-storage-mount-path>
Starten von JFR
Verwenden Sie den folgenden Befehl, um JFR für Ihre App in Azure Spring Apps zu starten.
az spring app deployment start-jfr \
--resource-group <resource-group-name> \
--service <Azure-Spring-Apps-instance-name> \
--app <app-name> \
--deployment <deployment-name> \
--app-instance <app-instance name> \
--file-path <your-target-file-path-in-your-persistent-storage-mount-path> \
--duration <duration-of-JFR>
Der Standardwert für duration
beträgt 60 Sekunden.
Generieren eines Abbilds mithilfe des Microsoft Azure-Portals
Verwenden Sie die folgenden Schritte, um ein Heap- oder Threadabbild Ihrer App in Azure Spring Apps zu generieren.
Navigieren Sie im Azure-Portal zu Ihrer Ziel-App, und wählen Sie dann Problembehandlung aus.
Wählen Sie im Bereich Problembehandlung die App-Instanz und den Typ des Abbilds aus, das Sie erfassen möchten.
Geben Sie im Feld Dateipfad den Bereitstellungspfad Ihres persistenten Speichers an.
Wählen Sie Sammeln aus.
Abrufen der Diagnosedateien
Navigieren Sie zum Zieldateipfad in Ihrem persistenten Speicher, und suchen Sie nach „dump/JFR“. Von dort aus können Sie sie auf Ihren lokalen Computer herunterladen. Der Name der generierten Datei ähnelt <app-instance>_heapdump_<time-stamp>.hprof
für das Heapabbild, <app-instance>_threaddump_<time-stamp>.txt
für das Threadabbild und <app-instance>_JFR_<time-stamp>.jfr
für die JFR-Datei.