Share via


Acquisire manualmente dump dell'heap e dump del thread e usare Java Flight Recorder in Azure Spring Apps

Nota

Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.

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