From f3d1dc5945d74afccc126fd191023c48513b5fd4 Mon Sep 17 00:00:00 2001 From: Lurumad Date: Tue, 21 Mar 2017 18:26:22 +0100 Subject: [PATCH] Add PostgreSQL health check --- .../HealthCheckBuilderDataExtensions.cs | 23 +++++++++++++++++++ ...rosoft.Extensions.HealthChecks.Data.csproj | 1 + 2 files changed, 24 insertions(+) diff --git a/src/Microsoft.Extensions.HealthChecks.Data/HealthCheckBuilderDataExtensions.cs b/src/Microsoft.Extensions.HealthChecks.Data/HealthCheckBuilderDataExtensions.cs index 950e92f..c207396 100644 --- a/src/Microsoft.Extensions.HealthChecks.Data/HealthCheckBuilderDataExtensions.cs +++ b/src/Microsoft.Extensions.HealthChecks.Data/HealthCheckBuilderDataExtensions.cs @@ -4,6 +4,7 @@ using System; using System.Data; using System.Data.SqlClient; +using Npgsql; namespace Microsoft.Extensions.HealthChecks { @@ -41,5 +42,27 @@ public static HealthCheckBuilder AddSqlCheck(this HealthCheckBuilder builder, st return builder; } + + public static HealthCheckBuilder AddPostgreSqlCheck(this HealthCheckBuilder builder, string name, string connectionString) + { + builder.AddCheck($"PostgreSqlCheck({name})", async () => + { + try + { + using (var connection = new NpgsqlConnection(connectionString)) + { + await connection.OpenAsync(); + + return HealthCheckResult.Healthy($"PostgreSqlCheck({name}): Healthy"); + } + } + catch (Exception ex) + { + return HealthCheckResult.Unhealthy($"PostgreSqlCheck({name}): Exception during check: {ex.GetType().FullName}"); + } + }); + + return builder; + } } } diff --git a/src/Microsoft.Extensions.HealthChecks.Data/Microsoft.Extensions.HealthChecks.Data.csproj b/src/Microsoft.Extensions.HealthChecks.Data/Microsoft.Extensions.HealthChecks.Data.csproj index c367234..e50695c 100644 --- a/src/Microsoft.Extensions.HealthChecks.Data/Microsoft.Extensions.HealthChecks.Data.csproj +++ b/src/Microsoft.Extensions.HealthChecks.Data/Microsoft.Extensions.HealthChecks.Data.csproj @@ -9,6 +9,7 @@ +