diff --git a/HealthChecks.sln b/HealthChecks.sln index facc21a..100448e 100644 --- a/HealthChecks.sln +++ b/HealthChecks.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 15 -VisualStudioVersion = 15.0.26228.9 +VisualStudioVersion = 15.0.26730.12 MinimumVisualStudioVersion = 15.0.26228.4 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "samples", "samples", "{E05DCF88-F916-4B61-A5DC-A8344C9E2429}" EndProject @@ -25,6 +25,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.AspNet.HealthChec EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleHealthChecker.AspNet", "samples\SampleHealthChecker.AspNet\SampleHealthChecker.AspNet.csproj", "{33FB5967-62C7-4230-B515-780EF63F748E}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{2F673725-6CD2-4658-9C33-818A61AF3D3A}" + ProjectSection(SolutionItems) = preProject + README.md = README.md + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -77,4 +82,7 @@ Global {2AE82E1C-6CE1-4755-A332-FA359B7CCE72} = {F9BA869A-7D5F-420F-9505-2D881F7934A7} {33FB5967-62C7-4230-B515-780EF63F748E} = {E05DCF88-F916-4B61-A5DC-A8344C9E2429} EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0B66142C-A3CB-48DF-AC49-C8C1656F84CA} + EndGlobalSection EndGlobal diff --git a/README.md b/README.md index 9c068f5..9683f62 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,121 @@ -Health checks for building services +Health checks for building services [![Build status](https://ci.appveyor.com/api/projects/status/nyvfn5yb8g623rt3?svg=true)](https://ci.appveyor.com/project/seven1986/healthchecks) === - This project is part of ASP.NET Core. You can find samples, documentation and getting started instructions for ASP.NET Core at the [Home](https://github.com/aspnet/home) repo. + +Project | NuGet | Used For +--------------- | --------------- | --------------- +Microsoft.AspNet.HealthChecks|[![NuGet downloads Microsoft.AspNet.HealthChecks](https://img.shields.io/nuget/dt/Microsoft.AspNet.HealthChecks.svg)](https://www.nuget.org/packages/Microsoft.AspNet.HealthChecks)|AspNet +Microsoft.AspNetCore.HealthChecks|[![NuGet downloads Microsoft.AspNetCore.HealthChecks](https://img.shields.io/nuget/dt/Microsoft.AspNetCore.HealthChecks.svg)](https://www.nuget.org/packages/Microsoft.AspNetCore.HealthChecks)|AspNetCore +Microsoft.Extensions.HealthChecks.AzureStorage|[![NuGet downloads Microsoft.Extensions.HealthChecks.AzureStorage](https://img.shields.io/nuget/dt/Microsoft.Extensions.HealthChecks.AzureStorage.svg)](https://www.nuget.org/packages/Microsoft.Extensions.HealthChecks.AzureStorage)|AspNetCore +Microsoft.Extensions.HealthChecks.SqlServer|[![NuGet downloads Microsoft.Extensions.HealthChecks.SqlServer](https://img.shields.io/nuget/dt/Microsoft.Extensions.HealthChecks.SqlServer.svg)](https://www.nuget.org/packages/Microsoft.Extensions.HealthChecks.SqlServer)|AspNetCore + +#### for your AspNet Project +``` +Install-Package Microsoft.AspNet.HealthChecks +``` + +```csharp +//Global.cs +public class Global : System.Web.HttpApplication + { + protected void Application_Start(object sender, EventArgs e) + { + HealthCheckHandler.Timeout = TimeSpan.FromSeconds(3); + + GlobalHealthChecks.Build(builder => + builder.WithDefaultCacheDuration(TimeSpan.FromMinutes(1)) + .AddUrlCheck("https://github.com") + .AddHealthCheckGroup( + "servers", + group => group.AddUrlCheck("https://google.com") + .AddUrlCheck("https://twitddter.com") + ) + .AddHealthCheckGroup( + "memory", + group => group.AddPrivateMemorySizeCheck(1) + .AddVirtualMemorySizeCheck(2) + .AddWorkingSetCheck(1) + ) + .AddCheck("thrower", (Func)(() => { throw new DivideByZeroException(); })) + .AddCheck("long-running", async cancellationToken => { await Task.Delay(10000, cancellationToken); return HealthCheckResult.Healthy("I ran too long"); }) + ); + } + } +``` + + + +### for your AspNetCore Project +``` +Install-Package Microsoft.AspNetCore.HealthChecks +``` + +```csharp +//Program.cs + public class Program + { + public static void Main(string[] args) + { + var host = new WebHostBuilder() + .UseKestrel() + .UseHealthChecks("/health", TimeSpan.FromSeconds(3)) // Or to host on a separate port: .UseHealthChecks(port) + .UseContentRoot(Directory.GetCurrentDirectory()) + .UseIISIntegration() + .UseStartup() + .Build(); + + host.Run(); + } + } +``` + + + +```csharp +// Startup.cs + public void ConfigureServices(IServiceCollection services) + { + // When doing DI'd health checks, you must register them as services of their concrete type + services.AddSingleton(); + + services.AddHealthChecks(checks => + { + checks.AddUrlCheck("https://github.com") + .AddHealthCheckGroup( + "servers", + group => group.AddUrlCheck("https://google.com") + .AddUrlCheck("https://twitddter.com") + ) + .AddHealthCheckGroup( + "memory", + group => group.AddPrivateMemorySizeCheck(1) + .AddVirtualMemorySizeCheck(2) + .AddWorkingSetCheck(1), + CheckStatus.Unhealthy + ) + .AddCheck("thrower", (Func)(() => { throw new DivideByZeroException(); })) + .AddCheck("long-running", async cancellationToken => { await Task.Delay(10000, cancellationToken); return HealthCheckResult.Healthy("I ran too long"); }) + .AddCheck("custom"); + + // Install-Package Microsoft.Extensions.HealthChecks.AzureStorage + // Install-Package Microsoft.Extensions.HealthChecks.SqlServer + // add valid storage account credentials first + checks.AddAzureBlobStorageCheck("accountName", "accountKey"); + checks.AddAzureBlobStorageCheck("accountName", "accountKey", "containerName"); + + checks.AddAzureTableStorageCheck("accountName", "accountKey"); + checks.AddAzureTableStorageCheck("accountName", "accountKey", "tableName"); + + checks.AddAzureFileStorageCheck("accountName", "accountKey"); + checks.AddAzureFileStorageCheck("accountName", "accountKey", "shareName"); + + checks.AddAzureQueueStorageCheck("accountName", "accountKey"); + checks.AddAzureQueueStorageCheck("accountName", "accountKey", "queueName"); + */ + }); + + services.AddMvc(); + } + +``` diff --git a/src/Microsoft.AspNet.HealthChecks/Microsoft.AspNet.HealthChecks.csproj b/src/Microsoft.AspNet.HealthChecks/Microsoft.AspNet.HealthChecks.csproj index f197372..e355b66 100644 --- a/src/Microsoft.AspNet.HealthChecks/Microsoft.AspNet.HealthChecks.csproj +++ b/src/Microsoft.AspNet.HealthChecks/Microsoft.AspNet.HealthChecks.csproj @@ -2,6 +2,7 @@ net46 + true diff --git a/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj b/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj index 62a414c..90e2d51 100644 --- a/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj +++ b/src/Microsoft.AspNetCore.HealthChecks/Microsoft.AspNetCore.HealthChecks.csproj @@ -2,6 +2,11 @@ netcoreapp1.0 + https://github.com/seven1986/HealthChecks + https://github.com/seven1986/HealthChecks + HealthChecks For AspNetCore WebApplication + true + false diff --git a/src/Microsoft.Extensions.HealthChecks.AzureStorage/Microsoft.Extensions.HealthChecks.AzureStorage.csproj b/src/Microsoft.Extensions.HealthChecks.AzureStorage/Microsoft.Extensions.HealthChecks.AzureStorage.csproj index 24d5ce9..2f71456 100644 --- a/src/Microsoft.Extensions.HealthChecks.AzureStorage/Microsoft.Extensions.HealthChecks.AzureStorage.csproj +++ b/src/Microsoft.Extensions.HealthChecks.AzureStorage/Microsoft.Extensions.HealthChecks.AzureStorage.csproj @@ -6,6 +6,7 @@ false false false + true diff --git a/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj b/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj index 38cb3ff..ca39748 100644 --- a/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj +++ b/src/Microsoft.Extensions.HealthChecks.SqlServer/Microsoft.Extensions.HealthChecks.SqlServer.csproj @@ -2,6 +2,7 @@ netstandard1.3 + true diff --git a/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj b/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj index 75eef99..72a44be 100644 --- a/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj +++ b/src/Microsoft.Extensions.HealthChecks/Microsoft.Extensions.HealthChecks.csproj @@ -2,6 +2,9 @@ netstandard1.3 + false + https://github.com/seven1986/HealthChecks + https://github.com/seven1986/HealthChecks