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:

Plány Basic, Standard a Enterprise budou od poloviny března 2025 vyřazeny ze 3letého období vyřazení. Doporučujeme přejít na Azure Container Apps. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Od 30. září 2024 bude od 30. září 2024 zastaralý plán s úplným vypnutím po šesti měsících. Doporučujeme přejít na Azure Container Apps. Další informace najdete v tématu Migrace spotřeby Azure Spring Apps Úrovně Standard a vyhrazeného plánu do Azure Container Apps.

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.

  1. Na webu Azure Portal přejděte do cílové aplikace a pak vyberte Řešení potíží.

    Snímek obrazovky webu Azure Portal se stránkou Přehled aplikace se zvýrazněným tlačítkem Řešení potíží

  2. V podokně Řešení potíží vyberte instanci aplikace a typ výpisu stavu, který chcete shromáždit.

    Snímek obrazovky s podoknem Řešení potíží na webu Azure Portal

  3. V poli Cesta k souboru zadejte cestu připojení k trvalému úložišti.

  4. 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.

Další kroky