feat: add healthcheck for main project
This commit is contained in:
@ -23,7 +23,7 @@ namespace Mirea.Api.Endpoint;
|
||||
|
||||
public class Program
|
||||
{
|
||||
public static IServiceCollection AddDatabase(IServiceCollection services, IConfiguration configuration)
|
||||
public static IServiceCollection AddDatabase(IServiceCollection services, IConfiguration configuration, IHealthChecksBuilder? healthCheckBuilder = null)
|
||||
{
|
||||
var dbSettings = configuration.Get<GeneralConfig>()?.DbSettings;
|
||||
services.AddApplication();
|
||||
@ -31,6 +31,10 @@ public class Program
|
||||
dbSettings?.DatabaseProvider ?? DatabaseProvider.Sqlite,
|
||||
dbSettings?.ConnectionStringSql ?? string.Empty);
|
||||
|
||||
healthCheckBuilder?.AddDatabaseHealthCheck(
|
||||
dbSettings?.DatabaseProvider ?? DatabaseProvider.Sqlite,
|
||||
dbSettings?.ConnectionStringSql ?? string.Empty);
|
||||
|
||||
return services;
|
||||
}
|
||||
|
||||
@ -40,13 +44,18 @@ public class Program
|
||||
|
||||
var builder = WebApplication.CreateBuilder(args);
|
||||
builder.Configuration.AddConfiguration(EnvironmentConfiguration.GetEnvironment());
|
||||
|
||||
var healthCheckBuilder = builder.Services.AddHealthChecks();
|
||||
builder.Configuration.AddJsonFile(GeneralConfig.FilePath, optional: true, reloadOnChange: true);
|
||||
builder.Services.Configure<GeneralConfig>(builder.Configuration);
|
||||
healthCheckBuilder.AddFile(x => x.AddFile(GeneralConfig.FilePath), name: nameof(GeneralConfig));
|
||||
|
||||
builder.Configuration.AddJsonFile(Admin.FilePath, optional: true, reloadOnChange: true);
|
||||
builder.Services.Configure<Admin>(builder.Configuration);
|
||||
healthCheckBuilder.AddFile(x => x.AddFile(Admin.FilePath), name: nameof(Admin));
|
||||
|
||||
builder.Host.AddCustomSerilog();
|
||||
AddDatabase(builder.Services, builder.Configuration);
|
||||
AddDatabase(builder.Services, builder.Configuration, healthCheckBuilder);
|
||||
|
||||
builder.Services.AddControllers();
|
||||
|
||||
@ -55,7 +64,7 @@ public class Program
|
||||
builder.Services.AddSingleton<ISetupToken, SetupTokenService>();
|
||||
|
||||
builder.Services.AddMemoryCache();
|
||||
builder.Services.AddCustomRedis(builder.Configuration);
|
||||
builder.Services.AddCustomRedis(builder.Configuration, healthCheckBuilder);
|
||||
|
||||
builder.Services.AddCors(options =>
|
||||
{
|
||||
@ -108,6 +117,7 @@ public class Program
|
||||
app.UseStaticFiles(UrlHelper.GetSubPath.TrimEnd('/'));
|
||||
app.UseCors("AllowAll");
|
||||
app.UseCustomSerilog();
|
||||
app.MapHealthChecks("/health");
|
||||
|
||||
using (var scope = app.Services.CreateScope())
|
||||
{
|
||||
|
Reference in New Issue
Block a user