From 641cb6ea25aa3bb82eda0785f7ddc240d8500cfa Mon Sep 17 00:00:00 2001 From: Ash Davies <3853061+DrizzlyOwl@users.noreply.github.com> Date: Thu, 5 Dec 2024 11:51:28 +0000 Subject: [PATCH] Add DbContextChecks to Health Checks This will ensure that the /health endpoint correctly reports the status of the service if a database connection faults --- .../DfE.FindInformationAcademiesTrusts.csproj | 1 + DfE.FindInformationAcademiesTrusts/Program.cs | 2 +- .../Setup/HealthCheckSetup.cs | 20 +++++++++++++++++++ 3 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 DfE.FindInformationAcademiesTrusts/Setup/HealthCheckSetup.cs diff --git a/DfE.FindInformationAcademiesTrusts/DfE.FindInformationAcademiesTrusts.csproj b/DfE.FindInformationAcademiesTrusts/DfE.FindInformationAcademiesTrusts.csproj index 49960b8b7..2daf80117 100644 --- a/DfE.FindInformationAcademiesTrusts/DfE.FindInformationAcademiesTrusts.csproj +++ b/DfE.FindInformationAcademiesTrusts/DfE.FindInformationAcademiesTrusts.csproj @@ -19,6 +19,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive + diff --git a/DfE.FindInformationAcademiesTrusts/Program.cs b/DfE.FindInformationAcademiesTrusts/Program.cs index 8d6af3562..b5ff7c9c8 100644 --- a/DfE.FindInformationAcademiesTrusts/Program.cs +++ b/DfE.FindInformationAcademiesTrusts/Program.cs @@ -22,7 +22,6 @@ public static void Main(string[] args) ConfigurationVariables.BindConfigurationVariables(builder); builder.Services.AddRazorPages(); - builder.Services.AddHealthChecks(); builder.Services.AddApplicationInsightsTelemetry(); SecurityServicesSetup.AddSecurityServices(builder); @@ -33,6 +32,7 @@ public static void Main(string[] args) }); Dependencies.AddDependenciesTo(builder); + HealthCheckSetup.AddHealthChecks(builder); var app = builder.Build(); PostBuildSetup.ConfigureApp(app); diff --git a/DfE.FindInformationAcademiesTrusts/Setup/HealthCheckSetup.cs b/DfE.FindInformationAcademiesTrusts/Setup/HealthCheckSetup.cs new file mode 100644 index 000000000..b6da957de --- /dev/null +++ b/DfE.FindInformationAcademiesTrusts/Setup/HealthCheckSetup.cs @@ -0,0 +1,20 @@ +using System.Diagnostics.CodeAnalysis; +using DfE.FindInformationAcademiesTrusts.Data.AcademiesDb.Contexts; +using DfE.FindInformationAcademiesTrusts.Data.FiatDb.Contexts; + +namespace DfE.FindInformationAcademiesTrusts.Setup; + +[ExcludeFromCodeCoverage] +public static class HealthCheckSetup +{ + public static void AddHealthChecks(WebApplicationBuilder builder) { + builder.Services.AddHealthChecks(); + AddDbHealthChecks(builder); + } + + public static void AddDbHealthChecks(WebApplicationBuilder builder) { + builder.Services.AddHealthChecks() + .AddDbContextCheck() + .AddDbContextCheck(); + } +}