public static void AddHermesChecks(this IServiceCollection services, HealthChecksConfiguration configuration) { services .AddHealthChecks() .AddCheck(configuration?.Self?.Name ?? "Hermes", () => HealthCheckResult.Healthy(), configuration?.Self?.Tags ?? new[] { "hermes", "service", "debug" }); services.AddMassTransitHostedService(true); }
void AddCustomServices(IServiceCollection services, string connection) { var healthChecksConfig = new HealthChecksConfiguration(); Configuration.GetSection("HealthChecks").Bind(healthChecksConfig); var rabbitMqConfig = new RabbitMQConfiguration(); Configuration.GetSection("RabbitMQ").Bind(rabbitMqConfig); services.AddHealthChecks(connection, healthChecksConfig); services.AddMassTransit(rabbitMqConfig); services.AddCustomServices(_env); }
static IHostBuilder CreateHostBuilder(string[] args) => Host.CreateDefaultBuilder(args) .UseServiceProviderFactory(new AutofacServiceProviderFactory()) .UseSerilog() .ConfigureWebHostDefaults(webBuilder => { webBuilder.Configure(app => { app.UseRouting(); app.UseEndpoints(endpoints => { endpoints.MapHealthChecks("/healthz", new HealthCheckOptions { Predicate = _ => true, ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse }); }); }); }) .ConfigureLogging((host, builder) => { Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(host.Configuration) .CreateLogger(); builder.AddSerilog(Log.Logger, true); }) .ConfigureServices((host, services) => { var configuration = new HealthChecksConfiguration(); host.Configuration.GetSection("HealthChecks").Bind(configuration); services.AddHermesChecks(configuration); services.AddOptions <EmailOptions>().Bind(host.Configuration?.GetSection("Email")); }) .ConfigureContainer <ContainerBuilder>((host, builder) => { var configuration = new RabbitMQConfiguration(); host.Configuration.GetSection("RabbitMQ").Bind(configuration); builder.RegisterModule(new HermesModule(configuration)); });
public static void AddHealthChecks(this IServiceCollection services, string connection, HealthChecksConfiguration configuration) { services.AddHealthChecks() .AddCheck(configuration?.Self?.Name ?? "self", () => HealthCheckResult.Healthy(), configuration?.Self?.Tags ?? new[] { "identity", "service", "identityserver4", "debug" }) .AddNpgSql(connection, name: configuration?.NpgSql?.Name ?? "postgres", tags: configuration?.NpgSql?.Tags ?? new[] { "identity", "db", "postgres", "debug" }); }