Como monitorar aplicativos Spring Boot usando o agente Java New Relic
Observação
Os planos Básico, Padrão e Empresarial 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 os Aplicativos de Contêiner do Azure. Para mais informações, consulte o anúncio de desativação do Aplicativos Spring do Azure.
O plano Padrão de consumo e dedicado será preterido a partir de 30 de setembro de 2024, com desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para mais informações, consulte Migrar o plano Padrão de consumo e dedicado do Aplicativos Spring do Azure para Aplicativos de Contêiner do Azure.
Este artigo se aplica a: ✔️ Padrão de consumo e dedicado (Versão prévia) ✔️ Básico/Padrão ❌ Empresarial
Este artigo mostra como monitorar aplicativos Spring Boot no Azure Spring Apps com o agente Java New Relic.
Com o agente do New Relic Java, você pode:
- Consumir o agente do New Relic Java.
- Configurar o agente do New Relic Java usando variáveis de ambiente.
- Verificar todos os dados de monitoramento do painel New Relic.
O vídeo a seguir mostra como ativar e monitorar aplicativos Spring Boot no Azure Spring Apps usando o New Relic One.
Pré-requisitos
- Uma conta da New Relic.
- CLI do Azure versão 2.0.67 ou posterior.
Ativar o New Relic Java no agente de processo
Usar o seguinte procedimento para acessar o agente:
Criar uma instância do Azure Spring Apps.
Criar um aplicativo.
az spring app create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --is-public true \
Criar uma implantação com o agente do New Relic e variáveis de ambiente.
az spring app deploy \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --artifact-path app.jar \ --jvm-options="-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar" \ --env NEW_RELIC_APP_NAME=appName \ NEW_RELIC_LICENSE_KEY=newRelicLicenseKey
O Aplicativos Spring do Azure pré-instala o agente New Relic Java em /opt/agents/newrelic/java/newrelic-agent.jar. Os clientes podem ativar o agente nas opções da JVM do aplicativo e configurar o agente usando as variáveis de ambiente do agente New Relic Java.
Portal do Azure
Você também pode ativar esse agente no portal do Azure com o procedimento a seguir.
Na sua instância do Aplicativos Spring do Azure, selecione Aplicativos no painel de navegação.
Selecione o aplicativo na lista e 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.
Exiba a página Resumo do gateway de API/aplicativo no painel do New Relic.
Veja a página Resumo do serviço de clientes do aplicativo do painel New Relic.
Veja a página Mapa do Serviço no painel New Relic.
Veja a página JVMs do aplicativo no painel New Relic.
Veja o perfil do aplicativo no painel New Relic.
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/newrelic/java/newrelic-agent.jar"
...
environment_variables = {
"NEW_RELIC_APP_NAME": "<app-name>",
"NEW_RELIC_LICENSE_KEY": "<new-relic-license-key>"
}
}
Automatizar o provisionamento usando um arquivo Bicep
Para configurar as variáveis de ambiente em um arquivo Bicep, 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: {
NEW_RELIC_APP_NAME : '<app-name>',
NEW_RELIC_LICENSE_KEY : '<new-relic-license-key>'
},
jvmOptions: '-javaagent:/opt/agents/newrelic/java/newrelic-agent.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": {
"NEW_RELIC_APP_NAME" : "<app-name>",
"NEW_RELIC_LICENSE_KEY" : "<new-relic-license-key>"
},
"jvmOptions": "-javaagent:/opt/agents/newrelic/java/newrelic-agent.jar",
...
}
Encaminhar logs de aplicativos para o New Relic
O agente New Relic pode coletar logs do aplicativo diretamente de seus aplicativos e encaminhá-los para o New Relic. Para mais informações, veja Encaminhe seus logs para o New Relic e Logs do APM no contexto.
Exibir logs do agente Java New Relic
Por padrão, o Aplicativos Spring do Azure imprime os logs do agente New Relic Java 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.
Também é possível obter os logs do agente New Relic nos seguintes locais:
- Logs do Azure Spring Apps
- Application Insights do Azure Spring Apps
- LogStream do Azure Spring Apps
Você pode usar algumas variáveis de ambiente fornecidas pelo New Relic para configurar o registro em log do Novo Agente, como NEW_RELIC_LOG_LEVEL
para controlar o nível de logs. Para mais informações, consulte Configuração de registro de logs do New Relic.
Observação
Não use finer
ou finest
a menos que o Suporte do New Relic solicite isso. Esses níveis de registros de logs podem gerar sobrecarga excessiva. Para a maioria das situações, use info
.
Cuidado
Recomendamos fortemente que você não substitua o comportamento padrão de registro em log fornecido pelo Aplicativos Spring do Azure para o New Relic. 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 passar as seguintes variáveis de ambiente para seus aplicativos. Os arquivos de log podem ser perdidos após a reinicialização ou a reimplantação dos aplicativos.
- NEW_RELIC_LOG
- NEW_RELIC_LOG_FILE_PATH
Atualização/upgrade do agente do New Relic Java
O agente New Relic Java faz atualização/upgrade do JDK regularmente. A atualização/upgrade do agente pode afetar os seguintes cenários.
- Aplicativos existentes que usam o agente New Relic Java antes da atualização/upgrade não são alterados.
- Os aplicativos que usam o agente do New Relic Java antes da atualização/upgrade precisam ser reinicializados ou reimplantados para envolver a nova versão do agente New Relic Java.
- Novos aplicativos criados após a atualização/upgrade usam a nova versão do agente New Relic Java.
Configuração de tráfego de saída da instância de injeção da VNet
Para uma instância de injeção da VNet do Azure Spring Apps, verifique se o tráfego de saída está configurado corretamente para o agente Java New Relic. Para obter mais informações, confira Redes do New Relic.
Próximas etapas
Usar o Agente Java em processo do Application Insights no Azure Spring Apps