Acquisire manualmente dump dell'heap e dump del thread e usare Java Flight Recorder in Azure Spring Apps
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ✔️ Basic/Standard ✔️ Enterprise
Questo articolo descrive come generare manualmente un dump dell'heap o un dump del thread e come avviare Java Flight Recorder (JFR).
La risoluzione dei problemi efficace è fondamentale per garantire la risoluzione dei problemi negli ambienti di produzione e mantenere online l'azienda. Azure Spring Apps offre flussi di log applicazioni e query, metriche avanzate che generano, avvisi, traccia distribuita e così via. Tuttavia, quando si ricevono avvisi sulle richieste con una latenza elevata, una perdita di heap JVM o un utilizzo elevato della CPU, non esiste una soluzione di ultimo miglio. Per questo motivo, è stato abilitato l'utente a generare manualmente un dump dell'heap, generare un dump del thread e avviare JFR.
Prerequisiti
- Istanza del servizio Azure Spring Apps distribuita. Per iniziare, vedere Avvio rapido: Distribuire la prima applicazione in Azure Spring Apps.
- Almeno un'applicazione già creata nell'istanza del servizio.
- Archiviazione permanente personalizzata, come descritto in Come abilitare l'archiviazione permanente in Azure Spring Apps. Questa risorsa di archiviazione viene usata per salvare i file di diagnostica generati. I percorsi specificati nei valori dei parametri seguenti devono trovarsi nel percorso di montaggio dell'archiviazione permanente associata all'app. Se si vuole usare un percorso nel percorso di montaggio, assicurarsi di creare in anticipo il sottopercorso.
Generare un dump dell'heap
Usare il comando seguente per generare un dump dell'heap dell'app in 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>
Generare un dump del thread
Usare il comando seguente per generare un dump del thread dell'app in 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>
Avviare JFR
Usare il comando seguente per avviare JFR per l'app in 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>
Il valore predefinito per duration
è 60 secondi.
Generare un dump usando il portale di Azure
Usare la procedura seguente per generare un heap o un dump del thread dell'app in Azure Spring Apps.
Nella portale di Azure passare all'app di destinazione e quindi selezionare Risoluzione dei problemi.
Nel riquadro Risoluzione dei problemi selezionare l'istanza dell'app e il tipo di dump da raccogliere.
Nel campo Percorso file specificare il percorso di montaggio dell'archiviazione permanente.
Selezionare Raccogli.
Ottenere i file di diagnostica
Passare al percorso del file di destinazione nell'archiviazione permanente e trovare il dump/JFR. Da qui è possibile scaricarli nel computer locale. Il nome del file generato sarà simile al <app-instance>_heapdump_<time-stamp>.hprof
dump dell'heap, <app-instance>_threaddump_<time-stamp>.txt
al dump del thread e <app-instance>_JFR_<time-stamp>.jfr
al file JFR.