Capture despejo de pilha e despejo de thread manualmente e use o Java Flight Recorder no Azure Spring Apps
Nota
Os planos Basic, 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 obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.
O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.
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
- Uma instância de serviço do Azure Spring Apps implantada. Para começar, consulte Guia de início rápido: implantar seu primeiro aplicativo no Azure Spring Apps.
- Pelo menos um aplicativo já criado em sua instância de serviço.
- Seu próprio armazenamento persistente, conforme descrito em Como habilitar seu próprio armazenamento persistente no Azure Spring Apps. Esse armazenamento é usado para salvar os arquivos de diagnóstico gerados. Os caminhos fornecidos nos valores de parâmetro abaixo devem estar sob o caminho de montagem do armazenamento persistente vinculado ao seu aplicativo. Se você quiser usar um caminho sob o caminho de montagem, certifique-se de criar o subcaminho com antecedência.
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.
No portal do Azure, navegue até o aplicativo de destino e selecione Solução de problemas.
No painel Solução de problemas, selecione a instância do aplicativo e o tipo de despejo que você deseja coletar.
No campo Caminho do arquivo , especifique o caminho de montagem do armazenamento persistente.
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.