diff --git a/Directory.Packages.props b/Directory.Packages.props index 767011f..00c3828 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -7,6 +7,7 @@ + diff --git a/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs b/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs index 50eaabe..b649b87 100644 --- a/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs +++ b/TransactionProcessorACL/Bootstrapper/MiddlewareRegistry.cs @@ -1,4 +1,5 @@ -using Microsoft.OpenApi; +using HealthMonitoring.Client; +using Microsoft.OpenApi; using Shared.Authorisation; using Shared.Monitoring; @@ -39,7 +40,7 @@ public MiddlewareRegistry() this.ConfigurePasswordTokenHandling(); this.ConfigureJsonOptions(); this.ConfigureControllers(); - this.AddUptimeKuma(); + this.AddHealthMonitoringRegistration(Startup.Configuration); } /// diff --git a/TransactionProcessorACL/Program.cs b/TransactionProcessorACL/Program.cs index b2a1293..d7dcb66 100644 --- a/TransactionProcessorACL/Program.cs +++ b/TransactionProcessorACL/Program.cs @@ -67,10 +67,14 @@ private static void ConfigureWebHost(IHostBuilder hostBuilder) { .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true, reloadOnChange: true) .AddJsonFile($"/home/txnproc/config/appsettings.local.json", optional: true, reloadOnChange: true) - .AddEnvironmentVariables(); + .AddEnvironmentVariables() + .AddInMemoryCollection(new Dictionary + { + ["HealthMonitoring:Service:Version"] = Assembly.GetEntryAssembly()?.GetName().Version?.ToString() ?? "0.0.0.0" + }); - // Build a snapshot of configuration so we can use it immediately (e.g. for Sentry) - var builtConfig = configBuilder.Build(); + // Build a snapshot of configuration so we can use it immediately (e.g. for Sentry) + var builtConfig = configBuilder.Build(); // Keep existing static usage (if you must), and initialise the ConfigurationReader now. Startup.Configuration = builtConfig; diff --git a/TransactionProcessorACL/Startup.cs b/TransactionProcessorACL/Startup.cs index 8cdf0f8..e012ff6 100644 --- a/TransactionProcessorACL/Startup.cs +++ b/TransactionProcessorACL/Startup.cs @@ -74,13 +74,6 @@ public void Configure(IApplicationBuilder app, IWebHostEnvironment env, ILoggerF InitializeLogger(loggerFactory); ConfigureMiddleware(app); ConfigureEndpoints(app); - - lifetime.ApplicationStarted.Register(() => - { - host.RegisterWithUptimeKumaAsync() - .GetAwaiter() - .GetResult(); - }); } private static void UseDevelopmentExceptionPage(IApplicationBuilder app, diff --git a/TransactionProcessorACL/TransactionProcessorACL.csproj b/TransactionProcessorACL/TransactionProcessorACL.csproj index 44e078c..4b446e1 100644 --- a/TransactionProcessorACL/TransactionProcessorACL.csproj +++ b/TransactionProcessorACL/TransactionProcessorACL.csproj @@ -11,6 +11,7 @@ + diff --git a/TransactionProcessorACL/appsettings.json b/TransactionProcessorACL/appsettings.json index 730c2be..a7a0f58 100644 --- a/TransactionProcessorACL/appsettings.json +++ b/TransactionProcessorACL/appsettings.json @@ -12,11 +12,26 @@ "SecurityConfiguration": { "ApiName": "transactionProcessorACL" }, - "UptimeKuma": { - "Monitor": { + "HealthMonitoring": { + "Service": { + "ServiceId": "transaction-processor-acl", "Name": "Transaction Processor ACL", - "Url": "http://localhost:5003/health", - "IntervalInSeconds": 60 - } + "Description": "Transaction Processor ACL", + "HealthUrl": "http://localhost:5003/healthui" + }, + "Dependencies": [ + { + "DependencyName": "Security Service", + "TargetServiceId": "security-service" + }, + { + "DependencyName": "Transaction Processor Service", + "TargetServiceId": "transaction-processor" + }, + { + "DependencyName": "Eventstore", + "TargetServiceId": "kurrentdb" + } + ] } }