在 Azure Spring Apps 中使用 Application Insights Java In-Process 代理程式
注意
基本、標準和企業方案將從 2025 年 3 月中旬開始淘汰,並停用 3 年。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 Azure Spring Apps 淘汰公告。
標準 耗用量和專用 方案將從 2024 年 9 月 30 日起淘汰,並在六個月後完成關閉。 建議您轉換至 Azure Container Apps。 如需詳細資訊,請參閱 將 Azure Spring Apps 標準取用和專用方案遷移至 Azure Container Apps。
使用 Spring Boot 原生映像應用程式時,請使用 Spring Boot 原生映像 Java 應用程式專案中的 Azure 監視器 OpenTelemetry Distro / Application Insights,而不是 Application Insights Java 代理程式。
本文適用於:✅ 標準取用和專用 (預覽) ✅ 基本/標準 ✅ 企業
本文說明如何在 Azure Spring Apps 中使用 Application Insights Java 代理程式來監視應用程式。
有了這項功能,您就可以:
- 搭配不同的篩選搜尋追蹤資料。
- 檢視 Spring 應用程式的相依性對應。
- 檢查要求效能。
- 監視即時計量。
- 檢查要求失敗。
- 檢查應用程式計量。
- 檢查應用程式記錄檔。
Application Insights 可提供許多可觀察的檢視方塊,包括:
- 應用程式對應
- 效能
- 失敗
- 計量
- 即時計量
- 可用性
- 記錄
使用 Application Insights 功能
Application Insights 功能啟用時,您可以:
在瀏覽窗格中,選取 [Application Insights],以檢視 Application Insights 的 [概觀] 頁面。 [概觀] 頁面會顯示所有執行中應用程式的概觀。
選取 [應用程式對應],以查看應用程式之間的呼叫狀態。
選取客戶服務與
petclinic
之間的連結以查看更多詳細資料,例如 SQL 的查詢。選取端點,以查看對端點提出要求的所有應用程式。
在瀏覽窗格中選取 [效能],以查看所有應用程式的作業、相依性和角色的效能資料。
在瀏覽窗格中選取 [失敗],以查看應用程式的任何非預期失敗或例外狀況。
在瀏覽窗格中選取 [計量],並選取命名空間,以查看 Spring Boot 計量和自訂計量 (如果有的話)。
在瀏覽窗格中選取 [即時計量],以查看不同維度的即時計量。
在瀏覽窗格中選取 [可用性],以透過建立 Application Insights 中的可用性測試,來監視 Web 應用程式的可用性和回應能力。
在瀏覽窗格中選取 [記錄],以檢視所有應用程式的記錄,或檢視依
cloud_RoleName
篩選時一個應用程式的記錄。
使用 Azure 入口網站管理 Application Insights
使用下列程序啟用 Java In-Process 代理程式。
移至您的服務執行個體的 [服務 | 概觀] 頁面,然後在 [監視] 區段中選取 [Application Insights]。
選取 [啟用 Application Insights],以在 Azure Spring Apps 中啟用 Application Insights。
選取 Application Insights 的現有執行個體,或建立新的執行個體。
Application Insights 啟用時,您可以設定一個選擇性的取樣率 (預設值為 10.0%)。
按一下 [儲存],即可儲存變更。
注意
請勿在不同的 Azure Spring Apps 執行個體中使用相同的 Application Insights 執行個體,否則您會看到混合資料。
您可以使用入口網站來檢查或更新 Application Insights 中的目前設定。
使用 Azure 入口網站啟用 Application Insights
選取 [Application Insights]。
選取 [編輯繫結] 或 [解除繫結] 超連結,以啟用 Application Insights。
編輯 Application Insights 或取樣率,然後選取 [儲存]。
停用 Application Insights
選取 [Application Insights]。
選取 [解除繫結] 以停用 Application Insights。
變更 Application Insights 設定
選取 [Application Insights] 資料行底下的名稱,以開啟 [Application Insights] 區段。
在組建服務中編輯 Application Insights 組建套件繫結
若要在組建服務中檢查並更新 Application Insights 組建套件繫結的目前設定,請遵循下列步驟:
- 選取 [組建服務]。
- 選擇您的建立器。
- 選取 [繫結] 資料行底下的 [編輯]。
在 [繫結類型] 資料行下所列的 ApplicationInsights 項目中,可以找到 Application Insights 設定。
選取 [繫結] 超連結,或選取省略符號底下的 [編輯繫結],以開啟和編輯 Application Insights 組建套件繫結。
編輯繫結設定,然後選取 [儲存]。
使用 Azure CLI 管理 Application Insights
您可以使用 Azure CLI 命令來管理 Application Insights。 在下列命令中,請務必將<預留位置>文字取代為說明的值。 <service-instance-name> 預留位置代表 Azure Spring Apps 執行個體的名稱。
啟用 Application Insights
若要在建立 Azure Spring Apps 執行個體時設定 Application Insights,請使用下列命令。 針對 app-insights
引數,您可以指定 Application Insights 名稱或資源識別碼。
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name "service-instance-name" \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate> \
--sku Enterprise
您也可以使用 Application Insights 連接字串 (慣用) 或檢測金鑰,如下列範例所示。
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate> \
--sku Enterprise
停用 Application Insights
若要在建立 Azure Spring Apps 執行個體時停用 Application Insights,請使用下列命令:
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights
az spring create \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable-app-insights \
--sku Enterprise
檢查 Application Insights 設定
若要檢查現有 Azure Spring Apps 執行個體的 Application Insights 設定,請使用下列命令:
az spring app-insights show \
--resource-group <resource-group-name> \
--name <service-instance-name>
更新 Application Insights
若要將 Application Insights 更新為使用連接字串 (慣用) 或檢測金鑰,請使用下列命令:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights-key <connection-string-or-instrumentation-key> \
--sampling-rate <sampling-rate>
若要將 Application Insights 更新為使用資源名稱或識別碼,請使用下列命令:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--app-insights <name-or-resource-ID> \
--sampling-rate <sampling-rate>
使用 update 命令停用 Application Insights
若要停用現有 Azure Spring Apps 執行個體上的 Application Insights,請使用下列命令:
az spring app-insights update \
--resource-group <resource-group-name> \
--name <service-instance-name> \
--disable
管理 Application Insights 組建套件繫結
本節僅適用於企業方案,並提供上一節的補充指示。
Azure Spring Apps 企業方案使用組建套件繫結將 Azure Application Insights 與 ApplicationInsights
類型整合。 如需詳細資訊,請參閱 如何設定 APM 整合和 CA 憑證。
若要建立 Application Insights 組建套件繫結,請使用下列命令:
az spring build-service builder buildpack-binding create \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
若要列出所有組建套件繫結,並尋找 ApplicationInsights
類型的 Application Insights 繫結,請使用下列命令:
az spring build-service builder buildpack-binding list \
--resource-group <your-resource-group-name> \
--service <your-service-resource-name> \
--builder-name <your-builder-name>
若要取代 Application Insights 組建套件繫結,請使用下列命令:
az spring build-service builder buildpack-binding set \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name> \
--type ApplicationInsights \
--properties sampling-percentage=<your-sampling-percentage> \
connection-string=<your-connection-string>
若要取得 Application Insights 組建套件繫結,請使用下列命令:
az spring build-service builder buildpack-binding show \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
若要刪除 Application Insights 組建套件繫結,請使用下列命令:
az spring build-service builder buildpack-binding delete \
--resource-group <your-resource-group-name> \
--service <your-service-instance-name> \
--name <your-binding-name> \
--builder-name <your-builder-name>
自動化
下列各節說明如何使用 Bicep、Azure Resource Manager 範本 (ARM 範本) 或 Terraform 將部署自動化。
Bicep
若要使用 Bicep 檔案進行部署,請將下列內容複製到 main.bicep 檔案中。 如需詳細資訊,請參閱 Microsoft.AppPlatform Spring/monitoringSettings。
param springName string
param location string = resourceGroup().location
resource spring 'Microsoft.AppPlatform/Spring@2020-07-01' = {
name: springName
location: location
properties: {}
}
resource monitorSetting 'Microsoft.AppPlatform/Spring/monitoringSettings@2020-11-01-preview' = {
parent: spring
name: 'default'
properties: {
appInsightsInstrumentationKey: '00000000-0000-0000-0000-000000000000'
appInsightsSamplingRate: 88
}
}
ARM 範本
若要使用 ARM 範本進行部署,請將下列內容複寫到 azuredeploy.json 檔案中。 如需詳細資訊,請參閱 Microsoft.AppPlatform Spring/monitoringSettings。
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"springName": {
"type": "string"
},
"location": {
"type": "string",
"defaultValue": "[resourceGroup().location]"
}
},
"resources": [
{
"type": "Microsoft.AppPlatform/Spring",
"apiVersion": "2020-07-01",
"name": "[parameters('springName')]",
"location": "[parameters('location')]",
"properties": {}
},
{
"type": "Microsoft.AppPlatform/Spring/monitoringSettings",
"apiVersion": "2020-11-01-preview",
"name": "[format('{0}/{1}', parameters('springName'), 'default')]",
"properties": {
"appInsightsInstrumentationKey": "00000000-0000-0000-0000-000000000000",
"appInsightsSamplingRate": 88
},
"dependsOn": [
"[resourceId('Microsoft.AppPlatform/Spring', parameters('springName'))]"
]
}
]
}
Terraform
對於 Terraform 部署,請使用下列範本。 如需詳細資訊,請參閱 azurerm_spring_cloud_service。
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "example" {
name = "example-resources"
location = "West Europe"
}
resource "azurerm_application_insights" "example" {
name = "tf-test-appinsights"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
application_type = "web"
}
resource "azurerm_spring_cloud_service" "example" {
name = "example-springcloud"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
sku_name = "S0"
config_server_git_setting {
uri = "https://github.com/Azure-Samples/piggymetrics"
label = "config"
search_paths = ["dir1", "dir2"]
}
trace {
connection_string = azurerm_application_insights.example.connection_string
sample_rate = 10.0
}
tags = {
Env = "staging"
}
}
尚不支援企業方案中的 Azure 自動化。 文件在可用後將立即新增。
Java 代理程式更新/升級
Java 代理程式將透過 JDK 定期更新/升級,這可能會影響下列案例。
注意
JDK 版本每年每季更新/升級。
- 在更新/升級之前使用 Java 代理程式的現有應用程式將不受影響。
- 在更新/升級之後建立的應用程式,會使用新版的 Java 代理程式。
- 先前未使用 Java 代理程式的現有應用程式,必須重新啟動或重新部署,才能使用新版的 Java 代理程式。
更新組建套件時,Java 代理程式會更新/升級。
Java 代理程式設定熱載入
Azure Spring Apps 已啟用熱載入機制,以調整代理程式組態設定而無須重新啟動應用程式。
注意
熱載入機制會有數分鐘的延遲。
如果已啟用 Java 代理程式,則變更 Application Insights 執行個體或
SamplingRate
值不需要重新啟動應用程式。如果啟用 Java 代理程式,則必須重新啟動應用程式。
當您停用 Java 代理程式時,應用程式會在幾分鐘後停止傳送所有監視資料。 您可以重新啟動應用程式,以從 Java 執行階段環境移除代理程式。
Azure Spring Apps 與 Application Insights 之間的概念比對
Azure Spring Apps | Application Insights |
---|---|
App |
* 應用程式對應/角色 * 即時計量/角色 * 失敗/角色/雲端角色 * 效能/角色/雲端角色 |
App Instance |
* 應用程式對應/角色執行個體 * 即時計量/服務名稱 * 失敗/角色/雲端執行個體 * 效能/角色/雲端執行個體 |
Azure Spring Apps 中的名稱 App Instance
會在下列情況下變更或產生:
- 您建立新的應用程式。
- 您將 JAR 檔案或原始程式碼部署到現有的應用程式。
- 您起始藍色/綠色部署。
- 您重新啟動應用程式。
- 您停止部署應用程式,然後加以重新啟動。
資料儲存於 Application Insights 時,會包含自 Java 代理程式啟用後所建立或部署的 Azure Spring Apps 應用程式執行個體的歷程記錄。 例如,在 Application Insights 入口網站中,您可以看到昨天建立、但在特定時間範圍 (例如過去 24 小時) 內刪除的應用程式資料。 下列案例顯示其運作方式:
- 您在今天上午 8:00 左右從 Azure Spring Apps 建立了啟用 Java 代理程式的應用程式,然後在今天上午 8:10 左右將 JAR 檔案部署至此應用程式。 經過測試後,您變更了程式碼,並在今天上午 8:30 將新的 JAR 檔案部署至此應用程式。 然後您稍作休息,並在上午 11:00 左右回來檢查 Application Insights 中的一些資料。 您會看見:
- 應用程式對應中時間範圍為過去 24 小時的三個執行個體,以及 [失敗]、[效能] 和 [計量]。
- 應用程式對應中時間範圍為過去一小時的一個執行個體,以及 [失敗]、[效能] 和 [計量]。
- 即時計量中的一個執行個體。
- 您在今天上午 8:00 左右從 Azure Spring Apps 建立了啟用 Java 代理程式的應用程式,然後在今天上午 8:10 左右將 JAR 檔案部署至此應用程式。 今天上午 8:30 左右,您嘗試使用另一個 JAR 檔案進行藍色/綠色部署。 目前,您的這個應用程式有兩個部署。 休息到約上午 11:00 後,您想要檢查 Application Insights 中的某些資料。 您會看見:
- 應用程式對應中時間範圍為過去 24 小時的三個執行個體,以及 [失敗]、[效能] 和 [計量]。
- 應用程式對應中時間範圍為過去一小時的兩個執行個體,以及 [失敗]、[效能] 和 [計量]。
- 即時計量中的兩個執行個體。