Compartilhar via


Capturar o despejo de heap e o despejo de thread manualmente e usar o Java Flight Recorder no Azure Spring Apps

Observação

Os planos Básico, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.

O plano Consumo Standard e dedicado será preterido a partir de 30 de setembro de 2024, com desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.

Este artigo se aplica ao: ✔️ nível Básico/Standard ✔️ nível Enterprise

Este artigo descreve como gerar manualmente um despejo de heap ou despejo de thread e como iniciar o JFR (Java Flight Recorder).

Uma solução de problemas eficaz é essencial para garantir que você possa corrigir problemas em ambientes de produção e manter seu negócio online. O Azure Spring Apps fornece consulta e streaming de log do aplicativo, emissão de métricas avançadas, alertas, rastreamento distribuído e assim por diante. No entanto, quando você recebe alertas sobre solicitações com alta latência, vazamento de heap de JVM ou alto uso de CPU, não há nenhuma solução de última hora que seja perfeita. Por esse motivo, permitimos que você gere um despejo de heap, gere um despejo de thread e inicie o JFR manualmente.

Pré-requisitos

Gerar um despejo de heap

Use o comando a seguir para gerar um despejo de heap do aplicativo no 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>

Gerar um despejo de thread

Use o comando a seguir para gerar um despejo de thread do aplicativo no 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>

Iniciar o JFR

Use o comando a seguir para iniciar o JFR para seu aplicativo no 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>

O valor padrão para duration é 60 segundos.

Gerar um despejo usando o portal do Azure

Use as etapas a seguir para gerar um despejo de heap ou de thread do aplicativo no Azure Spring Apps.

  1. No portal do Azure, navegue até seu aplicativo de destino e selecione Solução de problemas.

    Captura de tela do portal do Azure mostrando a página Visão Geral do aplicativo com o botão Solução de Problemas realçado.

  2. No painel Solução de problemas, selecione a instância do aplicativo e o tipo de despejo que você gostaria de coletar.

    Captura de tela do painel Solução de Problemas do portal do Azure.

  3. No campo Caminho do arquivo, especifique o caminho de montagem do armazenamento persistente.

  4. Selecione Coletar.

Obtenha seus arquivos de diagnóstico

Navegue para o caminho do arquivo de destino em seu armazenamento persistente e localize o despejo/JFR. Desse local, você pode baixá-los para o seu computador local. O nome do arquivo gerado será semelhante a <app-instance>_heapdump_<time-stamp>.hprof para o despejo de heap, <app-instance>_threaddump_<time-stamp>.txt para o despejo de thread e <app-instance>_JFR_<time-stamp>.jfr para o arquivo JFR.

Próximas etapas