Ruční zachycení výpisu paměti haldy a výpisu vláken a použití nástroje Java Flight Recorder v Azure Spring Apps
Poznámka:
Azure Spring Apps je nový název služby Azure Spring Cloud. Přestože má služba nový název, na některých místech uvidíte starý název, protože pracujeme na aktualizaci prostředků, jako jsou snímky obrazovky, videa a diagramy.
Tento článek se vztahuje na: ✔️ Basic/Standard ✔️ Enterprise
Tento článek popisuje, jak ručně vygenerovat výpis paměti haldy nebo výpis vlákna a jak spustit Java Flight Recorder (JFR).
Efektivní řešení potíží je důležité, abyste měli jistotu, že můžete opravit problémy v produkčních prostředích a udržovat svoji firmu online. Azure Spring Apps poskytuje streamování protokolů aplikací a dotazování, bohaté metriky emitující, výstrahy, distribuované trasování atd. Když ale dostanete upozornění na požadavky s vysokou latencí, únikem haldy JVM nebo vysokým využitím procesoru, neexistuje žádné řešení na poslední míle. Z tohoto důvodu jsme vám umožnili ručně vygenerovat výpis haldy, vygenerovat výpis vlákna a spustit JFR.
Požadavky
- Nasazená instance služby Azure Spring Apps Začněte tak, že si prohlédnete rychlý start: Nasazení první aplikace do Azure Spring Apps.
- Alespoň jedna aplikace již byla vytvořena ve vaší instanci služby.
- Vlastní trvalé úložiště, jak je popsáno v tématu Jak povolit vlastní trvalé úložiště v Azure Spring Apps. Toto úložiště slouží k ukládání vygenerovaných diagnostických souborů. Cesty, které zadáte v níže uvedených hodnotách parametrů, by měly být pod cestou připojení trvalého úložiště vázaného na vaši aplikaci. Pokud chcete použít cestu pod cestou připojení, nezapomeňte dílčí cestu vytvořit předem.
Vygenerování výpisu haldy
Pomocí následujícího příkazu vygenerujte výpis paměti haldy vaší aplikace v Azure Spring Apps.
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>
Generování výpisu stavu vlákna
Pomocí následujícího příkazu vygenerujte výpis stavu vlákna vaší aplikace v Azure Spring Apps.
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>
Spuštění JFR
Pomocí následujícího příkazu spusťte JFR pro vaši aplikaci v Azure Spring Apps.
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>
Výchozí hodnota je duration
60 sekund.
Generování výpisu paměti pomocí webu Azure Portal
Následující postup použijte k vygenerování výpisu haldy nebo výpisu vlákna vaší aplikace v Azure Spring Apps.
Na webu Azure Portal přejděte do cílové aplikace a pak vyberte Řešení potíží.
V podokně Řešení potíží vyberte instanci aplikace a typ výpisu stavu, který chcete shromáždit.
V poli Cesta k souboru zadejte cestu připojení k trvalému úložišti.
Vyberte Shromáždit.
Získání diagnostických souborů
Přejděte do cílové cesty k souboru v trvalém úložišti a vyhledejte výpis paměti nebo JFR. Odtud si je můžete stáhnout do místního počítače. Název vygenerovaného souboru bude podobný <app-instance>_heapdump_<time-stamp>.hprof
výpisu haldy, <app-instance>_threaddump_<time-stamp>.txt
výpisu vlákna a <app-instance>_JFR_<time-stamp>.jfr
souboru JFR.