public static HealthCheckBuilder AddAppMetricsCheck(this HealthCheckBuilder builder, string url, Func <HttpResponseMessage, Task <IHealthCheckResult> > checkFunc) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } return(AddAppMetricsCheck(builder, url, checkFunc)); }
public static IServiceCollection AddHealthChecks(this IServiceCollection services, Action <HealthCheckBuilder> checks) { if (services.Any(descriptor => descriptor.ServiceType == HealthCheckServiceInterface)) { throw new ArgumentException("AddHealthChecks may only be called once."); } var builder = new HealthCheckBuilder(); services.AddSingleton <IHealthCheckService, HealthCheckService>(serviceProvider => { var serviceScopeFactory = serviceProvider.GetService <IServiceScopeFactory>(); return(new HealthCheckService(builder, serviceProvider, serviceScopeFactory)); }); checks(builder); return(services); }
public static HealthCheckBuilder AddAppMetricsCheck(this HealthCheckBuilder builder, string name, string url, Func <HttpResponseMessage, ValueTask <IHealthCheckResult> > checkFunc) { if (builder == null) { throw new ArgumentNullException(nameof(builder)); } if (url == null) { throw new ArgumentNullException(nameof(url)); } if (checkFunc == null) { throw new ArgumentNullException(nameof(checkFunc)); } builder.AddCheck($"Check({name})", HealthCheck.FromTaskCheck(() => { var appmetricsChecker = new AppmetricsChecker(checkFunc, url); return(appmetricsChecker.CheckAsync()); })); return(builder); }
public static HealthCheckBuilder AddUrlCheck(this HealthCheckBuilder builder, string url) => AddUrlCheck(builder, url, response => UrlChecker.DefaultUrlCheck(response));
public static HealthCheckBuilder AddAppMetricsCheck(this HealthCheckBuilder builder, string name, string url) => AddAppMetricsCheck(builder, name, url, response => AppmetricsChecker.DefaultAppmetricsCheck(response));
public HealthCheckService(HealthCheckBuilder builder, IServiceProvider serviceProvider, IServiceScopeFactory serviceScopeFactory) { _builder = builder; _serviceProvider = serviceProvider; _serviceScopeFactory = serviceScopeFactory; }