예제 #1
0
        /// <summary>
        ///     Allows registration of health checks with the <see cref="IHealthCheckRegistry"/>.
        /// </summary>
        /// <param name="healthChecksBuilder">The <see cref="IAppMetricsHealthChecksBuilder"/> healthChecksBuilder.</param>
        /// <param name="setupAction">The <see cref="IHealthCheckRegistry"/> setup action allowing health checks to be regsitered.</param>
        /// <returns>The <see cref="IAppMetricsHealthChecksBuilder"/></returns>
        public static IAppMetricsHealthChecksBuilder AddChecks(this IAppMetricsHealthChecksBuilder healthChecksBuilder, Action <IHealthCheckRegistry> setupAction)
        {
            healthChecksBuilder.Services.TryAddSingleton <HealthCheckFluentMarkerService>();
            healthChecksBuilder.Services.Replace(ServiceDescriptor.Singleton(provider => RegisterHealthCheckRegistry(provider, setupAction)));

            return(healthChecksBuilder);
        }
예제 #2
0
 public static IAppMetricsHealthChecksBuilder AddHealthCheckMiddleware(
     this IAppMetricsHealthChecksBuilder checksBuilder,
     Action <AppMetricsMiddlewareHealthChecksOptions> setupOptionsAction,
     Action <IAppMetricsMiddlewareHealthChecksOptionsBuilder> setupMiddlewareOptionsAction)
 {
     checksBuilder.Services.Configure(setupOptionsAction);
     return(checksBuilder.AddMetricsMiddlewareHealthChecksCore(setupMiddlewareOptionsAction));
 }
예제 #3
0
        internal static IAppMetricsHealthChecksBuilder AddRequiredPlatformServices(this IAppMetricsHealthChecksBuilder checksBuilder)
        {
            checksBuilder.Services.TryAddSingleton <HealthCheckMarkerService>();
            checksBuilder.Services.AddOptions();
            checksBuilder.Services.TryAddSingleton(resolver => resolver.GetRequiredService <IOptions <AppMetricsHealthOptions> >().Value);
            checksBuilder.Services.TryAddSingleton <IConfigureOptions <AppMetricsHealthOptions>, ConfigureAppMetricsHealthOptions>();
            checksBuilder.Services.Replace(ServiceDescriptor.Singleton(provider => RegisterHealthCheckRegistry(provider)));

            return(checksBuilder);
        }
예제 #4
0
        // ReSharper disable UnusedMethodReturnValue.Global
        // ReSharper disable MemberCanBePrivate.Global
        internal static IAppMetricsHealthChecksBuilder AddCoreServices(this IAppMetricsHealthChecksBuilder checksBuilder)
        // ReSharper restore MemberCanBePrivate.Global
        // ReSharper restore UnusedMethodReturnValue.Global
        {
            HealthChecksAsServices.AddHealthChecksAsServices(
                checksBuilder.Services,
                DefaultMetricsAssemblyDiscoveryProvider.DiscoverAssemblies(checksBuilder.Environment.ApplicationName));

            checksBuilder.Services.TryAddSingleton <IProvideHealth, DefaultHealthProvider>();

            return(checksBuilder);
        }
예제 #5
0
        private static IAppMetricsHealthChecksBuilder AddMetricsMiddlewareHealthChecksCore(
            this IAppMetricsHealthChecksBuilder checksBuilder,
            Action <IAppMetricsMiddlewareHealthChecksOptionsBuilder> setupMiddleware)
        {
            setupMiddleware(checksBuilder.AddAppMetricsMiddlewareHealthChecksBuilder());

            checksBuilder.Services.TryAddSingleton <IHealthResponseWriter, NoOpHealthStatusResponseWriter>();

            checksBuilder.Services.TryAddSingleton <AppMetricsMiddlewareHealthChecksMarkerService, AppMetricsMiddlewareHealthChecksMarkerService>();
            checksBuilder.Services.AddSingleton(resolver => resolver.GetRequiredService <IOptions <AppMetricsMiddlewareHealthChecksOptions> >().Value);

            return(checksBuilder);
        }
 internal AppMetricsMiddlewareHealthChecksOptionsBuilder(IAppMetricsHealthChecksBuilder appMetricsChecksBuilder)
 {
     AppMetricsHealthChecksChecksBuilder = appMetricsChecksBuilder ?? throw new ArgumentNullException(nameof(appMetricsChecksBuilder));
 }
예제 #7
0
 internal static IAppMetricsMiddlewareHealthChecksOptionsBuilder AddAppMetricsMiddlewareHealthChecksBuilder(this IAppMetricsHealthChecksBuilder appMetricsHealthCheckBuilder)
 {
     return(new AppMetricsMiddlewareHealthChecksOptionsBuilder(appMetricsHealthCheckBuilder));
 }
예제 #8
0
 public static IAppMetricsHealthChecksBuilder AddHealthCheckMiddleware(
     this IAppMetricsHealthChecksBuilder checksBuilder,
     Action <IAppMetricsMiddlewareHealthChecksOptionsBuilder> setupMiddleware)
 {
     return(checksBuilder.AddMetricsMiddlewareHealthChecksCore(setupMiddleware));
 }