https://github.com/dailydevops/healthchecks
https://github.com/dailydevops/healthchecks
dotnet healthchecks
Last synced: 5 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/dailydevops/healthchecks
- Owner: dailydevops
- License: mit
- Created: 2023-08-15T13:36:48.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-10-29T11:56:39.000Z (6 months ago)
- Last Synced: 2024-10-29T13:21:51.722Z (6 months ago)
- Topics: dotnet, healthchecks
- Language: C#
- Homepage:
- Size: 630 KB
- Stars: 1
- Watchers: 4
- Forks: 0
- Open Issues: 17
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Codeowners: .github/CODEOWNERS
Awesome Lists containing this project
README
# HealthChecks



[](https://github.com/dailydevops/healthchecks/actions/workflows/cicd.yml)

[](https://sonarcloud.io/summary/new_code?id=dailydevops_healthchecks)
[](https://sonarcloud.io/summary/new_code?id=dailydevops_healthchecks)## What is this repository about?
This is a mono repository for several NuGet packages based on the [Microsoft.Extensions.Diagnostics.HealthChecks](https://www.nuget.org/packages/Microsoft.Extensions.Diagnostics.HealthChecks) package. The main goal of this repository is to provide a set of health checks for different services and frameworks, which are fully configurable either via code or configuration.### What is the difference between this repository and the [AspNetCore.Diagnostics.HealthChecks](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks) repository?
The main difference is that we try to focus on providing packages that are fully configurable via code or configuration. This means that you can configure the health checks in your `Program.cs` file, or in your `appsettings.json` file, or in any other configuration provider. In some cases, we provide the same healthcheck for a service with an alternative implementation. For example, we provide a healthcheck for MySql that is based on `MySql.Data` and one that is based on `MySqlConnector`. This allows you to choose the implementation that best suits your needs or fits your existing dependencies.
In addition, we try to support the latest LTS and STS versions of .NET ([.NET Support Policy](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core)) as well as the latest preview version of .NET for at least 3 years, but we **can't guarantee** this. This depends on the support of related NuGet packages and the .NET platform itself. See the [Supported .NET Version](#supported-net-version) section for more details.## NuGet packages
The following table lists all currently available NuGet packages. For more details about the packages, please visit the corresponding NuGet page.| Package Name | Current Version | Downloads |
|:-------------|:---------------:|:---------:|
| [NetEvolve.HealthChecks](https://www.nuget.org/packages/NetEvolve.HealthChecks/)
Contains general application HealthChecks. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks/) |
| [NetEvolve.HealthChecks.Abstractions](https://www.nuget.org/packages/NetEvolve.HealthChecks.Abstractions/)
Contains abstract implementations for the `NetEvolve.HealthChecks`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Abstractions/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Abstractions/) |
| [NetEvolve.HealthChecks.Apache.Kafka](https://www.nuget.org/packages/NetEvolve.HealthChecks.Apache.Kafka/)
Contains HealthChecks for Apache Kafka, based on the NuGet package `Confluent.Kafka`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Apache.Kafka/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Apache.Kafka/) |
| [NetEvolve.HealthChecks.Azure.Blobs](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Blobs/)
Contains HealthChecks for Azure Blob Storage. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Blobs/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Blobs/) |
| [NetEvolve.HealthChecks.Azure.Queues](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Queues/)
Contains HealthChecks for Azure Queue Storage. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Queues/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Queues/) |
| [NetEvolve.HealthChecks.Azure.Tables](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Tables/)
Contains HealthChecks for Azure Table Storage. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Tables/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Azure.Tables/) |
| [NetEvolve.HealthChecks.ClickHouse](https://www.nuget.org/packages/NetEvolve.HealthChecks.ClickHouse/)
Contains HealthChecks for ClickHouse, based on the nuget package `ClickHouse.Client`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.ClickHouse/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.ClickHouse/) |
| [NetEvolve.HealthChecks.Dapr](https://www.nuget.org/packages/NetEvolve.HealthChecks.Dapr/)
Contains HealthChecks for Dapr, based on the nuget package `Dapr.Client`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Dapr/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Dapr/) |
| [NetEvolve.HealthChecks.MySql](https://www.nuget.org/packages/NetEvolve.HealthChecks.MySql/)
Contains HealthChecks for MySql, based on the nuget package `MySql.Data`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.MySql/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.MySql/) |
| [NetEvolve.HealthChecks.MySql.Connector](https://www.nuget.org/packages/NetEvolve.HealthChecks.MySql.Connector/)
Contains HealthChecks for MySql, based on the nuget package `MySqlConnector`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.MySql.Connector/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.MySql.Connector/) |
| [NetEvolve.HealthChecks.Npgsql](https://www.nuget.org/packages/NetEvolve.HealthChecks.Npgsql/)
Contains HealthChecks for PostgreSQL, based on the nuget package `Npgsql`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Npgsql/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Npgsql/) |
| [NetEvolve.HealthChecks.Oracle](https://www.nuget.org/packages/NetEvolve.HealthChecks.Oracle/)
Contains HealthChecks for Oracle Databases, based on the nuget package `Oracle.ManagedDataAccess.Core`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Oracle/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Oracle/) |
| [NetEvolve.HealthChecks.Redis](https://www.nuget.org/packages/NetEvolve.HealthChecks.Redis/)
Contains HealthChecks for Redis, based on the NuGet package `StackExchange.Redis`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Redis/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Redis/) |
| [NetEvolve.HealthChecks.Redpanda](https://www.nuget.org/packages/NetEvolve.HealthChecks.Redpanda/)
Contains HealthChecks for Redpanda, based on the NuGet package `Confluent.Kafka`. This is a temporary measure; if a dedicated Redpanda client is provided in the future, we will use it immediately. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Redpanda/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.Redpanda/) |
| [NetEvolve.HealthChecks.SqlEdge](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlEdge/) ❌ **DEPRECATED**
Contains HealthChecks for SqlEdge, based on the nuget package `Microsoft.Data.SqlClient`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlEdge/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlEdge/) |
| [NetEvolve.HealthChecks.SQLite](https://www.nuget.org/packages/NetEvolve.HealthChecks.SQLite/)
Contains HealthChecks for SQLite, based on the nuget package `Microsoft.Data.Sqlite`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SQLite/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SQLite/) |
| [NetEvolve.HealthChecks.SqlServer](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlServer/)
Contains HealthChecks for Microsoft SqlServer, based on the nuget package `Microsoft.Data.SqlClient`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlServer/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlServer/) |
| [NetEvolve.HealthChecks.SqlServer.Legacy](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlServer.Legacy/)
Contains HealthChecks for Microsoft SqlServer, based on the nuget package `System.Data.SqlClient`. | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlServer.Legacy/#versions-body-tab) | [](https://www.nuget.org/packages/NetEvolve.HealthChecks.SqlServer.Legacy/) |### Package naming explanation
The package names are based on the following naming schema - `NetEvolve.HealthChecks..`The `GroupName` is optional and is used to group related services. For example, all azure platform services are grouped under `Azure`. The `ServiceName` is the name of the service for which the health check is provided. For example, `SqlServer` or `MySql`.
The following table lists all planned and used groups. We will add more groups maybe in the future, if the demand is there.
- Apache
- AWS
- Azure
- GCP## Supported .NET version
We try to support the LTS and STS versions of .NET ([.NET Support Policy](https://dotnet.microsoft.com/en-us/platform/support/policy/dotnet-core)), as well as the latest preview version of .NET. We will try to support each framework version for at least 3 years, but we can't guarantee it. This depends on the support of related NuGet packages and the .NET platform itself.| .NET Version | Supported |
|----------------------------------|:--------------------------------------------------------|
| **.NET Standard** | :x: No |
| **.NET 7.0 or earlier versions** | :x: No |
| **.NET 8.0** | :white_check_mark: Yes |
| **.NET 9.0** | :white_check_mark: Yes |Why did we choose this approach? Because we want to be able to take advantage of the latest language features of the .NET platform and the performance gains that come with them. We know that not all of our NuGet packages will gain performance from this, but this is our general strategy and nobody knows what the future will bring.
### Where can I find more information about the end-of-life (EOL) date for the relevant components?
To get more information about the end-of-life (EOL) date for the relevant components, please visit the website of the creators of the components or try the website [endoflife.date](https://endoflife.date/).## Why not .NET Standard?
With the .NET Standard Microsoft created a specification for APIs that are intended to be available on all .NET implementations. This was a great idea, but it also has some drawbacks. The main drawback is that the .NET Standard is a specification and not an implementation. This means that the real work is done by .NET implementations, such as .NET 5.0 and later versions. Which is why we decided us against the .NET Standard and for the concrete .NET implementations.See [The future of .NET Standard](https://devblogs.microsoft.com/dotnet/the-future-of-net-standard/) for more details.