共用方式為


快速入門:使用記錄、計量和追蹤來監視 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 上的記錄:針對具有進階查詢功能的匯總記錄,每個應用程式實例的實時記錄或 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

  1. 在 Azure 入口網站 中,移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [記錄]。 選取 [在 Azure Spring Apps 的其中一個範例查詢上執行 ]。

    顯示 [記錄] 窗格的 Azure 入口網站 螢幕快照,其中已開啟 [查詢] 頁面並醒目提示 [執行]。

  2. 編輯查詢以移除將顯示限制為警告和錯誤記錄的 Where 子句。

  3. 選取執行。 您會顯示記錄。 如需詳細資訊,請參閱開始使用 Azure 監視器中的記錄查詢

    顯示記錄分析查詢結果之 Azure 入口網站 的螢幕快照。

  4. 若要深入瞭解Log Analytics中使用的查詢語言,請參閱 Azure 監視器記錄查詢。 若要從集中式客戶端查詢所有 Log Analytics 記錄,請參閱 Azure 數據總管

計量

  1. 在 Azure 入口網站 中,移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [計量]。 在 [計量] 下拉式清單中選取 [效能] (.NET)[要求] (.NET)底下的其中一個 .NET 計量,然後選取 [平均匯總] 來查看該計量的時間表,以新增您的第一個計量。

    顯示 [計量] 頁面的 Azure 入口網站 螢幕快照,其中顯示具有可用篩選條件的 [計量] 頁面。

  2. 選取 工具列中的 [新增篩選 ],選取 App=solar-system-weather 以查看僅針對 太陽系天氣 應用程式使用的CPU使用量。

    顯示 [計量] 頁面的 Azure 入口網站 螢幕快照,其中已醒目提示篩選 [屬性]、[運算符] 和 [值] 選項。

  3. 關閉在上一個步驟中建立的篩選,選取 [套用分割],然後選取 [用於的應用程式] 以查看不同應用程式的 CPU 使用量。

    顯示 [計量] 頁面的 Azure 入口網站 螢幕快照,其中已醒目提示分割 [值]、[限制] 和 [排序] 選項。

分散式追蹤

  1. 在 Azure 入口網站 中,移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [分散式追蹤]。 然後選取右側的 [ 檢視應用程式對應 ] 索引標籤。

    顯示分散式追蹤頁面之 Azure 入口網站的螢幕快照。

  2. 您現在可以查看應用程式之間的呼叫狀態。

    顯示 [應用程式對應] 頁面之 Azure 入口網站 的螢幕快照。

  3. 選取 solar-system-weatherplanet-weather-provider 之間的連結,以查看更多詳細數據,例如 HTTP 方法最慢的呼叫。

    顯示應用程式地圖詳細數據的 Azure 入口網站 螢幕快照。

  4. 最後,選取 [調查效能 ] 以探索更強大的內建效能分析。

    顯示 [效能] 頁面之 Azure 入口網站 的螢幕快照。

使用 Azure Spring Apps 中的內建監視功能,您可以偵錯和監視複雜的問題。 Azure Spring Apps 會 整合 Spring Cloud Sleuth 與 Azure 的 Application Insights。 這項整合提供來自 Azure 入口網站的強大記錄、計量和分散式追蹤功能。 下列程序說明如何搭配已部署的 PetClinic 應用程式使用記錄串流、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

您會顯示如下的紀錄:

Azure CLI 記錄串流輸出的螢幕快照。

提示

用來 az spring app logs -h 探索更多參數和記錄數據流功能。

若要深入瞭解Log Analytics中使用的查詢語言,請參閱 Azure 監視器記錄查詢。 若要從集中式客戶端查詢所有 Log Analytics 記錄,請參閱 Azure 數據總管

Log Analytics

  1. 移至服務 |[概觀] 頁面,然後選取 [監視] 區段中的 [記錄]。 選取 [在 Azure Spring Apps 的其中一個範例查詢上執行 ]。

    顯示 [查詢] 頁面且醒目提示 [執行] 之 Azure 入口網站 螢幕快照。

  2. 然後會顯示篩選的記錄。 如需詳細資訊,請參閱開始使用 Azure 監視器中的記錄查詢

    顯示已篩選記錄查詢結果之 Azure 入口網站 的螢幕快照。

計量

流覽至 Application Insights 頁面,然後流覽至 [計量] 頁面。 您可以看到 Spring Boot 應用程式、Spring 模組和相依性所貢獻的計量。

下圖顯示 gateway_requests (Spring Cloud Gateway)、 hikaricp_connections (JDBC 連線 ions)和 http_client_requests

Azure 入口網站 的螢幕快照,其中顯示Application Insights計量頁面,其中包含所選值的圖表。

Spring Boot 會註冊數個核心計量,包括 JVM、CPU、Tomcat 和 Logback。 Spring Boot 自動設定可檢測 Spring MVC 所處理的要求。 這三個 REST 控制器 (OwnerResourcePetResourceVisitResource) 都是由類別層級的 @Timed Micrometer 註釋所檢測。

應用程式 customers-service 已啟用下列自訂計量:

  • @Timed: petclinic.owner
  • @Timed: petclinic.pet

應用程式 visits-service 已啟用下列自訂計量:

  • @Timed: petclinic.visit

您可以在 [計量] 頁面中看到這些自訂計量

Azure 入口網站的螢幕快照,其中顯示具有自定義計量的 Application Insights 計量頁面。

您可以在 Application Insights 中使用可用性測試功能,並監視應用程式的可用性:

顯示 Application Insights 可用性頁面的 Azure 入口網站 螢幕快照,其中已醒目提示 [可用性測試] 區段。

流覽至 [ 即時計量] 頁面,以查看低延遲的即時計量(少於一秒):

顯示 Application Insights 即時計量頁面低延遲圖表之 Azure 入口網站 螢幕快照。

追蹤

開啟 Azure Spring Apps 所建立的 Application Insights,並開始監視 Spring 應用程式。

瀏覽至 [ 應用程式對應 ] 頁面:

Azure 入口網站 的螢幕快照,其中顯示具有地圖元件的 Application Insights 應用程式對應頁面。

瀏覽至 [ 效能] 頁面:

顯示 Application Insights 效能頁面的螢幕快照,其中顯示 [作業詳細數據] 的 [Azure 入口網站]。

瀏覽至 [相依性] 索引標籤,您可以在其中查看相依性的效能號碼,特別是 SQL 呼叫:

顯示 Application Insights 效能頁面且醒目提示 Depencies 數據表之 Azure 入口網站 螢幕快照。

選取 SQL 呼叫,以檢視內容中的端對端交易:

顯示 [端對端交易詳細數據] 頁面之 Azure 入口網站 螢幕快照。

瀏覽至 [ 失敗] 頁面和 [ 例外 狀況] 索引標籤,您可以在其中看到例外狀況的集合:

顯示 Application Insights 失敗頁面之 Azure 入口網站 螢幕快照。

選取例外狀況以檢視內容中的端對端交易和堆疊追蹤:

顯示端對端交易詳細數據頁面且例外狀況詳細數據和呼叫堆疊的 Azure 入口網站 螢幕快照。

清除資源

如果您打算繼續進行後續的快速入門和教學課程,您可以讓這些資源留在原處。 如果不再需要,請刪除資源群組,這會刪除資源群組中的資源。 若要使用 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 的更多監視功能,請參閱: