Skip to content

Commit e8730db

Browse files
smbeckeradamsitnik
andauthored
Add ClickHouse HealthCheck support (#2315)
Co-authored-by: Adam Sitnik <[email protected]>
1 parent 6040468 commit e8730db

19 files changed

+565
-4
lines changed

.env

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,4 +20,7 @@ FTP_PORT=21
2020
FTP_USER=bob
2121
FTP_PASS=12345
2222
RAVENDB_PORT=9030
23-
SOLR_PORT=8983
23+
SOLR_PORT=8983
24+
CLICKHOUSE_USER=default
25+
CLICKHOUSE_PASSWORD=Password12!
26+
CLICKHOUSE_PORT=8123

.github/codecov.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ flags:
3131
carryforward: true
3232
AzureStorage:
3333
carryforward: true
34+
ClickHouse:
35+
carryforward: true
3436
Consul:
3537
carryforward: true
3638
CosmosDb:

.github/labeler.yml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ azure:
3636
- changed-files:
3737
- any-glob-to-any-file: [src/HealthChecks.Azure*/**/*]
3838

39+
clickhouse:
40+
- src/HealthChecks.ClickHouse/**/*
41+
3942
consul:
4043
- changed-files:
4144
- any-glob-to-any-file: [src/HealthChecks.Consul/**/*]
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
name: HealthChecks ClickHouse DB CD
2+
3+
on:
4+
push:
5+
tags:
6+
- release-clickhouse-*
7+
- release-all-*
8+
9+
jobs:
10+
build:
11+
uses: ./.github/workflows/reusable_cd_workflow.yml
12+
secrets: inherit
13+
with:
14+
BUILD_CONFIG: Release
15+
PROJECT_PATH: ./src/HealthChecks.ClickHouse/HealthChecks.ClickHouse.csproj
16+
PACKAGE_NAME: AspNetCore.HealthChecks.ClickHouse
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: HealthChecks ClickHouse DB Preview CD
2+
3+
on:
4+
push:
5+
tags:
6+
- preview-clickhouse-*
7+
- preview-all-*
8+
9+
jobs:
10+
build:
11+
uses: ./.github/workflows/reusable_cd_preview_workflow.yml
12+
secrets: inherit
13+
with:
14+
BUILD_CONFIG: Release
15+
VERSION_SUFFIX_PREFIX: rc1
16+
PROJECT_PATH: ./src/HealthChecks.ClickHouse/HealthChecks.ClickHouse.csproj
17+
PACKAGE_NAME: AspNetCore.HealthChecks.ClickHouse
Lines changed: 77 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,77 @@
1+
name: HealthChecks ClickHouse DB CI
2+
3+
on:
4+
workflow_dispatch:
5+
push:
6+
branches: [ master ]
7+
paths:
8+
- src/HealthChecks.ClickHouse/**
9+
- test/HealthChecks.ClickHouse.Tests/**
10+
- test/_SHARED/**
11+
- .github/workflows/healthchecks_clickhouse_ci.yml
12+
- Directory.Build.props
13+
- Directory.Build.targets
14+
- Directory.Packages.props
15+
tags-ignore:
16+
- release-*
17+
- preview-*
18+
19+
pull_request:
20+
branches: [ master ]
21+
paths:
22+
- src/HealthChecks.ClickHouse/**
23+
- test/HealthChecks.ClickHouse.Tests/**
24+
- test/_SHARED/**
25+
- .github/workflows/healthchecks_clickhouse_ci.yml
26+
- Directory.Build.props
27+
- Directory.Build.targets
28+
- Directory.Packages.props
29+
30+
jobs:
31+
build:
32+
runs-on: ubuntu-latest
33+
services:
34+
clickhouse:
35+
image: clickhouse/clickhouse-server:24-alpine
36+
ports:
37+
- 8123:8123
38+
env:
39+
CLICKHOUSE_DB: default
40+
CLICKHOUSE_USER: default
41+
CLICKHOUSE_PASSWORD: "Password12!"
42+
CLICKHOUSE_DEFAULT_ACCESS_MANAGEMENT: "1"
43+
steps:
44+
- uses: actions/checkout@v3
45+
- name: Setup .NET
46+
uses: actions/setup-dotnet@v4
47+
with:
48+
dotnet-version: |
49+
8.0.x
50+
9.0.x
51+
- name: Restore
52+
run: |
53+
dotnet restore ./src/HealthChecks.ClickHouse/HealthChecks.ClickHouse.csproj &&
54+
dotnet restore ./test/HealthChecks.ClickHouse.Tests/HealthChecks.ClickHouse.Tests.csproj
55+
- name: Check formatting
56+
run: |
57+
dotnet format --no-restore --verify-no-changes --severity warn ./src/HealthChecks.ClickHouse/HealthChecks.ClickHouse.csproj || (echo "Run 'dotnet format' to fix issues" && exit 1) &&
58+
dotnet format --no-restore --verify-no-changes --severity warn ./test/HealthChecks.ClickHouse.Tests/HealthChecks.ClickHouse.Tests.csproj || (echo "Run 'dotnet format' to fix issues" && exit 1)
59+
- name: Build
60+
run: |
61+
dotnet build --no-restore ./src/HealthChecks.ClickHouse/HealthChecks.ClickHouse.csproj &&
62+
dotnet build --no-restore ./test/HealthChecks.ClickHouse.Tests/HealthChecks.ClickHouse.Tests.csproj
63+
- name: Test
64+
run: >
65+
dotnet test
66+
./test/HealthChecks.ClickHouse.Tests/HealthChecks.ClickHouse.Tests.csproj
67+
--no-restore
68+
--no-build
69+
--collect "XPlat Code Coverage"
70+
--results-directory .coverage
71+
--
72+
DataCollectionRunSettings.DataCollectors.DataCollector.Configuration.Format=opencover
73+
- name: Upload Coverage
74+
uses: codecov/codecov-action@v3
75+
with:
76+
flags: ClickHouse
77+
directory: .coverage

AspNetCore.Diagnostics.HealthChecks.sln

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthChecks.Rabbitmq.v6",
315315
EndProject
316316
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthChecks.RabbitMQ.v6.Tests", "test\HealthChecks.RabbitMQ.v6.Tests\HealthChecks.RabbitMQ.v6.Tests.csproj", "{2787F63E-ABEA-9461-CDF3-97FE7C5C3DCC}"
317317
EndProject
318+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthChecks.ClickHouse", "src\HealthChecks.ClickHouse\HealthChecks.ClickHouse.csproj", "{96E2B0A3-02BD-456B-8888-4D96DABA99EB}"
319+
EndProject
320+
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "HealthChecks.ClickHouse.Tests", "test\HealthChecks.ClickHouse.Tests\HealthChecks.ClickHouse.Tests.csproj", "{2FB5CB9F-F870-48DE-BD1D-306AE86A67CA}"
321+
EndProject
318322
Global
319323
GlobalSection(SolutionConfigurationPlatforms) = preSolution
320324
Debug|Any CPU = Debug|Any CPU
@@ -881,6 +885,14 @@ Global
881885
{2787F63E-ABEA-9461-CDF3-97FE7C5C3DCC}.Debug|Any CPU.Build.0 = Debug|Any CPU
882886
{2787F63E-ABEA-9461-CDF3-97FE7C5C3DCC}.Release|Any CPU.ActiveCfg = Release|Any CPU
883887
{2787F63E-ABEA-9461-CDF3-97FE7C5C3DCC}.Release|Any CPU.Build.0 = Release|Any CPU
888+
{96E2B0A3-02BD-456B-8888-4D96DABA99EB}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
889+
{96E2B0A3-02BD-456B-8888-4D96DABA99EB}.Debug|Any CPU.Build.0 = Debug|Any CPU
890+
{96E2B0A3-02BD-456B-8888-4D96DABA99EB}.Release|Any CPU.ActiveCfg = Release|Any CPU
891+
{96E2B0A3-02BD-456B-8888-4D96DABA99EB}.Release|Any CPU.Build.0 = Release|Any CPU
892+
{2FB5CB9F-F870-48DE-BD1D-306AE86A67CA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
893+
{2FB5CB9F-F870-48DE-BD1D-306AE86A67CA}.Debug|Any CPU.Build.0 = Debug|Any CPU
894+
{2FB5CB9F-F870-48DE-BD1D-306AE86A67CA}.Release|Any CPU.ActiveCfg = Release|Any CPU
895+
{2FB5CB9F-F870-48DE-BD1D-306AE86A67CA}.Release|Any CPU.Build.0 = Release|Any CPU
884896
EndGlobalSection
885897
GlobalSection(SolutionProperties) = preSolution
886898
HideSolutionNode = FALSE
@@ -1026,6 +1038,8 @@ Global
10261038
{D49CF52C-9D21-4D98-8A15-A2B259E9C003} = {FF4414C2-8863-4ADA-8A1D-4B9F25C361FE}
10271039
{C76D7349-A3D2-7277-93C6-EE92E8E447A5} = {2A3FD988-2BB8-43CF-B3A2-B70E648259D4}
10281040
{2787F63E-ABEA-9461-CDF3-97FE7C5C3DCC} = {FF4414C2-8863-4ADA-8A1D-4B9F25C361FE}
1041+
{96E2B0A3-02BD-456B-8888-4D96DABA99EB} = {2A3FD988-2BB8-43CF-B3A2-B70E648259D4}
1042+
{2FB5CB9F-F870-48DE-BD1D-306AE86A67CA} = {FF4414C2-8863-4ADA-8A1D-4B9F25C361FE}
10291043
EndGlobalSection
10301044
GlobalSection(ExtensibilityGlobals) = postSolution
10311045
SolutionGuid = {2B8C62A1-11B6-469F-874C-A02443256568}

Directory.Packages.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<PackageVersion Include="Azure.Storage.Blobs" Version="12.19.1" />
2525
<PackageVersion Include="Azure.Storage.Files.Shares" Version="12.17.1" />
2626
<PackageVersion Include="Azure.Storage.Queues" Version="12.17.1" />
27+
<PackageVersion Include="ClickHouse.Client" Version="7.8.2" />
2728
<PackageVersion Include="Confluent.Kafka" Version="2.3.0" />
2829
<PackageVersion Include="coverlet.collector" Version="6.0.0" />
2930
<PackageVersion Include="Dapr.Client" Version="1.12.0" />

README.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,7 @@ HealthChecks packages include health checks for:
8585
| Azure Key Vault | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.AzureKeyVault)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureKeyVault) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.AzureKeyVault)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureKeyVault) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure)
8686
| Azure Search | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.AzureSearch)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureSearch) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.AzureSearch)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureSearch) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure)
8787
| Azure Service Bus | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.AzureServiceBus)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureServiceBus) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.AzureServiceBus)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureServiceBus) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) | Queue and Topics |
88+
| ClickHouse | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.ClickHouse)](https://www.nuget.org/packages/AspNetCore.HealthChecks.ClickHouse) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.ClickHouse)](https://www.nuget.org/packages/AspNetCore.HealthChecks.ClickHouse) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/clickhouse)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/clickhouse)
8889
| Consul | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Consul)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Consul) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Consul)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Consul) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/consul)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/consul)
8990
| CosmosDb | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.CosmosDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.CosmosDb) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.CosmosDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.CosmosDb) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/cosmosdb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/cosmosdb) | CosmosDb and Azure Table
9091
| Dapr | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Dapr)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Dapr) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Dapr)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Dapr) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/dapr)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/dapr)
@@ -143,6 +144,7 @@ Install-Package AspNetCore.HealthChecks.AzureKeyVault
143144
Install-Package AspNetCore.HealthChecks.AzureSearch
144145
Install-Package AspNetCore.HealthChecks.AzureServiceBus
145146
Install-Package AspNetCore.HealthChecks.AzureStorage
147+
Install-Package AspNetCore.HealthChecks.ClickHouse
146148
Install-Package AspNetCore.HealthChecks.Consul
147149
Install-Package AspNetCore.HealthChecks.CosmosDb
148150
Install-Package AspNetCore.HealthChecks.Dapr
@@ -703,4 +705,4 @@ answering [questions](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthCh
703705
2. Follow the code guidelines and conventions.
704706
3. New features are not only code, tests and documentation are also mandatory.
705707
4. PRs with [`Ups for grabs`](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/Ups%20for%20grabs)
706-
and [help wanted](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/help%20wanted) tags are good candidates to contribute.
708+
and [help wanted](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/help%20wanted) tags are good candidates to contribute.

build/versions.props

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
<HealthCheckAzureStorageBlobs>9.0.0</HealthCheckAzureStorageBlobs>
1919
<HealthCheckAzureStorageFilesShares>9.0.0</HealthCheckAzureStorageFilesShares>
2020
<HealthCheckAzureStorageQueues>9.0.0</HealthCheckAzureStorageQueues>
21+
<HealthCheckClickHouse>9.0.0</HealthCheckClickHouse>
2122
<HealthCheckCloudFirestore>9.0.0</HealthCheckCloudFirestore>
2223
<HealthCheckConsul>9.0.0</HealthCheckConsul>
2324
<HealthCheckCosmosDb>9.0.0</HealthCheckCosmosDb>

0 commit comments

Comments
 (0)