在前一篇針對 ASP.NET Core 2.2 新特性 Health Check功能做基本的介紹,接著要分享的是在 BeatPulse 中實用的功能 Health Check UI,提供 UI 介面顯示及儲存 Health Check 檢查的結果內容,如果有多台時也可以在設定檔加上指定 URL 達到同時監控多台的效果,此篇就針對 Health Check UI 做介紹,若有問題或是錯誤的地方歡迎網路的高手大大給予指導。
要使用 Health Check UI 起手式是要安裝其套件 AspNetCore.HealthChecks.UI ,指令如下
安裝完 nuget package 之後,在 Startup.cs 要註冊 service 與 middleware,定義 healthCheck 的路徑為 /hc,UI 顯示的路徑為 /hc-ui
- install-package AspNetCore.HealthChecks.UI
下一步是 appsettings.json 加上 healthCheckUI 設定資訊,設定包含要檢查的內容網址、多久執行檢查的動作與發生意外時的處理機制,這裡設定每 10 秒進行一次檢查,檢查的內容來源為 /hc
- public class Startup
- {
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddHealthChecksUI();
- }
- public void Configure(IApplicationBuilder app, IHostingEnvironment env)
- {
- app.UseHealthChecks("/hc", new HealthCheckOptions
- {
- Predicate = _ => true,
- ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
- });
- app.UseHealthChecksUI(options =>
- {
- options.UIPath = "/hc-ui";
- });
- }
- }
檢查內容這裡沿用上一篇介紹 healthCheck 的內容項目,檢查 mssql、Redis、Memory 與第三方 url 檢康狀況,這裡就不在多加說明,想了解細節可以參考上一篇文章內容說明
- "HealthChecks-UI": {
- "HealthChecks": [
- {
- "Name": "Health Check Demo",
- "Uri": "http://localhost:5000/hc"
- }
- ],
- "EvaluationTimeOnSeconds": 10,
- "MinimumSecondsBetweenFailureNotifications": 60
- }
- public void ConfigureServices(IServiceCollection services)
- {
- services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
- services.AddHealthChecksUI();
- services.AddHealthChecks()
- .AddMemoryHealthCheck("Memory Health Check")
- .AddSqlServer(Configuration["ConnectionStrings:DefaultConnection"], name: "SQL Server HealthCheck")
- .AddRedis(Configuration["ConnectionStrings:RedisConn"], name: "Redis HealthCheck")
- .AddUrlGroup(new Uri("https://marcus116.blogspot.com"), "ThirdParty API HealthCheck",HealthStatus.Degraded);
- //省略
- }
以上設定完畢後,執行專案並在瀏覽器輸入 /hc-ui,就可以看到將檢查的字串內容變為圖像顯示
Docker Image
作者也有提供 Docker health check image 給需要的人使用,可以透過 docker pull 取得 health check image 並使用 docker run 來執行
感想
使用 health Check UI 幫助我們可以更快的了解需要檢查應用程式的健康狀態資訊,如果您的應用程式有不止一台,可以在 health Check Ui 設定檔節點新增多筆檢查來源與名稱來自訂不同的檢查行為,舉例來說 MSDN 有列出如果 Health Check 顯示多筆,希望這篇介紹可以有幫助到有需要的朋友,謝謝
參考
Health checks in ASP.NET Core
ASP.NET Core MVC - 2.2 Health Checks作者也有提供 Docker health check image 給需要的人使用,可以透過 docker pull 取得 health check image 並使用 docker run 來執行
詳細可以參考 HealthChecks UI Docker Image
- PS C:\> docker pull xabarilcoding/healthchecksui
- Using default tag: latest
- latest: Pulling from xabarilcoding/healthchecksui
- 27833a3ba0a5: Pull complete
- 25dbf7dc93e5: Pull complete
- 0ed9cb15d3b8: Pull complete
- 874ea13b7488: Pull complete
- 73d82f2e96ee: Pull complete
- f856979cdc5c: Pull complete
- Digest: sha256:fe18f7655f05872cd8b2644ce7d4603b1d03ae4e0b24fa59f4d960cdc7bde6c4
- Status: Downloaded newer image for xabarilcoding/healthchecksui:latest
- PS C:\> docker run --name healthcheck-ui -p 5000:80 -d xabarilcoding/healthchecksui:latest
感想
使用 health Check UI 幫助我們可以更快的了解需要檢查應用程式的健康狀態資訊,如果您的應用程式有不止一台,可以在 health Check Ui 設定檔節點新增多筆檢查來源與名稱來自訂不同的檢查行為,舉例來說 MSDN 有列出如果 Health Check 顯示多筆,希望這篇介紹可以有幫助到有需要的朋友,謝謝
參考
Health checks in ASP.NET Core
0 意見:
張貼留言