From 631c1bd5490f73fd3ae616f2bcb8adc47c096794 Mon Sep 17 00:00:00 2001 From: Argo Zhang Date: Tue, 13 Aug 2019 13:39:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=8A=A0=E5=81=A5=E5=BA=B7?= =?UTF-8?q?=E6=A3=80=E6=9F=A5=E6=A1=86=E6=9E=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Bootstrap.Admin/HealthChecks/DBHealthCheck.cs | 27 +++++++++++++++++++ .../HealthChecksAppBuilderExtensions.cs | 19 +++++++++++++ .../HealthChecksBuilderExtensions.cs | 19 +++++++++++++ Bootstrap.Admin/Startup.cs | 2 ++ 4 files changed, 67 insertions(+) create mode 100644 Bootstrap.Admin/HealthChecks/DBHealthCheck.cs create mode 100644 Bootstrap.Admin/HealthChecks/HealthChecksAppBuilderExtensions.cs create mode 100644 Bootstrap.Admin/HealthChecks/HealthChecksBuilderExtensions.cs diff --git a/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs b/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs new file mode 100644 index 00000000..621e1b7a --- /dev/null +++ b/Bootstrap.Admin/HealthChecks/DBHealthCheck.cs @@ -0,0 +1,27 @@ +using Microsoft.Extensions.Diagnostics.HealthChecks; +using System.Collections.Generic; +using System.Threading; +using System.Threading.Tasks; + +namespace Bootstrap.Admin.HealthChecks +{ + /// + /// 数据库检查 + /// + public class DBHealthCheck : IHealthCheck + { + /// + /// 异步检查方法 + /// + /// + /// + /// + public Task CheckHealthAsync(HealthCheckContext context, CancellationToken cancellationToken = default) + { + var data = new Dictionary(); + data.Add("Test1", "Test1"); + data.Add("Test2", "Test2"); + return Task.FromResult(HealthCheckResult.Healthy("Ok", data)); + } + } +} diff --git a/Bootstrap.Admin/HealthChecks/HealthChecksAppBuilderExtensions.cs b/Bootstrap.Admin/HealthChecks/HealthChecksAppBuilderExtensions.cs new file mode 100644 index 00000000..82032a2d --- /dev/null +++ b/Bootstrap.Admin/HealthChecks/HealthChecksAppBuilderExtensions.cs @@ -0,0 +1,19 @@ +namespace Microsoft.AspNetCore.Builder +{ + /// + /// BootstrapAdmin 健康检查扩展类 + /// + public static class HealthChecksAppBuilderExtensions + { + /// + /// + /// + /// + /// + public static IApplicationBuilder UseBootstrapHealthChecks(this IApplicationBuilder app) + { + app.UseHealthChecks("Healths"); + return app; + } + } +} diff --git a/Bootstrap.Admin/HealthChecks/HealthChecksBuilderExtensions.cs b/Bootstrap.Admin/HealthChecks/HealthChecksBuilderExtensions.cs new file mode 100644 index 00000000..260a38cb --- /dev/null +++ b/Bootstrap.Admin/HealthChecks/HealthChecksBuilderExtensions.cs @@ -0,0 +1,19 @@ +namespace Microsoft.Extensions.DependencyInjection +{ + /// + /// 健康检查扩展类 + /// + public static class HealthChecksBuilderExtensions + { + /// + /// 添加 BootstrapAdmin 健康检查 + /// + /// + /// + public static IHealthChecksBuilder AddBootstrapAdminHealthChecks(this IHealthChecksBuilder builder) + { + builder.AddCheck("db"); + return builder; + } + } +} diff --git a/Bootstrap.Admin/Startup.cs b/Bootstrap.Admin/Startup.cs index 5715b9eb..b880f414 100644 --- a/Bootstrap.Admin/Startup.cs +++ b/Bootstrap.Admin/Startup.cs @@ -64,6 +64,7 @@ namespace Bootstrap.Admin services.AddSwagger(); services.AddButtonAuthorization(); services.AddDemoTask(); + services.AddHealthChecks().AddBootstrapAdminHealthChecks(); services.AddMvc(options => { options.Filters.Add(); @@ -107,6 +108,7 @@ namespace Bootstrap.Admin app.UseHttpsRedirection(); app.UseResponseCompression(); app.UseStaticFiles(); + app.UseBootstrapHealthChecks(); app.UseBootstrapAdminAuthentication(RoleHelper.RetrievesByUserName, RoleHelper.RetrievesByUrl, AppHelper.RetrievesByUserName); app.UseOnlineUsers(callback: TraceHelper.Save); app.UseCacheManager();