Udostępnij za pośrednictwem


Przechwytywanie zrzutu sterty i zrzutu wątku ręcznie i używanie narzędzia Java Flight Recorder w usłudze Azure Spring Apps

Uwaga

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Ten artykuł dotyczy: ✔️ Podstawowa/Standardowa ✔️ Enterprise

W tym artykule opisano sposób ręcznego generowania zrzutu stertowego lub zrzutu wątku oraz sposobu uruchamiania narzędzia Java Flight Recorder (JFR).

Skuteczne rozwiązywanie problemów ma kluczowe znaczenie dla zapewnienia, że możesz rozwiązać problemy w środowiskach produkcyjnych i utrzymać swoją firmę w trybie online. Usługa Azure Spring Apps udostępnia przesyłanie strumieniowe dzienników aplikacji i wykonywanie zapytań, zaawansowane metryki emitujące, alerty, śledzenie rozproszone itd. Jednak w przypadku otrzymywania alertów dotyczących żądań z dużym opóźnieniem, wyciekiem stert JVM lub wysokim użyciem procesora CPU nie ma rozwiązania z ostatniej mili. Z tego powodu umożliwiliśmy ręczne generowanie zrzutu stert, generowanie zrzutu wątku i uruchamianie JFR.

Wymagania wstępne

Generowanie zrzutu stert

Użyj następującego polecenia, aby wygenerować zrzut stert aplikacji w usłudze 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>

Generowanie zrzutu wątku

Użyj następującego polecenia, aby wygenerować zrzut wątków aplikacji w usłudze 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>

Uruchamianie JFR

Użyj następującego polecenia, aby uruchomić JFR dla aplikacji w usłudze 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>

Wartość domyślna to duration 60 sekund.

Generowanie zrzutu przy użyciu witryny Azure Portal

Wykonaj poniższe kroki, aby wygenerować stertę lub zrzut wątków aplikacji w usłudze Azure Spring Apps.

  1. W witrynie Azure Portal przejdź do aplikacji docelowej, a następnie wybierz pozycję Rozwiązywanie problemów.

    Zrzut ekranu witryny Azure Portal przedstawiający stronę Przegląd aplikacji z wyróżnionym przyciskiem Rozwiązywanie problemów.

  2. W okienku Rozwiązywanie problemów wybierz wystąpienie aplikacji i typ zrzutu, który chcesz zebrać.

    Zrzut ekranu przedstawiający okienko Rozwiązywanie problemów z witryną Azure Portal.

  3. W polu Ścieżka pliku określ ścieżkę instalacji magazynu trwałego.

  4. Wybierz pozycję Zbieraj.

Pobieranie plików diagnostycznych

Przejdź do docelowej ścieżki pliku w magazynie trwałym i znajdź zrzut/JFR. Stamtąd możesz pobrać je na komputer lokalny. Nazwa wygenerowanego pliku będzie podobna do <app-instance>_heapdump_<time-stamp>.hprof zrzutu stert, <app-instance>_threaddump_<time-stamp>.txt zrzutu wątku i <app-instance>_JFR_<time-stamp>.jfr pliku JFR.

Następne kroki