diff --git a/docker-compose.override.yml b/docker-compose.override.yml index 3334a326c..bc53aa0f8 100644 --- a/docker-compose.override.yml +++ b/docker-compose.override.yml @@ -85,7 +85,7 @@ services: - CatalogUrl=http://catalog.api:5101/hc - OrderingUrl=http://ordering.api:5102/hc - BasketUrl=http://basket.api:5103/hc - - IdentityUrl=http://10.0.75.1:5105/hc + - IdentityUrl=http://identity.api:5105/hc - mvc=http://webmvc:5100/hc - spa=http://webspa:5104/hc ports: diff --git a/src/Services/Basket/Basket.API/Startup.cs b/src/Services/Basket/Basket.API/Startup.cs index f783fccff..09ffc5975 100644 --- a/src/Services/Basket/Basket.API/Startup.cs +++ b/src/Services/Basket/Basket.API/Startup.cs @@ -40,7 +40,7 @@ namespace Microsoft.eShopOnContainers.Services.Basket.API services.AddHealthChecks(checks => { - checks.AddValueTaskCheck("Always OK", () => new ValueTask(HealthCheckResult.Healthy("Ok"))); + checks.AddValueTaskCheck("HTTP Endpoint", () => new ValueTask(HealthCheckResult.Healthy("Ok"))); }); // Add framework services. diff --git a/src/Services/Catalog/Catalog.API/Startup.cs b/src/Services/Catalog/Catalog.API/Startup.cs index d49cc20be..9ebeaf51e 100644 --- a/src/Services/Catalog/Catalog.API/Startup.cs +++ b/src/Services/Catalog/Catalog.API/Startup.cs @@ -48,7 +48,7 @@ services.AddHealthChecks(checks => { - checks.AddUrlCheck(Configuration["ExternalCatalogBaseUrl"]); + checks.AddSqlCheck("CatalogDb", Configuration["ConnectionString"]); }); services.AddMvc(options => diff --git a/src/Services/Ordering/Ordering.API/Startup.cs b/src/Services/Ordering/Ordering.API/Startup.cs index 2875eb2de..e7a6af682 100644 --- a/src/Services/Ordering/Ordering.API/Startup.cs +++ b/src/Services/Ordering/Ordering.API/Startup.cs @@ -53,7 +53,7 @@ services.AddHealthChecks(checks => { - checks.AddSqlCheck("Ordering_Db", Configuration["ConnectionString"]); + checks.AddSqlCheck("OrderingDb", Configuration["ConnectionString"]); }); services.AddEntityFrameworkSqlServer() diff --git a/src/Web/WebMVC/Startup.cs b/src/Web/WebMVC/Startup.cs index e379041c4..3e0779ef2 100644 --- a/src/Web/WebMVC/Startup.cs +++ b/src/Web/WebMVC/Startup.cs @@ -48,7 +48,7 @@ namespace Microsoft.eShopOnContainers.WebMVC services.AddHealthChecks(checks => { - checks.AddUrlCheck(Configuration["CallBackUrl"]); + checks.AddValueTaskCheck("HTTP Endpoint", () => new ValueTask(HealthCheckResult.Healthy("Ok"))); }); // Add application services. diff --git a/src/Web/WebSPA/Startup.cs b/src/Web/WebSPA/Startup.cs index 163ccca04..0bbaa90d8 100644 --- a/src/Web/WebSPA/Startup.cs +++ b/src/Web/WebSPA/Startup.cs @@ -10,6 +10,7 @@ using Microsoft.Extensions.Logging; using Newtonsoft.Json.Serialization; using eShopOnContainers.WebSPA; using Microsoft.Extensions.HealthChecks; +using System.Threading.Tasks; namespace eShopConContainers.WebSPA { @@ -42,7 +43,7 @@ namespace eShopConContainers.WebSPA { services.AddHealthChecks(checks => { - checks.AddUrlCheck(Configuration["CallBackUrl"]); + checks.AddValueTaskCheck("HTTP Endpoint", () => new ValueTask(HealthCheckResult.Healthy("Ok"))); }); services.Configure(Configuration); diff --git a/src/Web/WebStatus/Controllers/HomeController.cs b/src/Web/WebStatus/Controllers/HomeController.cs index f75725502..34a31f1f5 100644 --- a/src/Web/WebStatus/Controllers/HomeController.cs +++ b/src/Web/WebStatus/Controllers/HomeController.cs @@ -25,7 +25,7 @@ namespace WebStatus.Controllers foreach (var checkResult in result.Results) { - data.AddResult(checkResult.Value); + data.AddResult(checkResult.Key, checkResult.Value); } return View(data); diff --git a/src/Web/WebStatus/Viewmodels/HealthStatusViewModel.cs b/src/Web/WebStatus/Viewmodels/HealthStatusViewModel.cs index f01d3e616..d30acc460 100644 --- a/src/Web/WebStatus/Viewmodels/HealthStatusViewModel.cs +++ b/src/Web/WebStatus/Viewmodels/HealthStatusViewModel.cs @@ -9,13 +9,13 @@ namespace WebStatus.Viewmodels public class HealthStatusViewModel { private readonly CheckStatus _overall; - private readonly List _results; + private readonly Dictionary _results; public CheckStatus OverallStatus => _overall; - public IEnumerable Results => _results; - private HealthStatusViewModel() => _results = new List(); + public IEnumerable Results => _results.Select(kvp => new NamedCheckResult(kvp.Key, kvp.Value)); + private HealthStatusViewModel() => _results = new Dictionary(); public HealthStatusViewModel(CheckStatus overall) : this() => _overall = overall; - public void AddResult(IHealthCheckResult result) => _results.Add(result); + public void AddResult(string name, IHealthCheckResult result) => _results.Add(name, result); } diff --git a/src/Web/WebStatus/Viewmodels/NamedCheckResult.cs b/src/Web/WebStatus/Viewmodels/NamedCheckResult.cs new file mode 100644 index 000000000..e856504c7 --- /dev/null +++ b/src/Web/WebStatus/Viewmodels/NamedCheckResult.cs @@ -0,0 +1,20 @@ +using Microsoft.Extensions.HealthChecks; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; + +namespace WebStatus.Viewmodels +{ + public class NamedCheckResult + { + public string Name { get; } + public IHealthCheckResult Result { get; } + + public NamedCheckResult(string name, IHealthCheckResult result) + { + Name = name; + Result = result; + } + } +} diff --git a/src/Web/WebStatus/Views/Home/Index.cshtml b/src/Web/WebStatus/Views/Home/Index.cshtml index a54bdcd41..43fe92891 100644 --- a/src/Web/WebStatus/Views/Home/Index.cshtml +++ b/src/Web/WebStatus/Views/Home/Index.cshtml @@ -16,26 +16,30 @@ {
-

@result.Data["url"]

-

@result.Description

- +

@result.Name

+

+ @if (result.Result.Data.ContainsKey("url")) { +

@result.Result.Data["url"]

+ } + @result.Result.Description +

- @if (@result.CheckStatus == Microsoft.Extensions.HealthChecks.CheckStatus.Healthy) + @if (@result.Result.CheckStatus == Microsoft.Extensions.HealthChecks.CheckStatus.Healthy) { - @result.CheckStatus + @result.Result.CheckStatus } - else if (@result.CheckStatus == Microsoft.Extensions.HealthChecks.CheckStatus.Unhealthy) + else if (@result.Result.CheckStatus == Microsoft.Extensions.HealthChecks.CheckStatus.Unhealthy) { - @result.CheckStatus + @result.Result.CheckStatus } - else if (@result.CheckStatus == Microsoft.Extensions.HealthChecks.CheckStatus.Warning) + else if (@result.Result.CheckStatus == Microsoft.Extensions.HealthChecks.CheckStatus.Warning) { - @result.CheckStatus + @result.Result.CheckStatus } else { - @result.CheckStatus + @result.Result.CheckStatus }