From 52301468829da1c8888a68496b4205f7018a5e1e Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Mon, 21 Sep 2026 11:13:43 +0100 Subject: [PATCH 1/2] add new health monitoring registration --- Directory.Packages.props | 2 ++ .../MobileConfiguration.csproj | 4 ++- MobileConfiguration/Program.cs | 32 +++++++++++-------- MobileConfiguration/appsettings.json | 17 +++++++--- 4 files changed, 36 insertions(+), 19 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index a545b84..20b08f8 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,7 +3,9 @@ true + + diff --git a/MobileConfiguration/MobileConfiguration.csproj b/MobileConfiguration/MobileConfiguration.csproj index 76b527c..a78210e 100644 --- a/MobileConfiguration/MobileConfiguration.csproj +++ b/MobileConfiguration/MobileConfiguration.csproj @@ -11,7 +11,9 @@ - + + + diff --git a/MobileConfiguration/Program.cs b/MobileConfiguration/Program.cs index 20347f0..1b2dc27 100644 --- a/MobileConfiguration/Program.cs +++ b/MobileConfiguration/Program.cs @@ -1,4 +1,8 @@ +using HealthChecks.UI.Client; +using HealthMonitoring.Client; +using Microsoft.AspNetCore.Diagnostics.HealthChecks; using Microsoft.EntityFrameworkCore; +using Microsoft.Extensions.Options; using MobileConfiguration.Database; using MobileConfiguration.Repository; using NLog; @@ -10,13 +14,12 @@ using Shared.Logger; using Shared.Logger.TennantContext; using Shared.Middleware; +using Shared.Monitoring; using Shared.Serialisation; using System.ComponentModel; using System.Reflection; using System.Text.Json; -using HealthChecks.UI.Client; -using Microsoft.AspNetCore.Diagnostics.HealthChecks; -using Shared.Monitoring; +using Microsoft.Extensions.Diagnostics.HealthChecks; using ILogger = Microsoft.Extensions.Logging.ILogger; using LogLevel = Microsoft.Extensions.Logging.LogLevel; @@ -28,7 +31,11 @@ .AddJsonFile("/home/txnproc/config/appsettings.json", true, true) .AddJsonFile($"/home/txnproc/config/appsettings.{builder.Environment.EnvironmentName}.json", optional: true) .AddJsonFile($"/home/txnproc/config/appsettings.local.json", optional: true) - .AddEnvironmentVariables().Build(); + .AddEnvironmentVariables() + .AddInMemoryCollection(new Dictionary + { + ["HealthMonitoring:Service:Version"] = Assembly.GetEntryAssembly()?.GetName().Version?.ToString() ?? "0.0.0.0" + }).Build(); ConfigurationReader.Initialise(configuration); @@ -141,8 +148,14 @@ builder.Services.ConfigureHttpJsonOptions(options => { JsonSerializerConfiguration.ConfigureMinimalApi(options.SerializerOptions); }); -builder.Services.AddHealthChecks(); -builder.Services.AddUptimeKuma(); +builder.Services.AddHealthChecks().AddSqlServer( + connectionString: ConfigurationReader.GetConnectionString("HealthCheck"), + healthQuery: "SELECT 1;", + name: "Config Database Server", + failureStatus: HealthStatus.Degraded, + tags: new[] { "db", "sql", "sqlserver" }); + +builder.Services.AddHealthMonitoringRegistration(configuration); var app = builder.Build(); @@ -184,13 +197,6 @@ InitializeDatabase(app).Wait(CancellationToken.None); -app.Lifetime.ApplicationStarted.Register(() => -{ - app.RegisterWithUptimeKumaAsync() - .GetAwaiter() - .GetResult(); -}); - app.Run(); diff --git a/MobileConfiguration/appsettings.json b/MobileConfiguration/appsettings.json index f52f840..31c6306 100644 --- a/MobileConfiguration/appsettings.json +++ b/MobileConfiguration/appsettings.json @@ -6,11 +6,18 @@ "ConnectionStrings": { "ConfigurationDatabase": "server=192.168.1.163;user id=sa;password=Sc0tland;database=ConfigurationHost;Encrypt=false" }, - "UptimeKuma": { - "Monitor": { + "HealthMonitoring": { + "Service": { + "ServiceId": "mobile-configuration", "Name": "Mobile Configuration", - "Url": "http://localhost:9200/health", - "IntervalInSeconds": 60 - } + "Description": "Mobile Configuration", + "HealthUrl": "http://localhost:9200/healthui" + }, + "Dependencies": [ + { + "DependencyName": "Config Database Server", + "TargetServiceId": "sql-server" + } + ] } } From 5d7b95f8fa8d7fb3c8f0d678edffd604b962c8cf Mon Sep 17 00:00:00 2001 From: StuartFerguson Date: Mon, 21 Sep 2026 11:25:32 +0100 Subject: [PATCH 2/2] change requested by codex --- MobileConfiguration/Program.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MobileConfiguration/Program.cs b/MobileConfiguration/Program.cs index 1b2dc27..0900a04 100644 --- a/MobileConfiguration/Program.cs +++ b/MobileConfiguration/Program.cs @@ -149,7 +149,7 @@ JsonSerializerConfiguration.ConfigureMinimalApi(options.SerializerOptions); }); builder.Services.AddHealthChecks().AddSqlServer( - connectionString: ConfigurationReader.GetConnectionString("HealthCheck"), + connectionString: ConfigurationReader.GetConnectionString("ConfigurationDatabase"), healthQuery: "SELECT 1;", name: "Config Database Server", failureStatus: HealthStatus.Degraded,