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();
+ }
+}