Partilhar via


Como monitorar aplicativos Spring Boot com o Elastic APM Java Agent

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.

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

Este artigo explica como usar o Elastic APM Agent para monitorar aplicativos Spring Boot em execução no Azure Spring Apps.

Com a Solução de Observabilidade Elástica, você pode obter observabilidade unificada para:

O vídeo a seguir apresenta a observabilidade unificada para aplicativos Spring Boot usando o Elastic.


Pré-requisitos

Implante o aplicativo Spring Petclinic

Este artigo usa o exemplo Spring Petclinic para percorrer as etapas necessárias. Use as seguintes etapas para implantar o aplicativo de exemplo:

  1. Siga as etapas em Implantar aplicativos Spring Boot usando Azure Spring Apps e MySQL até chegar à seção Implantar aplicativos Spring Boot e definir variáveis de ambiente.

  2. Use a extensão Azure Spring Apps para CLI do Azure com o seguinte comando para criar um aplicativo para ser executado no Azure Spring Apps:

    az spring app create \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --is-public true
    

Habilitar armazenamento persistente personalizado para o Azure Spring Apps

Use as seguintes etapas para habilitar o armazenamento persistente personalizado:

  1. Siga as etapas em Como habilitar seu próprio armazenamento persistente no Azure Spring Apps.

  2. Use o seguinte comando da CLI do Azure para adicionar armazenamento persistente para seus aplicativos do Azure Spring Apps.

    az spring app append-persistent-storage \
       --resource-group <your-resource-group-name> \
       --service <your-Azure-Spring-Apps-instance-name> \
       --name <your-app-name> \
       --persistent-storage-type AzureFileVolume \
       --share-name <your-Azure-file-share-name> \
       --mount-path <unique-mount-path> \
       --storage-name <your-mounted-storage-name>
    

Ativar o Elastic APM Java Agent

Antes de continuar, você precisa das informações de conectividade do servidor Elastic APM à mão, o que pressupõe que você tenha implantado o Elastic no Azure. Para obter mais informações, consulte Como implantar e gerenciar o Elastic no Microsoft Azure. Para obter essas informações, use as seguintes etapas:

  1. No portal do Azure, vá para a página Visão geral da sua implantação do Elastic e selecione Gerenciar implantação do Elastic Cloud.

    Captura de ecrã da página Elasticsearch (Elastic Cloud) do portal do Azure.

  2. Na sua implementação na Elastic Cloud Console, selecione a secção APM & Fleet para obter o ponto de extremidade e o token secreto do Elastic APM Server.

    Captura de tela da página Elastic APM & Fleet com o ponto de extremidade Copy e o token secreto do APM Server realçados.

  3. Faça o download do Elastic APM Java Agent do Maven Central.

    Screenshot do Maven Central com o download do jar realçado.

  4. Carregue o Elastic APM Agent para o armazenamento persistente personalizado habilitado anteriormente. Vá para Compartilhamento de arquivos do Azure e selecione Carregar para adicionar o arquivo JAR do agente.

    Captura de ecrã do portal do Azure que mostra o painel Carregar ficheiros da página Partilha de ficheiros.

  5. Depois de obter o endpoint e o token secreto do Elastic APM, utilize o seguinte comando para ativar o agente Java do Elastic APM durante a implementação de aplicações. O marcador de posição <agent-location> refere-se ao local de armazenamento montado do agente Java do Elastic APM.

    az spring app deploy \
        --name <your-app-name> \
        --artifact-path <unique-path-to-your-app-jar-on-custom-storage> \
        --jvm-options='-javaagent:<elastic-agent-location>' \
        --env ELASTIC_APM_SERVICE_NAME=<your-app-name> \
              ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package-name>' \
              ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>' \
              ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
    

Automatize o provisionamento

Você também pode executar um pipeline de automação de provisionamento usando Terraform, Bíceps ou um modelo do 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 template Terraform, adicione o seguinte código ao template, substituindo os <...> placeholders 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:<elastic-agent-location>"
  ...
    environment_variables = {
      "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
      "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
      "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
      "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  }
}

