快速入門:使用記錄、計量和追蹤來監視 Azure Spring Apps 應用程式
注意
Azure Spring Apps 是 Azure Spring Cloud 服務的新名稱。 雖然服務有新的名稱,但是您暫時還是會在某些位置看到舊的名稱。我們正在致力更新螢幕擷取畫面、影片和圖表等資產。
本文適用於: ✔️基本/標準 ❌ 企業
使用 Azure Spring Apps 中的內建監視功能,您可以偵錯和監視複雜的問題。 Azure Spring Apps 整合 Steeltoe 分散式追蹤 與 Azure 的 Application Insights。 這項整合提供來自 Azure 入口網站的強大記錄、計量和分散式追蹤功能。
下列程序說明如何使用Log Streaming、Log Analytics、Metrics和 Distributed Tracing 搭配您在上述快速入門中部署的範例應用程式。
必要條件
完成本系列先前的快速入門:
- 布建 Azure Spring Apps 服務實例。
- 快速入門:設定適用於 Azure Spring Apps 的 Spring Cloud Config Server。
- 建置應用程式並將其部署至 Azure Spring Apps。
- 設定 Log Analytics 工作區。
記錄
有兩種方式可查看 Azure Spring Apps 上的記錄:針對具有進階查詢功能的匯總記錄,每個應用程式實例的實時記錄或 Log Analytics 的記錄串流。
記錄串流
您可以使用 Azure CLI 中的記錄串流搭配下列命令。
az spring app logs --name solar-system-weather --follow
您會看到類似下列範例的輸出:
=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing action method Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather) - Validation state: Valid
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController[0]
=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Retrieved weather data from 4 planets
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]
=> ConnectionId:0HM2HOMHT82UK => RequestPath:/weatherforecast RequestId:0HM2HOMHT82UK:00000003, SpanId:|e8c1682e-46518cc0202c5fd9., TraceId:e8c1682e-46518cc0202c5fd9, ParentId: => Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather.Controllers.WeatherForecastController.Get (Microsoft.Azure.SpringCloud.Sample.SolarSystemWeather)
Executing ObjectResult, writing value of type 'System.Collections.Generic.KeyValuePair`2[[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.String, System.Private.CoreLib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]][]'.
←[40m←[32minfo←[39m←[22m←[49m: Microsoft.AspNetCore.Mvc.Infrastructure.ControllerActionInvoker[2]
提示
使用 az spring app logs -h
來探索更多參數和記錄數據流功能。
Log Analytics
在 Azure 入口網站 中,移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [記錄]。 選取 [在 Azure Spring Apps 的其中一個範例查詢上執行 ]。
編輯查詢以移除將顯示限制為警告和錯誤記錄的 Where 子句。
選取執行。 您會顯示記錄。 如需詳細資訊,請參閱開始使用 Azure 監視器中的記錄查詢。
若要深入瞭解Log Analytics中使用的查詢語言,請參閱 Azure 監視器記錄查詢。 若要從集中式客戶端查詢所有 Log Analytics 記錄,請參閱 Azure 數據總管。
計量
在 Azure 入口網站 中,移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [計量]。 在 [計量] 下拉式清單中選取 [效能] (.NET) 或 [要求] (.NET) 底下的其中一個 .NET 計量,然後選取 [平均匯總] 來查看該計量的時間表,以新增您的第一個計量。
選取 工具列中的 [新增篩選 ],選取
App=solar-system-weather
以查看僅針對 太陽系天氣 應用程式使用的CPU使用量。關閉在上一個步驟中建立的篩選,選取 [套用分割],然後選取 [用於值的應用程式] 以查看不同應用程式的 CPU 使用量。
分散式追蹤
使用 Azure Spring Apps 中的內建監視功能,您可以偵錯和監視複雜的問題。 Azure Spring Apps 會 整合 Spring Cloud Sleuth 與 Azure 的 Application Insights。 這項整合提供來自 Azure 入口網站的強大記錄、計量和分散式追蹤功能。 下列程序說明如何搭配已部署的 PetClinic 應用程式使用記錄串流、Log Analytics、計量和分散式追蹤。
必要條件
完成本系列先前的快速入門:
- 布建 Azure Spring Apps 服務實例。
- 快速入門:設定適用於 Azure Spring Apps 的 Spring Cloud Config Server。
- 建置應用程式並將其部署至 Azure Spring Apps。
- 設定 Log Analytics 工作區。
記錄
有兩種方式可查看 Azure Spring Apps 上的記錄:針對具有進階查詢功能的匯總記錄,每個應用程式實例的實時記錄或 Log Analytics 的記錄串流。
記錄串流
您可以使用 Azure CLI 中的記錄串流搭配下列命令。
az spring app logs \
--resource-group <resource-group-name> \
--service <service-instance-name> \
--name api-gateway \
--follow
您會顯示如下的紀錄:
提示
用來 az spring app logs -h
探索更多參數和記錄數據流功能。
若要深入瞭解Log Analytics中使用的查詢語言,請參閱 Azure 監視器記錄查詢。 若要從集中式客戶端查詢所有 Log Analytics 記錄,請參閱 Azure 數據總管。
Log Analytics
移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [記錄]。 選取 [在 Azure Spring Apps 的其中一個範例查詢上執行 ]。
然後會顯示篩選的記錄。 如需詳細資訊,請參閱開始使用 Azure 監視器中的記錄查詢。
計量
流覽至 Application Insights 頁面,然後流覽至 [計量] 頁面。 您可以看到 Spring Boot 應用程式、Spring 模組和相依性所貢獻的計量。
下圖顯示 gateway_requests
(Spring Cloud Gateway)、 hikaricp_connections
(JDBC 連線 ions)和 http_client_requests
。
Spring Boot 會註冊數個核心計量,包括 JVM、CPU、Tomcat 和 Logback。 Spring Boot 自動設定可檢測 Spring MVC 所處理的要求。 這三個 REST 控制器 (OwnerResource
、 PetResource
和 VisitResource
) 都是由類別層級的 @Timed
Micrometer 註釋所檢測。
應用程式 customers-service
已啟用下列自訂計量:
- @Timed:
petclinic.owner
- @Timed:
petclinic.pet
應用程式 visits-service
已啟用下列自訂計量:
- @Timed:
petclinic.visit
您可以在 [計量] 頁面中看到這些自訂計量:
您可以在 Application Insights 中使用可用性測試功能,並監視應用程式的可用性:
流覽至 [ 即時計量] 頁面,以查看低延遲的即時計量(少於一秒):
追蹤
開啟 Azure Spring Apps 所建立的 Application Insights,並開始監視 Spring 應用程式。
瀏覽至 [ 應用程式對應 ] 頁面:
瀏覽至 [ 效能] 頁面:
瀏覽至 [相依性] 索引標籤,您可以在其中查看相依性的效能號碼,特別是 SQL 呼叫:
選取 SQL 呼叫,以檢視內容中的端對端交易:
瀏覽至 [ 失敗] 頁面和 [ 例外 狀況] 索引標籤,您可以在其中看到例外狀況的集合:
選取例外狀況以檢視內容中的端對端交易和堆疊追蹤:
清除資源
如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。 如果不再需要,請刪除資源群組,這會刪除資源群組中的資源。 若要使用 Azure CLI 刪除資源群組,請使用下列命令:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
在先前的快速入門中,您也會設定預設的資源組名。 如果您不打算繼續進行下一個快速入門,請執行下列 CLI 命令來清除預設:
az config set defaults.group=
下一步
若要探索 Azure Spring Apps 的更多監視功能,請參閱: