Como monitorar aplicativos do Spring Boot com o Agente de Java do AppDynamics
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 desativação de 3 anos. Recomendamos a transição para Aplicativos de Contêiner do Azure. Para mais informações, confira o anúncio de desativação dos Aplicativos Spring do Azure.
O plano Standard de consumo 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 Aplicativos de Contêiner do Azure. Para mais informações, confira Migrar o plano Standard de consumo e dedicado dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.
Esse artigo se aplica a: ✔️ Consumo Standard e dedicado (versão prévia) ✔️ Básico/Standard ❌️ Enterprise
Este artigo explica como usar o agente Java do AppDynamics para monitorar aplicativos do Spring Boot no Azure Spring Apps.
Com o agente de Java do AppDynamics, você pode:
- Monitorar aplicativos
- Configurar o agente de Java do AppDynamics usando variáveis de ambiente
- Verificar todos os dados de monitoramento do painel AppDynamics
O vídeo a seguir apresenta o agente de Java em processo do AppDynamics.
Pré-requisitos
Ativar o agente de Java do AppDynamics em processo
Para todo o fluxo de trabalho, você precisa:
- Ativar o agente Java do AppDynamics em processo no Azure Spring Apps para gerar dados de métricas do aplicativo.
- Conectar o Agente AppDynamics ao Controlador AppDynamics para coletar e visualizar os dados no controlador.
Ativar um aplicativo com o Agente AppDynamics usando a CLI do Azure
Para ativar um aplicativo por meio da CLI do Azure, use as etapas a seguir.
Crie um grupos de recursos.
Criar uma instância do Azure Spring Apps.
Criar um aplicativo usando o comando a seguir. Substitua os espaços reservados <...> pelos seus próprios valores.
az spring app create \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --is-public true
Criar uma implantação com o Agente AppDynamics usando variáveis de ambiente.
az spring app deploy \ --resource-group "<your-resource-group-name>" \ --service "<your-Azure-Spring-Apps-instance-name>" \ --name "<your-app-name>" \ --artifact-path app.jar \ --jvm-options="-javaagent:/opt/agents/appdynamics/java/javaagent.jar" \ --env APPDYNAMICS_AGENT_APPLICATION_NAME=<your-app-name> \ APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY=<your-agent-access-key> \ APPDYNAMICS_AGENT_ACCOUNT_NAME=<your-agent-account-name> \ APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME=true \ APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX=<your-agent-node-name> \ APPDYNAMICS_AGENT_TIER_NAME=<your-agent-tier-name> \ APPDYNAMICS_CONTROLLER_HOST_NAME=<your-AppDynamics-controller-host-name> \ APPDYNAMICS_CONTROLLER_SSL_ENABLED=true \ APPDYNAMICS_CONTROLLER_PORT=443
O Azure Spring Apps pré-instala o agente Java do AppDynamics no caminho /opt/agents/appdynamics/java/javaagent.jar. Você pode ativar o agente das opções de JVM de seus aplicativos e configurar o agente usando variáveis de ambiente. Você pode encontrar valores para essas variáveis em Monitorar o Azure Spring Apps com o agente Java. Para obter mais informações sobre como essas variáveis ajudam a exibir e organizar relatórios na interface do usuário do AppDynamics, consulte Camadas e Nós.
Ativar um aplicativo com o Agente AppDynamics usando o portal do Azure
Para ativar um aplicativo por meio do portal do Azure, use as etapas a seguir.
Navegue até sua instância do Azure Spring Apps no portal do Azure.
Selecione Aplicativos na seção Configurações do painel de navegação.
Selecione o aplicativo e, em seguida, selecione Configuração no painel de navegação.
Use a guia Configurações gerais para atualizar valores como as opções de JVM.
Selecione Variáveis de ambiente para adicionar ou atualizar as variáveis usadas pelo aplicativo.
Automatizar o provisionamento
Também é possível executar um pipeline de automação de provisionamento usando o Terraform, o Bicep ou um modelo do ARM (Azure Resource Manager). Esse pipeline pode fornecer uma experiência pragmática completa para instrumentar e monitorar novos aplicativos que você criar e implantar.
Automatizar o provisionamento usando o Terraform
Para configurar as variáveis de ambiente em um modelo do Terraform, adicione o seguinte código ao modelo, substituindo os espaços reservados <...> por seus próprios valores. Para saber mais, confira Gerenciar uma Implantação Ativa do Azure Spring Apps.
resource "azurerm_spring_cloud_java_deployment" "example" {
...
jvm_options = "-javaagent:/opt/agents/appdynamics/java/javaagent.jar"
...
environment_variables = {
"APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
"APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
"APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
"APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
"APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
"APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
"APPDYNAMICS_CONTROLLER_PORT" : "443"
}
}
Automatizar o provisionamento usando o Bicep
Para configurar as variáveis de ambiente em um arquivo Bicep, adicione o seguinte código ao arquivo, substituindo os espaços reservados <...> pelos seus valores. Para obter mais informações, consulte Microsoft.AppPlatform Spring/apps/deployments.
deploymentSettings: {
environmentVariables: {
APPDYNAMICS_AGENT_APPLICATION_NAME : '<your-app-name>'
APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY : '<your-agent-access-key>'
APPDYNAMICS_AGENT_ACCOUNT_NAME : '<your-agent-account-name>'
APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME : 'true'
APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX : '<your-agent-node-name>'
APPDYNAMICS_AGENT_TIER_NAME : '<your-agent-tier-name>'
APPDYNAMICS_CONTROLLER_HOST_NAME : '<your-AppDynamics-controller-host-name>'
APPDYNAMICS_CONTROLLER_SSL_ENABLED : 'true'
APPDYNAMICS_CONTROLLER_PORT : '443'
}
jvmOptions: '-javaagent:/opt/agents/appdynamics/java/javaagent.jar'
}
Automatizar o provisionamento usando um modelo ARM
Para configurar as variáveis de ambiente em um modelo do ARM, adicione o seguinte código ao modelo, substituindo os espaços reservados <...> por seus próprios valores. Para obter mais informações, consulte Microsoft.AppPlatform Spring/apps/deployments.
"deploymentSettings": {
"environmentVariables": {
"APPDYNAMICS_AGENT_APPLICATION_NAME" : "<your-app-name>",
"APPDYNAMICS_AGENT_ACCOUNT_ACCESS_KEY" : "<your-agent-access-key>",
"APPDYNAMICS_AGENT_ACCOUNT_NAME" : "<your-agent-account-name>",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME" : "true",
"APPDYNAMICS_JAVA_AGENT_REUSE_NODE_NAME_PREFIX" : "<your-agent-node-name>",
"APPDYNAMICS_AGENT_TIER_NAME" : "<your-agent-tier-name>",
"APPDYNAMICS_CONTROLLER_HOST_NAME" : "<your-AppDynamics-controller-host-name>",
"APPDYNAMICS_CONTROLLER_SSL_ENABLED" : "true",
"APPDYNAMICS_CONTROLLER_PORT" : "443"
},
"jvmOptions": "-javaagent:/opt/agents/appdynamics/java/javaagent.jar",
...
}
Revisar relatórios no painel do AppDynamics
Esta seção mostra vários relatórios no AppDynamics.
A captura de tela a seguir mostra uma visão geral dos aplicativos no painel do AppDynamics:
A guia Aplicativos mostra as informações gerais para cada um de seus aplicativos, conforme mostrado nas seguintes capturas de tela usando aplicativos de exemplo:
A captura de tela a seguir mostra como você pode obter informações básicas no painel Chamadas de Banco de Dados.
Você também pode obter informações sobre as chamadas de banco de dados mais lentas, conforme mostrado nestas capturas de tela:
A captura de tela a seguir mostra a análise de uso de memória na seção Heap da página Memória:
Você também pode ver o processo de coleta de lixo, conforme mostrado nesta captura de tela:
A captura de tela a seguir mostra a página Transações Lentas:
Você pode definir mais métricas para a JVM, conforme mostrado nesta captura de tela do Navegador de Métricas:
Exibir logs do Agente AppDynamics
Por padrão, o Azure Spring Apps imprime os logs de nível de informação do Agente AppDynamics em STDOUT
. Os logs são misturados com os logs do aplicativo. Você pode encontrar a versão explícita do agente nos logs do aplicativo.
Você também pode obter os logs do Agente AppDynamics dos seguintes locais:
- Logs do Azure Spring Apps
- Application Insights do Azure Spring Apps
- LogStream do Azure Spring Apps
Saiba mais sobre a atualização do Agente AppDynamics
O Agente AppDynamics é atualizado regularmente com a JDK (trimestralmente). A atualização do Agent pode afetar os seguintes cenários:
- Os aplicativos existentes que usam o Agente AppDynamics antes da atualização não são alterados, mas exigem reinicialização ou reimplantação para ativar a nova versão do Agente AppDynamics.
- Os aplicativos criados após a atualização usam a nova versão do Agente AppDynamics.
Configurar tráfego de saída da instância de injeção da rede virtual
Para instâncias de injeção de rede virtual dos Aplicativos Spring do Azure, verifique se o tráfego de saída está configurado corretamente para o Agente do AppDynamics. Para obter detalhes, consulte Domínios SaaS do Cisco AppDynamics e Responsabilidades do cliente para executar os Aplicativos Spring do Azure em uma rede virtual.
Entender as limitações
Para entender as limitações do Agente do AppDynamics, confira Monitorar o Azure Spring Apps com o Agente Java.
Próximas etapas
Usar o Agente Java em processo do Application Insights no Azure Spring Apps