Como monitorar aplicativos Spring Boot usando o agente Java New Relic

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais 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) ✔️ Basic/Standard ❌ Enterprise

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

Ativar o New Relic Java no agente de processo

Usar o seguinte procedimento para acessar o agente:

  1. Criar uma instância do Azure Spring Apps.

  2. Criar um aplicativo.

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --is-public true \
    
  3. 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 Azure Spring Apps pré-instala o agente New Relic Java em /opt/agents/newrelic/java/newrelic-agent.jar. Os clientes podem ativar o agente a partir das opções de JVM dos aplicativos 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.

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

    Screenshot of the Azure portal showing the Apps page for an Azure Spring Apps instance.

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

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

    Screenshot of the Azure portal showing the Configuration page for an app with the General settings tab selected.

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

    Screenshot of the Azure portal showing the Configuration page for an app with the Environment variables tab selected.

  5. Exiba a página Resumo da api/gateway do aplicativo no painel do New Relic.

    Screenshot of the New Relic dashboard showing the API Gateway summary page.

  6. Veja a página Resumo do serviço de clientes do aplicativo do painel New Relic.

    Screenshot of the New Relic dashboard showing the Customers Service page.

  7. Veja a página Mapa do Serviço no painel New Relic.

    Screenshot of the New Relic dashboard showing the Service Map page.

  8. Veja a página JVMs do aplicativo no painel New Relic.

    Screenshot of the New Relic dashboard showing the JVM page.

  9. Veja o perfil do aplicativo no painel New Relic.

    Screenshot of the New Relic dashboard showing the Application Profile page.

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 de aplicativos diretamente de seus aplicativos e encaminhá-los para o New Relic. Para obter mais informações, consulte Encaminhar seus logs para logs do New Relic e do APM no contexto.

Exibir logs do agente Java New Relic

Por padrão, o Azure Spring Apps imprime os logs do agente New Relic Java no 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 log do New Agent, como, por exemplo, NEW_RELIC_LOG_LEVEL para controlar o nível de logs. Para obter mais informações, consulte Nova configuração de log do Relic.

Observação

Não use finer ou finest a menos que o New Relic Support solicite que você faça isso. Esses níveis de log podem gerar sobrecarga excessiva. Para a maioria das situações, use infoo .

Cuidado

É altamente recomendável que você não substitua o comportamento padrão de log fornecido pelos Aplicativos Spring do Azure para New Relic. Se você fizer isso, os cenários de log descritos anteriormente serão bloqueados e o(s) arquivo(s) de log poderá ser perdido. 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 atualiza/atualiza o JDK regularmente. A atualização/atualização do agente pode afetar os seguintes cenários.

  • Os aplicativos existentes que usam o agente New Relic Java antes da atualização/atualização permanecem inalterados.
  • 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 atualização/upgrade usam a nova versão do agente Java New Relic.

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