Como monitorar aplicativos Spring Boot com o Dynatrace Java OneAgent

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

Com o Dynatrace OneAgent, você pode:

  • Monitore aplicativos com o Dynatrace OneAgent.
  • Configure o Dynatrace OneAgent usando variáveis de ambiente.
  • Verifique todos os dados de monitorização a partir 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. Crie uma instância do Azure Spring Apps.
  2. Crie um aplicativo que você deseja relatar ao Dynatrace executando 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-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, você precisa configurar quatro variáveis de ambiente: DT_TENANT, DT_TENANTTOKEN, DT_CONNECTION_POINTe DT_CLUSTER_ID. Para obter mais informações, consulte Integrar o OneAgent ao Azure Spring Apps.

Para aplicativos com várias instâncias, o Dynatrace tem várias maneiras de agrupá-los. DT_CLUSTER_ID é um dos caminhos. Para obter mais informações, consulte Deteção de grupo de processos.

Adicionar as variáveis de ambiente ao seu aplicativo

Você pode adicionar os pares chave/valor da variável 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 chave/valor usando a CLI do Azure, execute o seguinte comando, 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 chave/valor usando o portal do Azure, use as seguintes etapas:

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

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

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

  3. Use a guia Variáveis de ambiente para adicionar ou atualizar as variáveis usadas pelo seu aplicativo.

    Captura de ecrã do portal do Azure a mostrar a página Configuração de uma aplicação com o separador Variáveis de Ambiente selecionada.

Automatize o provisionamento

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

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

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

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.

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

Ver relatórios no Dynatrace

Esta secção descreve como encontrar vários relatórios no Dynatrace.

Nota

O menu e a interface de utilizador do Dynatrace evoluirão 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ça a coletar dados. Para exibir relatórios, use o menu Dynatrace, vá para Serviços e selecione seu aplicativo.

Você pode encontrar o fluxo de serviço no fluxo seu-app-name<>/Details/Service:

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

Você pode encontrar os hotspots Method em <your-app-name>/Details/Method hotspots:

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

Você pode encontrar as instruções Database na <análise your-app-name>/Details/Response time:

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

Em seguida, vá para a seção Análise multidimensional.

Você pode encontrar as instruções Top database de Multidimensional analysis/Top database statements:

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

Você pode encontrar a visão geral de exceções em Visão geral de análise multidimensional/exceções:

Captura de tela do relatório de visão geral do Dynatrace Exceptions.

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

Você pode encontrar a análise da CPU em Criação de perfil e otimização/análise da CPU:

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

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

Você pode encontrar Backtrace em Databases/Details/Backtrace:

Captura de ecrã do relatório Dynatrace Backtrace.

Exibir logs do Dynatrace OneAgent

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

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

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

Atenção

É altamente recomendável que você não substitua o comportamento de log padrão fornecido pelo Azure Spring Apps for Dynatrace. Se você fizer isso, os cenários de log descritos anteriormente serão bloqueados e o(s) arquivo(s) de log poderá(ão) ser perdido(s). Por exemplo, você não deve exportar a DT_LOGLEVELFILE variável de ambiente para seus aplicativos.

Atualização do Dynatrace OneAgent

A atualização automática do Dynatrace OneAgent está desativada e é atualizada trimestralmente com o JDK. A atualização do agente 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 do Azure Spring Apps, você precisa verificar se o tráfego de saída para pontos de extremidade de comunicação do Dynatrace está configurado corretamente para o Dynatrace OneAgent. Para obter informações sobre como obter communicationEndpointso , consulte API de implantação - informações de conectividade GET para OneAgent. Para obter mais informações, consulte Responsabilidades do cliente para executar o Azure Spring Apps em uma rede virtual.

Modelo de suporte Dynatrace

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

Próximos passos

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