Como monitorar aplicativos Spring Boot com o AppDynamics Java Agent

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: ✔️ Consumo padrão e dedicado (Pré-visualização) ✔️ Básico/Padrão ❌️ Empresa

Este artigo explica como usar o AppDynamics Java Agent para monitorar aplicativos Spring Boot no Azure Spring Apps.

Com o AppDynamics Java Agent, você pode:

  • Monitorizar aplicações
  • Configurar o AppDynamics Java Agent usando variáveis de ambiente
  • Verifique todos os dados de monitoramento do painel do AppDynamics

O vídeo a seguir apresenta o agente em processo do AppDynamics Java.


Pré-requisitos

Ativar o agente em processo Java do AppDynamics

Para todo o fluxo de trabalho, você precisa:

  • Ative o agente em processo Java do AppDynamics no Azure Spring Apps para gerar dados de métricas de aplicativo.
  • Conecte o Agente do AppDynamics ao Controlador do AppDynamics para coletar e visualizar os dados no controlador.

Diagrama que mostra o AppDynamics Agent com seta bidirecional para Spring Boot Apps no Azure Spring Apps e seta apontando para AppDynamics Agent.

Ativar um aplicativo com o AppDynamics Agent usando a CLI do Azure

Para ativar um aplicativo por meio da CLI do Azure, use as etapas a seguir.

  1. Crie um grupo de recursos.

  2. Crie uma instância do Azure Spring Apps.

  3. Crie um aplicativo usando o seguinte comando. 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
    
  4. Crie uma implantação com o AppDynamics Agent 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 a partir das opções da JVM de seus aplicativos e, em seguida, configurar o agente usando variáveis de ambiente. Você pode encontrar valores para essas variáveis em Monitor Azure Spring Apps with Java Agent. 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 AppDynamics Agent usando o portal do Azure

Para ativar um aplicativo por meio do portal do Azure, use as etapas a seguir.

  1. Navegue até sua instância do Azure Spring Apps no portal do Azure.

  2. Selecione Aplicativos na seção Configurações do painel de navegação.

    Captura de ecrã do portal do Azure que mostra a página Aplicações para uma instância do Azure Spring Apps.

  3. Selecione a aplicação e, em seguida, selecione Configuração no painel de navegação.

  4. Use a guia Configurações gerais para atualizar valores como as opções da JVM.

    Captura de ecrã do portal do Azure que mostra a página Configuração de uma aplicação numa instância do Azure Spring Apps, com o separador Definições gerais selecionada.

  5. Selecione Variáveis de ambiente para adicionar ou atualizar as variáveis usadas pelo seu aplicativo.

    Captura de ecrã do portal do Azure que mostra a página Configuração com o separador Variáveis de Ambiente selecionado.

Automatize o provisionamento

Você também pode executar um pipeline de automação de provisionamento usando o modelo Terraform, Bíceps ou Azure Resource Manager (modelo ARM). Esse pipeline pode fornecer uma experiência prática completa para instrumentar e monitorar quaisquer novos aplicativos que você criar e implantar.

Automatize o provisionamento usando o Terraform

Para configurar as variáveis de ambiente em um modelo Terraform, adicione o seguinte código ao modelo, substituindo os <espaços reservados ...> por seus próprios valores. Para obter mais informações, consulte Gerencia 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"
  }
}

Automatize 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 ...> 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'
}

Automatize o provisionamento usando um modelo ARM

Para configurar as variáveis de ambiente em um modelo 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 de seus aplicativos no painel do AppDynamics:

Captura de tela do AppDynamics que mostra o painel Aplicativos.

A guia Aplicativos mostra as informações gerais de cada um dos seus aplicativos, conforme mostrado nas capturas de tela a seguir usando aplicativos de exemplo:

  • api-gateway

    Captura de tela do AppDynamics que mostra o painel do aplicativo Application para o aplicativo api-gateway de exemplo.

  • customers-service

    Captura de tela do AppDynamics que mostra o painel do aplicativo Aplicativo para o aplicativo de atendimento ao cliente de exemplo.

A captura de tela a seguir mostra como você pode obter informações básicas do painel Chamadas de Banco de Dados.

Captura de tela do AppDynamics que mostra o 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:

Captura de tela do AppDynamics que mostra a página Chamadas de banco de dados mais lentas.

Captura de tela do AppDynamics que mostra a página Instantâneos Correlacionados acessada a partir da página Chamadas de Banco de Dados Mais Lentas.

A captura de tela a seguir mostra a análise de uso de memória na seção Heap da página Memória :

Captura de tela do AppDynamics que mostra a seção Heap da página Memória.

Você também pode ver o processo de coleta de lixo, como mostrado nesta captura de tela:

Captura de tela do AppDynamics que mostra a seção Coleta de Lixo da página Memória.

A captura de tela a seguir mostra a página Transações lentas :

Captura de tela do AppDynamics que 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:

Captura de tela do AppDynamics que mostra o Navegador de Métricas.

Exibir logs do AppDynamics Agent

Por padrão, o Azure Spring Apps imprime os logs de nível de informações do AppDynamics Agent 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 AppDynamics Agent dos seguintes locais:

  • Logs do Azure Spring Apps
  • Azure Spring Apps Application Insights
  • Azure Spring Apps LogStream

Saiba mais sobre a atualização do AppDynamics Agent

O AppDynamics Agent é atualizado regularmente com JDK (trimestral). A atualização do agente pode afetar os seguintes cenários:

  • Os aplicativos existentes que usam o AppDynamics Agent antes da atualização permanecem inalterados, mas exigem reinicialização ou reimplantação para ativar a nova versão do AppDynamics Agent.
  • Os aplicativos criados após a atualização usam a nova versão do AppDynamics Agent.

Configurar o tráfego de saída da instância de injeção de rede virtual

Para instâncias de injeção de rede virtual do Azure Spring Apps, verifique se o tráfego de saída está configurado corretamente para o AppDynamics Agent. Para obter detalhes, consulte Domínios SaaS e intervalos de IP do Cisco AppDynamics e Responsabilidades do cliente para executar o Azure Spring Apps em uma rede virtual.

Compreender as limitações

Para entender as limitações do AppDynamics Agent, consulte Monitorar aplicativos Azure Spring com Java Agent.

Próximos passos

Utilizar o Agente Application Insights Java In-Process no Azure Spring Apps