This commit is contained in:
2023-02-28 20:48:13 +00:00
parent c45b976f88
commit 1cdc8b9564

View File

@@ -63,19 +63,32 @@ namespace Sockeye.Biz
{
//space things out a bit to not "Hammer" out calls
await Task.Delay(1000);//1 second delay between calls
//https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?source=recommendations&view=aspnetcore-7.0
//https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?source=recommendations&view=aspnetcore-7.0#customize-the-http-status-code
//Basically it returns only plain text
//http status code = 200 for both Healthy and Degraded
//http status code = 503 for UnHealthy
//for our purposes anything other than 200 and "Healthy" is a problem
var res = await client.GetAsync($"https://{srv.Name}/health");
var responseText = await res.Content.ReadAsStringAsync();
//https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?source=recommendations&view=aspnetcore-7.0
//https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/health-checks?source=recommendations&view=aspnetcore-7.0#customize-the-http-status-code
//Basically it returns only plain text
//http status code = 200 for both Healthy and Degraded
//http status code = 503 for UnHealthy
//for our purposes anything other than 200 and "Healthy" is a problem
HttpResponseMessage res = null;
string responseText = string.Empty;
bool Failed = false;
try
{
res = await client.GetAsync($"https://{srv.Name}/health");
responseText = await res.Content.ReadAsStringAsync();
if (res.IsSuccessStatusCode && responseText == "Healthy")
Failed = false;
}
catch (System.Net.Http.HttpRequestException hex)
{
Failed = true;
responseText = $"Failure {hex.Message}";
}
srv.LastHealthCheck = DateTime.UtcNow;
srv.LastHealthStatus = responseText;
log.LogDebug($"Health check server {srv.Name} response {responseText}");
if (res.IsSuccessStatusCode && responseText == "Healthy")
if (!Failed)
{
//a-ok
srv.ServerState = ServerState.ActiveHealthy;