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.

  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