상태 확인 UI 추가

상태 확인 및 애플리케이션 모니터링에 대한 두 번째 기사입니다.

1 Adding Health Check endpoint
2 UI 상태 확인 추가 - 이 문서
3 Azure를 사용하여 URL 모니터링
4 나만의 모니터링 도구 구축

이 문서에서는 이미 상태 확인이 실행 중이라고 가정합니다.
그렇지 않으면 article으로 돌아가십시오.

마지막 기사의 소스 코드는 (여기)[ https://github.com/ricardodemauro/Health-Check-Series ] - 분기 기사-1에서 찾을 수 있습니다.

지난 블로그 게시물에서는 JSON 형식을 반환하는 애플리케이션에 상태 확인을 추가하는 방법에 대해 논의했습니다.

그러나 애플리케이션의 상태를 쉽게 확인할 수 있는 UI가 있으면 좋을 것입니다.

Remember JSON is machine friendly and UI is human friendly.


상태 확인에 UI 추가



먼저 종속성 패키지를 프로젝트에 추가합니다.
  • AspNetCore.HealthChecks.UI
  • AspNetCore.HealthChecks.UI.Client
  • AspNetCore.HealthChecks.UI.InMemory.Storage

  • 이제 종속성을 등록하겠습니다.

    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



    특정 구성으로 /healthz라는 다른 상태 확인 API 엔드포인트를 추가하고 있습니다. 이는 UI 상태 확인에서 사용됩니다.

    모두 끝났습니다. 이제 브라우저 Urlhttp://{YOUR-SERVER}/healthchecks-ui을 빌드, 실행 및 엽니다.



    CSS를 통해 브랜딩을 사용자 정의할 수도 있습니다. 이를 위해 공식 웹 사이트 xabaril's site로 이동하는 것이 좋습니다.

    참조


  • https://www.hanselman.com/blog/HowToSetUpASPNETCore22HealthChecksWithBeatPulsesAspNetCoreDiagnosticsHealthChecks.aspx
  • https://github.com/xabaril/AspNetCore.Diagnostics.HealthChecks
  • 좋은 웹페이지 즐겨찾기