Condividi tramite


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.

  1. Nella portale di Azure passare all'app di destinazione e quindi selezionare Risoluzione dei problemi.

    Screenshot del portale di Azure che mostra la pagina Panoramica dell'app con il pulsante Risoluzione dei problemi evidenziato.

  2. Nel riquadro Risoluzione dei problemi selezionare l'istanza dell'app e il tipo di dump da raccogliere.

    Screenshot del riquadro risoluzione dei problemi portale di Azure.

  3. Nel campo Percorso file specificare il percorso di montaggio dell'archiviazione permanente.

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

Passaggi successivi