Automatize o provisionamento usando um arquivo Bicep

Para configurar as variáveis de ambiente num ficheiro Bicep, adicione o seguinte código ao ficheiro, substituindo os <...> espaços reservados pelos seus próprios valores. Para obter mais informações, consulte Microsoft.AppPlatform Spring/apps/deployments.

deploymentSettings: {
  environmentVariables: {
    ELASTIC_APM_SERVICE_NAME='<your-app-name>',
    ELASTIC_APM_APPLICATION_PACKAGES='<your-app-package>',
    ELASTIC_APM_SERVER_URL='<your-Elastic-APM-server-URL>',
    ELASTIC_APM_SECRET_TOKEN='<your-Elastic-APM-secret-token>'
  },
  jvmOptions: '-javaagent:<elastic-agent-location>',
  ...
}

Automatize o provisionamento usando um modelo ARM

Para configurar as variáveis de ambiente num modelo ARM, adicione o seguinte código ao modelo, substituindo os placeholders <...> pelos seus próprios valores. Para obter mais informações, consulte Microsoft.AppPlatform Spring/apps/deployments.

"deploymentSettings": {
  "environmentVariables": {
    "ELASTIC_APM_SERVICE_NAME"="<your-app-name>",
    "ELASTIC_APM_APPLICATION_PACKAGES"="<your-app-package>",
    "ELASTIC_APM_SERVER_URL"="<your-Elastic-APM-server-URL>",
    "ELASTIC_APM_SECRET_TOKEN"="<your-Elastic-APM-secret-token>"
  },
  "jvmOptions": "-javaagent:<elastic-agent-location>",
  ...
}

Atualizar o Elastic APM Java Agent

Para planejar sua atualização, consulte Atualizar versões para o Elastic Cloud on Azure e Alterações significativas para APM. Depois de atualizar o Servidor APM, carregue o arquivo JAR do agente Java do Elastic APM no armazenamento persistente personalizado. Em seguida, reinicie as suas aplicações com as opções atualizadas da JVM, apontando para o JAR do agente Java do Elastic APM atualizado.

Monitore aplicativos e métricas com o Elastic APM

Use as seguintes etapas para monitorar aplicativos e métricas:

  1. No portal do Azure, vá para a página Visão geral da sua implantação do Elastic e selecione o link Kibana.

    Captura de tela do portal do Azure que mostra a página do Elasticsearch com o link Kibana da URL de Implantação realçado.

  2. Depois que o Kibana estiver aberto, procure APM na barra de pesquisa e selecione APM.

    Captura de ecrã do Elastic / Kibana que mostra os resultados da pesquisa APM.

O Kibana APM é a aplicação otimizada para apoiar fluxos de trabalho de monitorização de aplicações. Aqui você pode visualizar detalhes de alto nível, como tempos de solicitação/resposta, taxa de transferência e as transações em um serviço com maior impacto na duração.

Captura de tela do Elastic / Kibana que mostra a página Visão geral dos serviços APM.

Você pode detalhar uma transação específica para entender os detalhes específicos da transação, como o rastreamento distribuído.

Captura de tela do Elastic / Kibana que mostra a página Transações de Serviços do APM.

O agente Java do Elastic APM também captura as métricas da JVM dos aplicativos do Azure Spring Apps que estão disponíveis com o Kibana App para usuários para solução de problemas.

Captura de ecrã do Elastic / Kibana que mostra a página JVM dos Serviços APM.

Usando o mecanismo de IA integrado na solução Elástica, você também pode habilitar a Deteção de Anomalias nos Serviços do Azure Spring Apps e escolher uma ação apropriada - como notificação do Teams, criação de um problema JIRA, uma chamada de API baseada em webhook e outros.

Captura de tela do Elastic / Kibana que mostra a página Serviços do APM com o painel Criar regra visível e Ações destacadas.

Próximos passos