共用方式為


如何使用 New Relic JAVA 代理程式來監視 Spring Boot 應用程式

附註

基本標準和企業方案於 2025 年 3 月 17 日進入淘汰期。 如需詳細資訊,請參閱 Azure Spring 應用程式淘汰公告

本文適用於:✅ 基本/標準 ❎ Enterprise

本文說明如何使用 New Relic JAVA 代理程式監視 Azure Spring Apps 中的 Spring Boot 應用程式。

使用 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 應用程式會將 New Relic JAVA 代理程式預先安裝至 /opt/agents/newrelic/java/newrelic-agent.jar。 客戶可以從應用程式的 JVM 選項啟動代理程式,以及使用 New Relic JAVA 代理程式環境變數 (英文) 來設定代理程式。

Azure 入口網站

您也可以使用下列程序,從 Azure 入口網站啟動此代理程式。

  1. 在您的 Azure Spring 應用程式執行個體中,選取瀏覽窗格中的 [應用程式]

    Azure 入口網站的螢幕擷取畫面,其中顯示 Azure Spring 應用程式執行個體的 [應用程式] 頁面。

  2. 從清單中選取應用程式,然後在瀏覽窗格中選取 [設定]

  3. 使用 [一般設定] 索引標籤來更新 JVM 選項等值。

    Azure 入口網站的螢幕擷取畫面,其中顯示已選取 [一般設定] 索引標籤的應用程式 [設定] 頁面。

  4. 選取 [環境變數],以新增或更新應用程式所使用的變數。

    Azure 入口網站的螢幕擷取畫面,其中顯示已選取 [環境變數] 索引標籤的應用程式 [設定] 頁面。

  5. 從 New Relic 儀表板檢視應用程式 API/閘道 [摘要] 頁面。

    New Relic 儀表板的螢幕擷取畫面,其中顯示 [API Gateway 摘要] 頁面。

  6. 從 New Relic 儀表板檢視應用程式客戶服務 [摘要] 頁面。

    New Relic 儀表板的螢幕擷取畫面,其中顯示 [客戶服務] 頁面。

  7. 從 New Relic 儀表板檢視 [服務對應] 頁面。

    New Relic 儀表板的螢幕擷取畫面,其中顯示 [服務對應] 頁面。

  8. 從 New Relic 儀表板檢視應用程式的 [JVM] 頁面。

    New Relic 儀表板的螢幕擷取畫面,其中顯示 [JVM] 頁面。

  9. 從 New Relic 儀表板檢視應用程式設定檔。

    New Relic 儀表板的螢幕擷取畫面,其中顯示 [應用程式設定檔] 頁面。

自動化佈建

您也可以使用 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 應用程式會將 New Relic JAVA 代理程式的記錄列印至 STDOUT。 記錄會與應用程式記錄混合。 您可以從應用程式記錄中找到明確的代理程式版本。

您也可以從下列位置取得 New Relic 代理程式的記錄:

  • Azure Spring Apps 記錄
  • Azure Spring Apps 應用程式深入解析
  • Azure Spring Apps LogStream

您可以使用 New Relic 所提供的一些環境變數來設定新代理程式的記錄,例如使用 NEW_RELIC_LOG_LEVEL 來控制記錄層級。 如需詳細資訊,請參閱 New Relic 記錄設定 (英文)。

附註

NOT請勿使用 finerfinest,除非 New Relic 客戶支援要求您這麼做。 這些記錄層級可能會產生過多的額外負荷。 在大部分情況下,請使用 info

注意

強烈建議您不要覆寫 Azure Spring 應用程式為 New Relic 提供的記錄預設行為。 如果您這樣做,前述的記錄案例將會遭到封鎖,且記錄檔可能會遺失。 例如,您不應該將下列環境變數傳遞至您的應用程式。 重新啟動或重新部署應用程式之後,記錄檔可能會遺失。

  • 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 In-Process 代理程式