New Relic Java エージェントを使用して Spring Boot アプリを監視する方法

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Standard 従量課金および専用 (プレビュー) ✔️ Basic/Standard ❌ Enterprise

この記事では、Azure Spring Apps の Spring Boot アプリケーションを New Relic Java エージェントによって監視する方法を説明します。

New Relic Java エージェントによって、以下を行えます。

  • New Relic Java エージェントを使用する。
  • 環境変数を使用して New Relic Java エージェントを構成する。
  • New Relic ダッシュボードからすべての監視データを確認する。

次のビデオでは、New Relic One を使用して Azure Spring Apps の Spring Boot アプリケーションをアクティブにして監視する方法について説明します。


前提条件

New Relic Java インプロセス エージェントをアクティブにする

エージェントを受け入れるには、次の手順に従います。

  1. Azure Spring Apps のインスタンスを作成します。

  2. アプリケーションを作成します。

    az spring app create \
        --resource-group <resource-group-name> \
        --service <Azure-Spring-Apps-instance-name> \
        --name <app-name> \
        --is-public true \
    
  3. New Relic エージェントと環境変数を使用してデプロイを作成します。

    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
    

Azure Spring Apps では、/opt/agents/newrelic/java/newrelic-agent.jar に New Relic Java エージェントが事前にインストールされます。 お客様は、アプリケーションの JVM オプションからエージェントをアクティブにできるだけでなく、New Relic Java エージェント環境変数を使用してエージェントを構成することもできます。

Azure Portal

次の手順で、Azure portal からこのエージェントをアクティブにすることもできます。

  1. Azure Spring Apps インスタンスで、ナビゲーション ペインの [アプリ] を選択します。

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

  2. 一覧からアプリケーションを選択し、ナビゲーション ウィンドウで [構成] を選択します。

  3. [全般設定] タブを使用して、JVM オプションなどの値を更新します。

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

  4. [環境変数] を選択して、アプリケーションで使用される変数を追加または更新します。

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

  5. アプリケーション API/ゲートウェイの [概要] ページを New Relic ダッシュボードから表示します。

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

  6. アプリケーション顧客サービスの [概要] ページを New Relic ダッシュボードから表示します。

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

  7. New Relic ダッシュボードから [サービス マップ] ページを表示します。

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

  8. アプリケーションの JVM ページを New Relic ダッシュボードから表示します。

    Screenshot of the New Relic dashboard showing the JVM page.

  9. アプリケーション プロファイルを New Relic ダッシュボードから表示します。

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

プロビジョニングを自動化する

Terraform、Bicep、または Azure Resource Manager テンプレート (ARM テンプレート) を使用して、プロビジョニング自動化パイプラインを実行することもできます。 このパイプラインでは、作成およびデプロイする新しいアプリケーションをインストルメント化して監視するための完全なハンズオン エクスペリエンスが提供されます。

Terraform を使用してプロビジョニングを自動化する

Terraform テンプレートで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、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>"
  }
}

Bicep ファイルを使用してプロビジョニングを自動化する

Bicep ファイルで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、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',
  ...
}

ARM テンプレートを使用してプロビジョニングを自動化する

ARM テンプレートで環境変数を構成するには、次のコードをテンプレートに追加し、<...> プレースホルダーを実際の値に置き換えます。 詳細については、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",
  ...
}

アプリケーション ログを New Relic に転送する

New Relic エージェントは、アプリケーション ログをアプリから直接収集し、それらを New Relic に転送できます。 詳細については、ログを New Relic に転送するに関するページとコンテキストの APM ログに関するページを参照してください。

New Relic Java エージェントのログを表示する

Azure Spring Apps では、既定で New Relic Java エージェントのログが STDOUT に出力されます。 このログは、アプリケーション ログと混在しています。 アプリケーション ログから明示的なエージェント バージョンを見つけることができます。

New Relic エージェントのログは、次の場所から取得することもできます。

  • Azure Spring Apps ログ
  • Azure Spring Apps Application Insights
  • Azure Spring Apps LogStream

New Relic によって提供される一部の環境変数 (NEW_RELIC_LOG_LEVEL など) を使用して新しいエージェントのログ記録を構成し、ログのレベルを制御できます。 詳細については、New Relic ログ記録の構成に関するページを参照してください。

Note

New Relic サポートから要求されない限り、finer または finest は使用しないでください。 これらのログ記録のレベルでは、過剰なオーバーヘッドが発生する可能性があります。 ほとんどの状況で、info を使用します。

注意事項

New Relic 用に Azure Spring Apps によって提供されるログ記録の既定の動作をオーバーライドしないことを強くお勧めします。 オーバーライドした場合、上記のログ記録のシナリオがブロックされ、ログ ファイルが失われる可能性があります。 たとえば、次の環境変数をアプリケーションに渡さないようにします。 再起動またはアプリケーションの再デプロイ後に、ログ ファイルが失われる可能性があります。

  • NEW_RELIC_LOG
  • NEW_RELIC_LOG_FILE_PATH

New Relic Java エージェントの更新またはアップグレード

New Relic Java エージェントでは、JDK が定期的に更新またはアップグレードされます。 エージェントの更新またはアップグレードは、次のシナリオに影響を与える可能性があります。

  • 更新またはアップグレードの前に New Relic Java エージェントを使用している既存のアプリケーションは変更されません。
  • 更新またはアップグレード前に New Relic Java エージェントを使用している既存のアプリケーションでは、新しいバージョンの New Relic Java エージェントが使用されるようにするため、再起動または再デプロイする必要があります。
  • 更新またはアップグレード後に作成される新しいアプリケーションでは、新しいバージョンの New Relic Java エージェントが使用されます。

Vnet インジェクション インスタンスの送信トラフィックの構成

Azure Spring Apps の Vnet インジェクション インスタンスでは、New Relic Java エージェントに対して送信トラフィックが正しく構成されていることを確認する必要があります。 詳細については、New Relic のネットワークに関するページを参照してください。

次のステップ

Azure Spring Apps で Application Insights Java インプロセス エージェントを使用する