Como monitorar aplicativos Spring Boot usando o agente New Relic Java

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/Standard ❌ Enterprise

Este artigo mostra como monitorar aplicativos Spring Boot no Azure Spring Apps com o agente New Relic Java.

Com o agente New Relic Java, você pode:

  • Consuma o agente New Relic Java.
  • Configure o agente New Relic Java usando variáveis de ambiente.
  • Verifique todos os dados de monitorização a partir do painel do New Relic.

O vídeo a seguir descreve 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

Use o seguinte procedimento para acessar o agente:

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

  2. Crie um aplicativo.

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --is-public true \
    
  3. Crie uma implantação com o agente 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 JVM dos aplicativos e configurá-lo usando as variáveis de ambiente do agente Java New Relic.

Portal do Azure

Você também pode ativar esse agente no portal do Azure com o procedimento a seguir.

  1. Na sua 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 New Relic.

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

  6. Exiba a página Resumo do atendimento ao cliente do aplicativo no painel New Relic.

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

  7. Exiba a página Mapa de Serviço no painel Nova Relíquia.

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

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

    Screenshot of the New Relic dashboard showing the JVM page.

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

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

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 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.

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>"
  }
}

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

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.

"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 New Relic

O agente New Relic pode coletar logs de aplicativos diretamente de seus aplicativos e encaminhá-los para New Relic. Para obter mais informações, consulte Encaminhar seus logs para New Relic e logs APM no contexto.

Ver logs do New Relic Java Agent

Por padrão, o Azure Spring Apps 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.

Você também pode obter os logs do agente New Relic dos seguintes locais:

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

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 Configuração de log de Nova Relíquia.

Nota

Não utilize finer ou finest a menos que o New Relic Support lhe peça para o fazer. Esses níveis de registro podem gerar sobrecarga excessiva. Para a maioria das situações, use info.

Atenção

É altamente recomendável que você não substitua o comportamento padrão de log fornecido pelo Azure Spring Apps for New Relic. 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 passar as seguintes variáveis de ambiente para seus aplicativos. O(s) arquivo(s) de log pode(m) ser perdido(s) após a reinicialização ou reimplantação do(s) aplicativo(s).

  • NEW_RELIC_LOG
  • NEW_RELIC_LOG_FILE_PATH

Atualização/atualização do New Relic Java Agent

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 existentes que usam o agente New Relic Java antes da atualização/atualização exigem reinicialização ou reimplantação para ativar 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 de VNET

Para uma instância de injeção de vnet do Azure Spring Apps, você precisa certificar-se de que o tráfego de saída está configurado corretamente para o agente New Relic Java. Para obter mais informações, consulte Redes de novas relíquias.

Próximos passos

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