diff --git a/Directory.Packages.props b/Directory.Packages.props index ed9ade44..afe03537 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -18,6 +18,7 @@ + diff --git a/NuGet.Config b/NuGet.Config index eeaf9358..ee4d94d4 100644 --- a/NuGet.Config +++ b/NuGet.Config @@ -10,6 +10,7 @@ + diff --git a/TransactionProcessor/Bootstrapper/MiddlewareRegistry.cs b/TransactionProcessor/Bootstrapper/MiddlewareRegistry.cs index f6622ba8..0cf84015 100644 --- a/TransactionProcessor/Bootstrapper/MiddlewareRegistry.cs +++ b/TransactionProcessor/Bootstrapper/MiddlewareRegistry.cs @@ -11,6 +11,7 @@ namespace TransactionProcessor.Bootstrapper using Common; using EventStore.Client; using Google.Api; + using HealthMonitoring.Client; using Lamar; using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Http.Json; @@ -55,7 +56,8 @@ public MiddlewareRegistry() this.ConfigureMvc(); this.ConfigureAuthorization(); this.ConfigureJsonOptions(); - this.AddUptimeKuma(); + + this.AddHealthMonitoringRegistration(Startup.Configuration); } #endregion diff --git a/TransactionProcessor/Program.cs b/TransactionProcessor/Program.cs index 53bce346..ba296ea1 100644 --- a/TransactionProcessor/Program.cs +++ b/TransactionProcessor/Program.cs @@ -14,6 +14,7 @@ namespace TransactionProcessor using NLog; using Sentry.Extensibility; using Shared.General; + using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using System.IO; using System.Reflection; @@ -79,7 +80,11 @@ 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) IConfigurationRoot builtConfig = configBuilder.Build(); diff --git a/TransactionProcessor/Startup.cs b/TransactionProcessor/Startup.cs index e7c157ef..9de48609 100644 --- a/TransactionProcessor/Startup.cs +++ b/TransactionProcessor/Startup.cs @@ -122,14 +122,7 @@ public void Configure(IApplicationBuilder app, this.ConfigureEndpoints(app); app.PreWarm(); - - lifetime.ApplicationStarted.Register(() => - { - host.RegisterWithUptimeKumaAsync() - .GetAwaiter() - .GetResult(); - }); - + this.TraceLoadedTokenAssemblies(); } diff --git a/TransactionProcessor/TransactionProcessor.csproj b/TransactionProcessor/TransactionProcessor.csproj index 1146e290..cd90d204 100644 --- a/TransactionProcessor/TransactionProcessor.csproj +++ b/TransactionProcessor/TransactionProcessor.csproj @@ -10,6 +10,7 @@ + diff --git a/TransactionProcessor/appsettings.json b/TransactionProcessor/appsettings.json index 51db63b1..dfee7b24 100644 --- a/TransactionProcessor/appsettings.json +++ b/TransactionProcessor/appsettings.json @@ -190,12 +190,24 @@ ] } }, - "UptimeKuma": { - "Monitor": { + "HealthMonitoring": { + "Service": { + "ServiceId": "transaction-processor", "Name": "Transaction Processor", - "Url": "http://localhost:5002/health", - "IntervalInSeconds": 60 - } + "Description": "Transaction Processor", + "HealthUrl": "http://localhost:5002/healthui", + "IgnoreCertificateErrors": true + }, + "Dependencies": [ + { + "DependencyName": "Security Service", + "TargetServiceId": "security-service" + }, + { + "DependencyName": "Eventstore", + "TargetServiceId": "kurrentdb" + } + ] }, "ConnectionStrings": { "TransactionProcessorReadModel": "server=192.168.1.163;user id=sa;password=Sc0tland;database=TransactionProcessorReadModel;Encrypt=false"