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

注意

Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但在我們努力更新資產,例如螢幕快照、影片和圖表時,您會在某些地方看到舊名稱一段時間。

本文適用於: ✔️標準取用和專用 (預覽) ✔️ 基本/標準 ❌ 企業

本文說明如何使用 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 Apps 會將 New Relic Java 代理程式預安裝至 /opt/agents/newrelic/java/newrelic-agent.jar。 客戶可以從應用程式的 JVM 選項啟動代理程式,並使用 New Relic Java 代理程式環境變數來設定代理程式。

Azure 入口網站

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

  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. 從 New Relic 儀錶板檢視應用程式 API/閘道 摘要 頁面。

    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. 從 New Relic 儀錶板檢視應用程式的 [VM] 頁面。

    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 記錄設定

注意

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

警告

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

  • NEW_RELIC_LOG
  • NEW_RELIC_LOG_FILE_PATH

New Relic Java Agent 更新/升級

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