Contains HealthChecks for Google Cloud Platform Bigtable, based on the nuget package `Google.Cloud.Bigtable.Admin.V2`.
$ dotnet add package NetEvolve.HealthChecks.GCP.BigtableThis package provides a health check for Google Cloud Platform Bigtable, based on the Google.Cloud.Bigtable.Admin.V2 package. The main purpose is to check if the Bigtable database is available and accessible.
:bulb: This package is available for .NET 8.0 and later.
To use this package, you need to add the package to your project. You can do this by using the NuGet package manager or by using the dotnet CLI.
dotnet add package NetEvolve.HealthChecks.GCP.Bigtable
The health check is a liveness check. It checks if the Bigtable database is available and accessible.
If the query needs longer than the configured timeout, the health check will return Degraded.
If the query fails, for whatever reason, the health check will return Unhealthy.
After adding the package, you need to import the namespace and add the health check to the health check builder.
using NetEvolve.HealthChecks.GCP.Bigtable;
Therefore, you can use two different approaches. In both approaches you have to provide a name for the health check.
name: The name of the health check. The name is used to identify the configuration object. It is required and must be unique within the application.options: The configuration options for the health check. If you don't provide any options, the health check will use the configuration based approach.tags: The tags for the health check. The tags bigtable and gcp are always used as default and combined with the user input. You can provide additional tags to group or filter the health checks.The health check requires a Google Cloud Project ID and Instance ID to check Bigtable connectivity. The project ID is determined in the following order:
ProjectName option (if explicitly set)BIGTABLE_PROJECT_ID environment variableGCP_PROJECT environment variableGOOGLE_CLOUD_PROJECT environment variableThe instance ID can be optionally specified using the InstanceId option. If not specified, "_" is used as a placeholder.
The first one is to use the configuration based approach. This approach is recommended if you have multiple Bigtable instances to check.
var builder = services.AddHealthChecks();
builder.AddBigtable("<name>");The configuration looks like this:
{
..., // other configuration
"HealthChecks": {
"GCP": {
"Bigtable": {
"<name>": {
"Timeout": <timeout>, // optional, default is 100 milliseconds
"ProjectName": "<project-id>", // optional, see Project Configuration section
"InstanceId": "<instance-id>" // optional, used to specify the Bigtable instance
}
}
}
}
}The second approach is to use the builder based approach. This approach is recommended if you only have one Bigtable instance to check or dynamic programmatic values.
var builder = services.AddHealthChecks();
builder.AddBigtable("<name>", options =>
{
options.Timeout = <timeout>; // optional, default is 100 milliseconds
options.ProjectName = "<project-id>"; // optional, see Project Configuration section
options.InstanceId = "<instance-id>"; // optional, used to specify the Bigtable instance
});var builder = services.AddHealthChecks();
builder.AddBigtable("<name>", options => ..., "bigtable", "gcp");This project is licensed under the MIT License - see the LICENSE file for details.