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"