Sdílet prostřednictvím


Ruční zachycení výpisu paměti a výpisu vláken s použitím nástroje Java Flight Recorder v Azure Spring Apps

Poznámka:

Plány Basic, Standarda Enterprise vstoupily do důchodového období 17. března 2025. Další informace najdete v oznámení o vyřazení Azure Spring Apps.

Tento článek se vztahuje na:✅ Basic/Standard ✅ Enterprise

Tento článek popisuje, jak ručně vytvořit výpis paměti haldy nebo 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 Pro začátek se podívejte na příručku 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 montážní cestou perzistentního úložiště připojeného k vaší aplikaci. Pokud chcete použít cestu v rámci připojovací cesty, nezapomeňte podcestu vytvořit předem.

Vygenerovat výpis haldy

Použijte tento příkaz k vygenerování výpisu haldy vaší aplikace na 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 pomocí portálu Azure

Následující postup použijte k vygenerování výpisu haldy nebo vlákna 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, 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ískejte své diagnostické soubory

Přejděte do cílové cesty k souboru v trvalém úložišti a vyhledejte dump/JFR soubor. Odtud si je můžete stáhnout do místního počítače. cs-CZ: Název vygenerovaného souboru bude podobný <instance aplikace>heapdump<time-stamp>.hprof pro výpis paměti haldy, <instance aplikace>threaddump<time-stamp>.txt pro výpis vlákna a <instance aplikace>JFR<time-stamp>.jfr pro soubor JFR.

Další kroky