使用 .NET Aspire 儀表板
記錄遙測資料之後,您需要一種方式來加以檢查。 透過 .NET Aspire,儀表板提供豐富的工具來調查遙測和診斷問題。
假設您任職於戶外設備零售商。 您在 .NET Aspire 雲端原生應用程式中使用 OpenTelemetry。 現在您要檢查遙測發出的資料,以決定是否可以將其用來改善效能。
在本單元中,您將了解 .NET Aspire 儀表板如何顯示遙測資料。
.NET Aspire 儀表板中的遙測
當您在開發電腦上啟動以 .NET Aspire 建置的應用程式,以及執行每個整合的容器時,.NET 會啟動 .NET Aspire 儀表板。 此 Web 介面有五個區段,其中四個區段會顯示遙測:
- 資源:列出組成整個雲端原生應用程式的容器、專案和可執行檔。 使用 [端點] 資料行中的連結來連線到每個微服務。
- [主控台]:顯示從您指定的整合傳送至標準輸出的文字。
- 結構化記錄:顯示傳送至 OpenTelemetry 記錄器的資訊。
- 追蹤:顯示應用程式中任何微服務所接收到每個要求的追蹤。
- 計量:顯示可設定的時間網域圖形,其中顯示您選擇的計量會如何變化。
儀表板中的記錄
記錄的事件會描述您的應用程式啟動和執行時會發生什麼事。 您可以在儀表板中看到兩種類型的記錄資訊:主控台記錄和結構化記錄。
主控台記錄
主控台記錄會顯示應用程式已傳送至標準輸出的文字。 命令行程式會在主控台中顯示如行之類的文字,但微服務和備份服務沒有內建位置可顯示標準輸出。 .NET Aspire 可在儀表板中提供 [主控台記錄] 頁面來協助。
當您開啟頁面時,必須先選取來源整合,例如其中一個微服務。 此工具會在主視窗中顯示該來源的所有標準輸出,其中包含一些格式設定。 例如,資訊事件會以綠色顯示,而失敗則以紅色顯示。
主控台記錄只是文字行。 應用程式可以很容易建立及發出這些記錄,但人類卻很難以閱讀這些記錄,且難以就分析目的進行處理,因為這些記錄缺乏結構。
結構化記錄
結構化記錄會使用其範本和訊息參數來保留記錄的訊息,而不是一般文字。 此結構可讓您更輕鬆地篩選出無關的事件,以便向下鑽研來針對特定問題進行疑難排解。 在實際執行環境中,記錄可以保存、編製索引,然後像資料庫一樣查詢。 如此一來,您就可以對其所包含的資料執行豐富的分析。
注意
結構化記錄通常也稱為語意記錄。
在您的程式代碼中,使用 OpenTelemetry ILogger
物件將事件傳送至結構化記錄:
logger.Info("{shopitem} added to basket by {user}", "Ski goggles", "Kenny");
在 .NET 儀表板中,[結構化記錄] 頁面會顯示您應用程式中每個資源的事件。 若要向下鑽研,請選取您要疑難排解的資源,並使用 [篩選] 和 [層級] 方塊只顯示相關的事件。
儀表板中的分散式追蹤
追蹤是一種記錄,會描述如何處理要求並傳回給呼叫者。 每個追蹤都可能涉及呼叫應用程式中的多個整合。 例如,當使用者要求產品目錄網頁時,Web UI 微服務可能會收到要求,該要求可能會呼叫驗證微服務、目錄微服務和 Redis 快取後,再將網頁傳回給使用者。
每個追蹤都是由範圍所組成,例如對目錄微服務的呼叫。 系統會記錄每個範圍及其計時和父資訊,讓您可以查看哪個整合會快速回應,以及哪個整合會導致延遲。 每個範圍都有進一步的詳細資料。
類似於結構化記錄,您可以選取來源並套用篩選條件來向下鑽研,以及找出您所要診斷特定問題的追蹤。
儀表板中的計量
計量是隨時間變化的值,由您應用程式的整合記錄。 例如,計量可能會記錄要求和回應的持續時間,或目錄錄微服務的作用中連線計數。 有些計量內建於 .NET 中,有些則隨附於 OpenTelemetry SDK 程式庫,而開發人員可以新增其整合特有的自訂 OpenTelemetry 計量。
.NET Aspire 儀表板包含 [計量] 區段,可供您用來調查及顯示計量隨時間變化的方式。
例如,http.server.active_requests 計量會顯示在任何指定時間處理的要求數目:
http.server.request.duration 計量會顯示應用程式在任何指定時間的回應方式:
在每個圖表下,您可以指定以圖形為目標的篩選條件。 例如,此圖表會顯示首頁路由要求的要求持續時間計量: