透前一篇: Health Checks 監控 SQL Server, WebAPI 與 Redis 健康狀態, 你大概已經知道如何監控不同的服務,但總會懷疑為什麼只能取的整體的狀態態,我們能不能看到每一個服務的狀態呢? 答案是肯定的,本篇文章將簡單介紹如何自訂 Health Checks Response,讓所有的服務運作情況一目了然!


那有美美的圖形介面給老闆看? 答案是有的,在下一篇:ASP.NET Core Health Checks UI 圖形化介面呈現服務健康狀態 會詳細說明。






HealthChecks 內有個 HealthReport 物件存有整體狀態(Status)、整體執行時間 (TotalDuration) 與相依服務的狀態 (HealthReportEntry)。每一個 Entry 內有各自的資料(Data)、狀態(Status)、執行時間(Duration)、標籤(Tags)、例外(Exception)、描述(Description)。我們先建立自訂 Response,如下列程式碼:






在 Startup.cs 內新增一個方法 CreateHealthCheckResponse,內容如下:





回到 Startup.cs 的 Configure 方法,加上剛剛自訂 HealthCheck Response,更改程式碼如下:





整體程式碼樣貌如下:





接下來執行,即可看見每一個服務結果。




若您的團隊已經有既有的監控系統,您可以自己客製 CreateHealthCheckResponse,以符合監控服務需求。倘若有相關管理人員進行監控,你可以在下一篇學習如何產生圖形化介面,方便閱讀。