Como monitorar aplicativos Spring Boot com o Dynatrace Java OneAgent

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 mostra como usar o Dynatrace OneAgent para monitorar aplicativos do Spring Boot no Azure Spring Apps.

Com o Dynatrace OneAgent é possível:

  • Monitorar aplicativos com o Dynatrace OneAgent.
  • Configurar o Dynatrace OneAgent usando variáveis de ambiente.
  • Verificar todos os dados de monitoramento do painel do Dynatrace.

O vídeo a seguir apresenta o Dynatrace OneAgent.


Pré-requisitos

Ativar o Dynatrace OneAgent

As seções a seguir descrevem como ativar o Dynatrace OneAgent.

Preparar seu ambiente do Azure Spring Apps

  1. Criar uma instância do Azure Spring Apps.
  2. Crie um aplicativo que você deseja relatar para o Dynatrace executando 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-name> \
        --name <your-application-name> \
        --is-public true
    

Determinar os valores para as variáveis de ambiente necessárias

Para ativar o Dynatrace OneAgent em sua instância do Azure Spring Apps, é necessário configurar quatro variáveis de ambiente: DT_TENANT, DT_TENANTTOKEN, DT_CONNECTION_POINT e DT_CLUSTER_ID. Para saber mais, confira Integrar o OneAgent com o Azure Spring Apps.

Para aplicativos com várias instâncias, o Dynatrace possui várias maneiras de agrupá-las. DT_CLUSTER_ID é uma das maneiras. Para obter mais informações, consulte Detecção de grupo do processo.

Adicionar as variáveis de ambiente ao seu aplicativo

Você pode adicionar os pares de chave/valor das variáveis de ambiente ao seu aplicativo usando o portal do Azure ou a CLI do Azure.

Opção 1: CLI do Azure

Para adicionar os pares de chave/valor usando a CLI do Azure, execute o comando a seguir substituindo os espaços reservados <...> pelos valores determinados nas etapas anteriores.

az spring app deploy \
    --resource-group <your-resource-group-name> \
    --service <your-Azure-Spring-Apps-name> \
    --name <your-application-name> \
    --artifact-path app.jar \
    --env \
        DT_TENANT=<your-environment-ID> \
        DT_TENANTTOKEN=<your-tenant-token> \
        DT_CONNECTION_POINT=<your-communication-endpoint>

Opção 2: portal do Azure

Para adicionar os pares de chave/valor usando o portal do Azure, siga as seguintes etapas:

  1. Na sua instância do Aplicativos Spring do Azure, selecione Aplicativos no painel de navegação.

    Captura de tela do portal do Azure mostrando a página Aplicativos de uma instância do Aplicativos Spring do Azure.

  2. Selecione o aplicativo na lista e selecione Configuração no painel de navegação.

  3. Use a guia Variáveis de ambiente para adicionar ou atualizar as variáveis usadas pela sua aplicação.

    Captura de tela do portal do Azure mostrando a página Configuração de um aplicativo com a guia Variáveis ambientais selecionada.

Automatizar o provisionamento

Usando o Terraform, o Bicep ou um modelo do Azure Resource Manager (modelo do ARM), você também pode executar um pipeline de automação de provisionamento. 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.

environment_variables = {
  "DT_TENANT": "<your-environment-ID>",
  "DT_TENANTTOKEN": "<your-tenant-token>",
  "DT_CONNECTION_POINT": "<your-communication-endpoint>",
  "DT_CLUSTER_ID": "<your-cluster-ID>"
}

Automatizar o provisionamento usando um arquivo 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.

environmentVariables: {
  DT_TENANT: '<your-environment-ID>'
  DT_TENANTTOKEN: '<your-tenant-token>'
  DT_CONNECTION_POINT: '<your-communication-endpoint>'
  DT_CLUSTER_ID: '<your-cluster-ID>'
}

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.

"environmentVariables": {
  "DT_TENANT": "<your-environment-ID>",
  "DT_TENANTTOKEN": "<your-tenant-token>",
  "DT_CONNECTION_POINT": "<your-communication-endpoint>",
  "DT_CLUSTER_ID": "<your-cluster-ID>"
}

Exibir relatórios no Dynatrace

Esta seção descreve como localizar vários relatórios no Dynatrace.

Observação

O menu do Dynatrace e a interface do usuário evoluem gradualmente. Por esse motivo, o painel pode ser movido para outras seções no site do Dynatrace, e as capturas de tela a seguir podem não refletir a versão atual da interface do usuário.

Depois de adicionar as variáveis de ambiente ao seu aplicativo, o Dynatrace começará a coletar os dados. Para exibir os relatórios, use o menu do Dynatrace, vá até Serviços e, em seguida, selecione seu aplicativo.

É possível encontrar o fluxo do Serviço a partir do <seu nome de aplicativo /Detalhes/Fluxo de serviço:

Captura de tela do relatório de fluxo do serviço Dynatrace.

É possível encontrar o Ponto de acesso do métodoa partir do< seu nome de aplicativo>/Detalhes/Pontos de acesso do método:

Captura de tela do relatório de pontos de acesso do Método Dynatrace.

É possível encontrar as Instruções de banco de dadosa partir< do seu nome de aplicativo /Detalhes/Análise> do tempo de resposta:

Captura de tela do relatório de análise de tempo de resposta do Dynatrace e da seção de instruções do banco de dados.

A seguir, vá para a seção Análise multidimensional.

É possível encontrar as Instruções principais de banco de dados em Multidimensional analysis/Top database statements:

Captura de tela do relatório de declarações do banco de dados Dynatrace Top.

É possível encontrar a Visão geral das exceções em Multidimensional analysis/Exceptions overview:

Captura de tela do relatório de visão geral de exceções do Dynatrace.

Em seguida, vá para a seção Criação de perfil e otimização.

É possível encontrar a Análise de CPU em Profiling and optimization/CPU analysis:

Captura de tela do relatório de análise de CPU Dynatrace.

Em seguida, vá para a seção Banco de dados.

É possível encontrar o Backtrace em Databases/Details/Backtrace:

Captura de tela do relatório Dynatrace Backtrace.

Exibir logs do Dynatrace OneAgent

Por padrão, o Aplicativos Spring do Azure imprime os logs de nível de informação do Dynatrace OneAgent para 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 do Dynatrace nos seguintes locais:

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

Você pode aplicar algumas variáveis de ambiente fornecidas pelo Dynatrace para configurar o registro em log para o Dynatrace OneAgent. Por exemplo, DT_LOGLEVELCON controla o nível de registro em log. O valor padrão para DT_LOGLEVELCON é info. Você pode desabilitar os logs do agente configurando DT_LOGLEVELCON para off. Se o log estiver desabilitado, o suporte da Dynatrace solicitará que você primeiro habilite o log para diagnosticar quaisquer problemas do agente de forma eficaz. Você deve então reiniciar o aplicativo, o que é necessário para que a alteração tenha efeito. Para outros níveis de log, consulte a equipe de suporte da Dynatrace.

Cuidado

Recomendamos vivamente que não substitua o comportamento de registo padrão fornecido pelos Aplicativos Spring do Azure para Dynatrace. Se você fizer isso, os cenários de log descritos anteriormente serão bloqueados e os arquivos de log poderão ser perdidos. Por exemplo, você não deve enviar a variável de ambiente DT_LOGLEVELFILE para seus aplicativos.

Atualização do Dynatrace OneAgent

A atualização automática do Dynatrace OneAgent está desabilitada e é atualizada trimestralmente com o JDK. A atualização do Agent pode afetar os seguintes cenários:

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

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

Para uma instância de injeção de rede virtual dos Aplicativos Spring do Azure, é necessário garantir que o tráfego de saída para os pontos de extremidade de comunicação Dynatrace esteja configurado corretamente para Dynatrace OneAgent. Para obter informações sobre como obter communicationEndpoints, consulte API de Implantação - GET connectivity information para o OneAgent. Para obter mais informações, consulte Responsabilidades do cliente para executar os Aplicativos Spring do Azure em uma rede virtual.

Modelo de suporte do Dynatrace

Para obter informações sobre limitações ao implantar o Dynatrace OneAgent no modo somente de aplicativo, consulte a seção Plataformas de aplicativo de nuvem da Matriz de suporte de plataforma e capacidade do OneAgent.

Próximas etapas

Usar o Agente Java em processo do Application Insights no Azure Spring Apps