Partilhar via


Capture despejo de pilha e despejo de thread manualmente e use o Java Flight Recorder no Azure Spring Apps

Nota

Os planos Basic, Standarde Enterprise entraram em um período de aposentadoria em 17 de março de 2025. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.

O plano de consumo padrão e o plano dedicado entraram em um período de desativação a 30 de setembro de 2024, com um encerramento completo até o final de março de 2025. Para obter mais informações, consulte Migrar consumo do plano Padrão e Dedicado do Azure Spring Apps para Azure Container Apps.

Este artigo aplica-se a:✅ Basic/Standard ✅ Enterprise

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

A solução de problemas eficaz é fundamental para garantir que você possa corrigir problemas em ambientes de produção e manter sua empresa on-line. O Azure Spring Apps fornece streaming e consulta de log de aplicativos, emissão de métricas avançadas, alertas, rastreamento distribuído e assim por diante. Contudo, quando recebe alertas sobre solicitações com alta latência, fuga de memória na heap da JVM ou alto uso da CPU, não há solução de última etapa. Por esse motivo, permitimos que (o/a) utilizador(a) gere manualmente um despejo de heap, um despejo de thread e inicie o JFR.

Pré-requisitos

Gerar um despejo de pilha

Utilize o seguinte comando para gerar uma exportação de heap da sua aplicação 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 seu 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 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 dump usando o portal do Azure

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

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

    Captura de ecrã do portal do Azure a mostrar a página Descrição Geral da aplicação com o botão Resoluçã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ê deseja coletar.

    Captura de ecrã do painel Resolução de problemas do portal do Azure.

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

  4. Selecione Coletar.

Obtenha os seus ficheiros de diagnóstico

Navegue até o caminho do arquivo de destino em seu armazenamento persistente e encontre seu dump/JFR. A partir daí, você pode baixá-los para sua máquina local. O nome do ficheiro gerado será semelhante a <app-instance>heapdump<time-stamp>.hprof para o heap dump, <app-instance>threaddump<time-stamp>.txt para o thread dump, e <app-instance>JFR<time-stamp>.jfr para o ficheiro JFR.

Próximos passos