如何使用 New Relic Java 代理程式監視 Spring Boot 應用程式
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
本文適用於: ✔️標準取用和專用 (預覽) ✔️ 基本/標準 ❌ 企業
本文說明如何使用 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
使用下列程式來存取代理程式:
建立 Azure Spring Apps 的執行個體。
建立應用程式。
az spring app create \ --resource-group <resource-group-name> \ --service <Azure-Spring-Apps-instance-name> \ --name <app-name> \ --is-public true \
使用 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 入口網站 啟動此代理程式。
在您的 Azure Spring Apps 實例中,選取 瀏覽窗格中的 [應用程式 ]。
從清單中選取應用程式,然後在瀏覽窗格中選取 [組態 ]。
使用 [ 一般設定 ] 索引標籤來更新 JVM 選項等值。
選取 [環境變數 ] 以新增或更新應用程式所使用的變數。
從 New Relic 儀錶板檢視應用程式 API/閘道 摘要 頁面。
從 New Relic 儀錶板檢視應用程式客戶服務 摘要 頁面。
從 New Relic 儀錶板檢視 服務對應 頁面。
從 New Relic 儀錶板檢視應用程式的 [VM] 頁面。
從 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 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 記錄設定。
注意
請勿使用 finer
, finest
除非 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 代理程式