提交 61527851 编写于 作者: 麦壳饼's avatar 麦壳饼

https://github.com/skuzminoff/HealthChecks.ClickHouse 复制, 并更换组件,...

https://github.com/skuzminoff/HealthChecks.ClickHouse   复制, 并更换组件, 使得跟EntityFrameworkCore.ClickHouse使用的ADO组件保持一致。
上级 00e3e7f1
......@@ -22,6 +22,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HealthChecks.IoTDB", "src\H
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HealthChecks.NTPServer", "src\HealthChecks.NTPServer\HealthChecks.NTPServer.csproj", "{49183943-D498-4F29-B1C8-9FAB0F3454BA}"
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "HealthChecks.ClickHouse", "src\HealthChecks.ClickHouse\HealthChecks.ClickHouse.csproj", "{13291139-ABD8-468B-BCF7-9BA6B3057F62}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
......@@ -52,6 +54,10 @@ Global
{49183943-D498-4F29-B1C8-9FAB0F3454BA}.Debug|Any CPU.Build.0 = Debug|Any CPU
{49183943-D498-4F29-B1C8-9FAB0F3454BA}.Release|Any CPU.ActiveCfg = Release|Any CPU
{49183943-D498-4F29-B1C8-9FAB0F3454BA}.Release|Any CPU.Build.0 = Release|Any CPU
{13291139-ABD8-468B-BCF7-9BA6B3057F62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{13291139-ABD8-468B-BCF7-9BA6B3057F62}.Debug|Any CPU.Build.0 = Debug|Any CPU
{13291139-ABD8-468B-BCF7-9BA6B3057F62}.Release|Any CPU.ActiveCfg = Release|Any CPU
{13291139-ABD8-468B-BCF7-9BA6B3057F62}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
......
using System;
using System.Threading;
using Microsoft.Extensions.Diagnostics.HealthChecks;
using System.Threading.Tasks;
using ClickHouse.Client.ADO;
namespace HealthChecks.Clickhouse
{
public class ClickHouseHealthCheck : IHealthCheck
{
private readonly ClickHouse.Client.ADO.ClickHouseConnection houseConnection;
public ClickHouseHealthCheck(ClickHouseConnection clickHouseConnection)
{
houseConnection = clickHouseConnection;
}
public async Task<HealthCheckResult> CheckHealthAsync(
HealthCheckContext context, CancellationToken cancellationToken)
{
try
{
await houseConnection.OpenAsync(cancellationToken);
var version= houseConnection.ServerVersion;
await houseConnection.CloseAsync();
return !string.IsNullOrEmpty(version)
? HealthCheckResult.Healthy()
: HealthCheckResult.Unhealthy();
}
catch (Exception ex)
{
var checkResult = new HealthCheckResult(
context.Registration.FailureStatus,
description: "exception while clickhouse health check",
exception: ex,
data: null);
return checkResult;
}
}
}
}
using System.Collections.Generic;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Diagnostics.HealthChecks;
namespace HealthChecks.Clickhouse.DependencyInjection
{
public static class ClickhouseHealthCheckBuilderExtensions
{
public static IHealthChecksBuilder AddClickHouseHealthCheck(this IHealthChecksBuilder builder,string connectionString,
HealthStatus failureStatus = HealthStatus.Unhealthy,
string name = default,
IEnumerable<string> tags = default)
{
var healthCheckName = name ?? "clickhouse";
return builder.Add(new HealthCheckRegistration(
healthCheckName,
sp => new ClickHouseHealthCheck(new ClickHouse.Client.ADO.ClickHouseConnection(connectionString)),
failureStatus,
tags));
}
}
}
\ No newline at end of file
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<FileVersion>1.0.0</FileVersion>
<Product>HealthChecks.ClickHouse</Product>
<Authors>Kuzminov Stanislav,IoTSharp</Authors>
<Description>ClickHouse db health check</Description>
<Title>IoTSharp.HealthChecks.ClickHouse</Title>
<PackageId>IoTSharp.HealthChecks.ClickHouse</PackageId>
<PackageTags>ClickHouse healthcheck </PackageTags>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/skuzminoff/HealthChecks.ClickHouse</PackageProjectUrl>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
</PropertyGroup>
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
<LangVersion>latest</LangVersion>
<GeneratePackageOnBuild>True</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="ClickHouse.Client" Version="5.0.4" />
<PackageReference Include="Microsoft.Extensions.Diagnostics.HealthChecks" Version="6.0.9" />
</ItemGroup>
</Project>
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册