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

Nota

Azure Spring Apps é o novo nome para o serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns lugares por um tempo enquanto trabalhamos para atualizar ativos, como capturas de tela, vídeos e diagramas.

Este artigo aplica-se a: ✔️ Basic/Standard ✔️ Enterprise

Este artigo descreve como gerar manualmente um despejo de pilha ou despejo de thread 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. No entanto, quando você recebe alertas sobre solicitações com alta latência, vazamento de heap da JVM ou alto uso da CPU, não há solução de última milha. Por esse motivo, permitimos que você gere manualmente um despejo de pilha, gere um despejo de thread e inicie o JFR.

Pré-requisitos

Gerar um despejo de pilha

Use o comando a seguir para gerar um despejo de pilha do seu 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 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 arquivo , 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 arquivo gerado será semelhante ao <app-instance>_heapdump_<time-stamp>.hprof do despejo de pilha, <app-instance>_threaddump_<time-stamp>.txt do despejo de thread e <app-instance>_JFR_<time-stamp>.jfr do arquivo JFR.

Próximos passos