ヘルスチェック


これは健康チェックとアプリケーション監視に関する2番目の記事です.
1Adding Health Check endpoint
2 UI健康チェックを加えること
3 Azureを使用してURLを監視する
4独自の監視ツールを構築する
この記事では、すでに健康診断を受けています.
もし戻ったらarticle .
最後の記事のソースコードは(ここで)https://github.com/ricardodemauro/Health-Check-Series ] - ブランチ.
最後のブログ記事では、JSON形式を返すアプリケーションにヘルスチェックを追加する方法について説明します.
しかし、あなたのアプリケーションの状態を簡単にチェックするためにいくつかのUIを持っているといいでしょう.

Remember JSON is machine friendly and UI is human friendly.


健康診断へのUIの追加


最初に依存パッケージをプロジェクトに追加します.
  • アスピネット.HealthCheckUI
  • アスピネット.HealthCheckUIクライアント
  • アスピネット.HealthCheckUI記憶.ストレージ
  • では、依存関係を登録しましょう.
    public void ConfigureServices(IServiceCollection services)
    {
            //adding health check services to container
            services.AddHealthChecks()
                    .AddMongoDb(mongodbConnectionString: _configuration.GetConnectionString("DefaultMongo"),
                            name: "mongo",
                            failureStatus: HealthStatus.Unhealthy); //adding MongoDb Health Check
    
            //adding healthchecks UI
            services.AddHealthChecksUI(opt =>
            {
                    opt.SetEvaluationTimeInSeconds(15); //time in seconds between check
                    opt.MaximumHistoryEntriesPerEndpoint(60); //maximum history of checks
                    opt.SetApiMaxActiveRequests(1); //api requests concurrency
    
                    opt.AddHealthCheckEndpoint("default api", "/healthz"); //map health check api
            })
            .AddInMemoryStorage();
    }
    
    そしてそれらはアプリケーションパイプラインに追加されます.
    public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
    {
        app.UseRouting();
    
        app.UseEndpoints(endpoints =>
        {
            //adding endpoint of health check for the health check ui in UI format
            endpoints.MapHealthChecks("/healthz", new HealthCheckOptions
            {
                Predicate = _ => true,
                ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse
            });
    
            //map healthcheck ui endpoing - default is /healthchecks-ui/
            endpoints.MapHealthChecksUI();
    
            endpoints.MapGet("/", async context => await context.Response.WriteAsync("Hello World!"));
        });
    }
    

    Startup.cs


    別のヘルスチェックAPIエンドポイントを追加していることに注意してください/healthz を指定します.これはUIヘルスチェックで使用されます.
    完了です.ブラウザーURLを構築、実行、および開きますhttp://{YOUR-SERVER}/healthchecks-ui .

    また、CSSをカスタマイズすることもできます.私は公式サイトに行くことをお勧めしますxabaril's site .

    参考文献

  • https://www.hanselman.com/blog/HowToSetUpASPNETCore22HealthChecksWithBeatPulsesAspNetCoreDiagnosticsHealthChecks.aspx
  • https://github.com/xabaril/AspNetCore.Diagnostics.HealthChecks