private static void ConfigureUi(ISolariBuilder builder, IoOptions options) { if (!options.EnableUi) { return; } builder.Services.AddHealthChecksUI(a => { a.DisableDatabaseMigrations(); a.SetEvaluationTimeInSeconds(options.Interval); ConfigureHealthEndpoints(builder, a, options); ConfigureWebHooks(a, options); }) .AddInMemoryStorage(); builder.AddBuildAction(new BuildAction("HealthCheckUI") { Action = provider => { var app = provider.GetService <IApplicationBuilder>(); if (app == null) { return; } app.UseHealthChecksUI(); } }); }
public static IEndpointRouteBuilder MapIo(this IEndpointRouteBuilder builder) { IoOptions options = builder.ServiceProvider.GetService <IOptions <IoOptions> >().Value; if (!options.Enabled) { return(builder); } if (options.EnableUi) { builder.MapHealthChecks(options.HealthEndpoint, new HealthCheckOptions { Predicate = _ => true, ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse }); builder.MapHealthChecksUI(); return(builder); } builder.MapHealthChecks(options.HealthEndpoint, new HealthCheckOptions { Predicate = _ => true }); return(builder); }
public MonitorOptions() { IoOptions = new IoOptions { DurationInMinutes = 1 }; Action = MonitorActions.DiskIo; }
public static void ConfigureWebHooks(Settings settings, IoOptions options) { if (options.WebHooks == null || !options.WebHooks.Any()) { return; } options.WebHooks.ForEach(a => settings.AddWebhookNotification(a.Name, a.Uri, a.Payload, a.RestoredPayload)); }
public static void ConfigureHealthEndpoints(ISolariBuilder builder, Settings settings, IoOptions options) { if (options.Endpoints == null || !options.Endpoints.Any()) { settings.AddHealthCheckEndpoint(builder.GetAppOptions().ApplicationName, options.HealthEndpoint); return; } options.Endpoints.ForEach(a => settings.AddHealthCheckEndpoint(a.Name, a.Uri)); }
private static void ConfigureAspNetHealthCheckInfrastructure(ISolariBuilder builder, IoOptions options, Action <IHealthChecksBuilder> addChecks) { IHealthChecksBuilder healthChecks = builder.Services.AddHealthChecks(); addChecks?.Invoke(healthChecks); }