Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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" });
 }