{"id":13430425,"url":"https://github.com/xabaril/AspNetCore.Diagnostics.HealthChecks","last_synced_at":"2025-03-16T05:30:55.843Z","repository":{"id":37251406,"uuid":"150572151","full_name":"Xabaril/AspNetCore.Diagnostics.HealthChecks","owner":"Xabaril","description":"Enterprise HealthChecks for ASP.NET Core Diagnostics Package","archived":false,"fork":false,"pushed_at":"2025-01-15T12:38:54.000Z","size":10477,"stargazers_count":4187,"open_issues_count":310,"forks_count":813,"subscribers_count":93,"default_branch":"master","last_synced_at":"2025-02-19T09:15:46.031Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Xabaril.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-27T10:50:21.000Z","updated_at":"2025-02-17T23:52:19.000Z","dependencies_parsed_at":"2022-07-14T06:00:43.835Z","dependency_job_id":"4d574e77-b3ad-411b-b53b-0bc2c3b9962b","html_url":"https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks","commit_stats":{"total_commits":1884,"total_committers":179,"mean_commits":"10.525139664804469","dds":0.7606157112526539,"last_synced_commit":"311ddec39bd03e21e34ca586b9894034c6a9238e"},"previous_names":[],"tags_count":586,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FAspNetCore.Diagnostics.HealthChecks","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FAspNetCore.Diagnostics.HealthChecks/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FAspNetCore.Diagnostics.HealthChecks/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Xabaril%2FAspNetCore.Diagnostics.HealthChecks/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Xabaril","download_url":"https://codeload.github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243830912,"owners_count":20354848,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-07-31T02:00:53.396Z","updated_at":"2025-03-16T05:30:50.827Z","avatar_url":"https://github.com/Xabaril.png","language":"C#","funding_links":[],"categories":["Frameworks, Libraries and Tools","Tools and Libraries","框架, 库和工具"],"sub_categories":["Distributed Computing","Other","分布式计算"],"readme":"[![License](https://img.shields.io/github/license/Xabaril/AspNetCore.Diagnostics.HealthChecks)](LICENSE)\n[![codecov](https://codecov.io/github/Xabaril/AspNetCore.Diagnostics.HealthChecks/coverage.svg?branch=master)](https://codecov.io/github/Xabaril/AspNetCore.Diagnostics.HealthChecks?branch=master)\n[![GitHub Release Date](https://img.shields.io/github/release-date/Xabaril/AspNetCore.Diagnostics.HealthChecks?label=released)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/releases)\n[![GitHub commits since latest release (by date)](https://img.shields.io/github/commits-since/Xabaril/AspNetCore.Diagnostics.HealthChecks/latest?label=new+commits)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/commits/master)\n![Size](https://img.shields.io/github/repo-size/Xabaril/AspNetCore.Diagnostics.HealthChecks)\n\n[![GitHub contributors](https://img.shields.io/github/contributors/Xabaril/AspNetCore.Diagnostics.HealthChecks)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/contributors)\n![Activity](https://img.shields.io/github/commit-activity/w/Xabaril/AspNetCore.Diagnostics.HealthChecks)\n![Activity](https://img.shields.io/github/commit-activity/m/Xabaril/AspNetCore.Diagnostics.HealthChecks)\n![Activity](https://img.shields.io/github/commit-activity/y/Xabaril/AspNetCore.Diagnostics.HealthChecks)\n\n# AspNetCore.Diagnostics.HealthChecks\n\nThis repository offers a wide collection of **ASP.NET Core** Health Check packages for widely used services and platforms.\n\n**ASP.NET Core** versions supported: 8.0, 7.0, 6.0, 5.0, 3.1, 3.0 and 2.2\n\n# Sections\n\n## Previous versions documentation\n\n- [NetCore 3.1](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/netcore-3.1/README.md)\n- [NetCore 3.0](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/netcore-3.0/README.md)\n- [NetCore 2.2](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/netcore-2.2/README.md)\n\n## HealthChecks\n\n- [Health Checks](#Health-Checks)\n- [Health Checks Push Results](#HealthCheck-push-results)\n\n## HealthChecks UI\n\n- [UI](#HealthCheckUI)\n- [UI Storage Providers](#UI-Storage-Providers)\n- [UI Database Migrations](#UI-Database-Migrations)\n- [History Timeline](#Health-status-history-timeline)\n- [Configuration](#Configuration)\n- [Webhooks and Failure Notifications](#Webhooks-and-Failure-Notifications)\n- [HttpClient and HttpMessageHandler Configuration](#UI-Configure-HttpClient-and-HttpMessageHandler-for-Api-and-Webhooks-endpoints)\n\n## HealthChecks UI and Kubernetes\n\n- [Kubernetes Operator](#UI-Kubernetes-Operator)\n- [Kubernetes automatic services discovery](#UI-Kubernetes-automatic-services-discovery)\n\n## HealthChecks and Devops\n\n- [Releases Gates for Azure DevOps Pipelines](#HealthChecks-as-Release-Gates-for-Azure-DevOps-Pipelines)\n\n## HealthChecks Tutorials\n\n- [Tutorials, Demos and walkthroughs](#tutorials-demos-and-walkthroughs-on-aspnet-core-healthchecks)\n\n## Docker images\n\nHealthChecks repo provides following images:\n\n| Image | Downloads | Latest | Issues |\n|------|--------|---|---|\n| UI | ![ui pulls](https://img.shields.io/docker/pulls/xabarilcoding/healthchecksui.svg?label=downloads) | ![ui version](https://img.shields.io/docker/v/xabarilcoding/healthchecksui?label=docker\u0026logo=dsd\u0026sort=date) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ui)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ui)\n| K8s operator | ![k8s pulls](https://img.shields.io/docker/pulls/xabarilcoding/healthchecksui-k8s-operator.svg?label=downloads) | ![k8s version](https://img.shields.io/docker/v/xabarilcoding/healthchecksui-k8s-operator?label=docker\u0026logo=dsd\u0026sort=date)\n\n## Health Checks\n\nHealthChecks packages include health checks for:\n\n| Package                    | Downloads                                                                                                                                                                     | NuGet Latest | Issues | Notes                                                                  |\n| -------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------ | ---------------------------------------------------------------------- |\n| ApplicationStatus          | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.ApplicationStatus)](https://www.nuget.org/packages/AspNetCore.HealthChecks.ApplicationStatus)               | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.ApplicationStatus)](https://www.nuget.org/packages/AspNetCore.HealthChecks.ApplicationStatus) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/applicationstatus)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/applicationstatus)\n| ArangoDB                   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.ArangoDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.ArangoDb)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.ArangoDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.ArangoDb) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/arrangodb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/arrangodb)\n| Amazon S3                  | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Aws.S3)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.S3)                                     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Aws.S3)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.S3) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/aws)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/aws)\n| Amazon Secrets Manager     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Aws.SecretsManager)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.SecretsManager)             | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Aws.SecretsManager)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.SecretsManager) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/aws)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/aws)\n| Amazon SNS                 | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Aws.Sns)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.Sns)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Aws.Sns)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.Sns) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/aws)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/aws)\n| Amazon SQS                 | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Aws.Sqs)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.Sqs)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Aws.Sqs)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.Sqs) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/aws)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/aws)\n| Amazon Systems Manager     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Aws.SystemsManager)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.SystemsManager)             | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Aws.SystemsManager)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Aws.SystemsManager) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/aws)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/aws)\n| Azure Application Insights | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.AzureApplicationInsights)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureApplicationInsights) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.AzureApplicationInsights)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureApplicationInsights) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/applicationinsights)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/applicationinsights)\n| Azure Tables               | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.Data.Tables)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Data.Tables)               | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.Data.Tables)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Data.Tables) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure)\n| Azure IoT Hub              | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.IoTHub)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.IoTHub)                         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.IoTHub)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.IoTHub) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) |\n| Azure Key Vault Secrets    | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.KeyVault.Secrets)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.KeyVault.Secrets)     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.KeyVault.Secrets)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.KeyVault.Secrets) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) |\n| Azure Event Hubs           | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.Messaging.EventHubs)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Messaging.EventHubs) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.Messaging.EventHubs)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Messaging.EventHubs) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) |\n| Azure Blob Storage         | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.Storage.Blobs)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Storage.Blobs)           | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.Storage.Blobs)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Storage.Blobs) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) |\n| Azure File Storage         | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.Storage.Files.Shares)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Storage.Files.Shares) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.Storage.Files.Shares)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Storage.Files.Shares) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) |\n| Azure Queue Storage        | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Azure.Storage.Queues)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Storage.Queues)         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Azure.Storage.Queues)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Azure.Storage.Queues) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) |\n| Azure DigitalTwin          | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.AzureDigitalTwin)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureDigitalTwin)                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.AzureDigitalTwin)](https://www.nuget.org/packages/AspNetCore.HealthChecks.AzureDigitalTwin) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/azure)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/azure) | Subscription status, models and instances                              |\n| 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)\n| 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)\n| 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                                             |\n| 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)\n| 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\n| 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)\n| Azure DocumentDb           | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.DocumentDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.DocumentDb)                             | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.DocumentDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.DocumentDb) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/documentdb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/documentdb)\n| Amazon DynamoDb            | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.DynamoDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.DynamoDb)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.DynamoDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.DynamoDb) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/dynamodb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/dynamodb)\n| Elasticsearch              | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Elasticsearch)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Elasticsearch)                       | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Elasticsearch)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Elasticsearch) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/elasticsearch)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/elasticsearch)\n| EventStore                 | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.EventStore)](https://www.nuget.org/packages/AspNetCore.HealthChecks.EventStore)                             | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.EventStore)](https://www.nuget.org/packages/AspNetCore.HealthChecks.EventStore) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/eventstore)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/eventstore) | [TCP EventStore](https://github.com/EventStore/EventStoreDB-Client-Dotnet-Legacy)\n| EventStore gRPC            | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.EventStore.gRPC)](https://www.nuget.org/packages/AspNetCore.HealthChecks.EventStore.gRPC)                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.EventStore.gRPC)](https://www.nuget.org/packages/AspNetCore.HealthChecks.EventStore.gRPC) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/eventstore)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/eventstore) | [gRPC EventStore](https://github.com/EventStore/EventStore-Client-Dotnet)\n| Google Cloud Firestore     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Gcp.CloudFirestore)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Gcp.CloudFirestore)             | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Gcp.CloudFirestore)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Gcp.CloudFirestore) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/cloudfirestore)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/cloudfirestore)\n| Gremlin                    | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Gremlin)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Gremlin)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Gremlin)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Gremlin) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/gremlin)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/gremlin)\n| Hangfire                   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Hangfire)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Hangfire)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Hangfire)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Hangfire) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/hangfire)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/hangfire)\n| IbmMQ                      | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.IbmMQ)](https://www.nuget.org/packages/AspNetCore.HealthChecks.IbmMQ)                                       | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.IbmMQ)](https://www.nuget.org/packages/AspNetCore.HealthChecks.IbmMQ) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ibmmq)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ibmmq)\n| InfluxDB                   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.InfluxDB)](https://www.nuget.org/packages/AspNetCore.HealthChecks.InfluxDB)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.InfluxDB)](https://www.nuget.org/packages/AspNetCore.HealthChecks.InfluxDB) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/influxdb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/influxdb)\n| Kafka                      | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Kafka)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Kafka)                                       | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Kafka)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Kafka) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/kafka)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/kafka)\n| Kubernetes                 | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Kubernetes)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Kubernetes)                             | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Kubernetes)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Kubernetes) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/kubernetes)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/kubernetes)\n| MongoDB                    | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.MongoDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.MongoDb)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.MongoDb)](https://www.nuget.org/packages/AspNetCore.HealthChecks.MongoDb) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/mongodb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/mongodb)\n| MySql                      | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.MySql)](https://www.nuget.org/packages/AspNetCore.HealthChecks.MySql)                                       | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.MySql)](https://www.nuget.org/packages/AspNetCore.HealthChecks.MySql) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/mysql)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/mysql)\n| Nats                       | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Nats)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Nats)                                         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Nats)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Nats) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/nats)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/nats) | NATS, messaging, message-bus, pubsub                                   |\n| Network                    | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Network)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Network)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Network)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Network) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/network)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/network) | Ftp, SFtp, Dns, Tcp port, Smtp, Imap, Ssl                              |\n| Postgres                   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.NpgSql)](https://www.nuget.org/packages/AspNetCore.HealthChecks.NpgSql)                                     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.NpgSql)](https://www.nuget.org/packages/AspNetCore.HealthChecks.NpgSql) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/npgsql)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/npgsql)\n| Identity Server            | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.OpenIdConnectServer)](https://www.nuget.org/packages/AspNetCore.HealthChecks.OpenIdConnectServer)           | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.OpenIdConnectServer)](https://www.nuget.org/packages/AspNetCore.HealthChecks.OpenIdConnectServer) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/openidconnect)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/openidconnect)\n| Oracle                     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Oracle)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Oracle)                                     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Oracle)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Oracle) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/oracle)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/oracle)\n| RabbitMQ                   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.RabbitMQ)](https://www.nuget.org/packages/AspNetCore.HealthChecks.RabbitMQ)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.RabbitMQ)](https://www.nuget.org/packages/AspNetCore.HealthChecks.RabbitMQ) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/rabbitmq)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/rabbitmq)\n| RavenDB                    | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.RavenDB)](https://www.nuget.org/packages/AspNetCore.HealthChecks.RavenDB)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.RavenDB)](https://www.nuget.org/packages/AspNetCore.HealthChecks.RavenDB) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ravendb)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ravendb)\n| Redis                      | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Redis)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Redis)                                       | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Redis)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Redis) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/redis)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/redis)\n| SendGrid                   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.SendGrid)](https://www.nuget.org/packages/AspNetCore.HealthChecks.SendGrid)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.SendGrid)](https://www.nuget.org/packages/AspNetCore.HealthChecks.SendGrid) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/sendgrid)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/sendgrid)\n| SignalR                    | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.SignalR)](https://www.nuget.org/packages/AspNetCore.HealthChecks.SignalR)                                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.SignalR)](https://www.nuget.org/packages/AspNetCore.HealthChecks.SignalR) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/signalr)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/signalr)\n| Solr                       | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Solr)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Solr)                                         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Solr)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Solr) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/solr)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/solr)\n| Sqlite                     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Sqlite)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Sqlite)                                     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Sqlite)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Sqlite) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/sqlite)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/sqlite)\n| Sql Server                 | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.SqlServer)](https://www.nuget.org/packages/AspNetCore.HealthChecks.SqlServer)                               | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.SqlServer)](https://www.nuget.org/packages/AspNetCore.HealthChecks.SqlServer) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/sqlserver)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/sqlserver)\n| System                     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.System)](https://www.nuget.org/packages/AspNetCore.HealthChecks.System)                                     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.System)](https://www.nuget.org/packages/AspNetCore.HealthChecks.System) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/system)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/system) | Disk Storage, Folder, File, Private Memory, Virtual Memory, Process, Windows Service |\n| Uris                       | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Uris)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Uris)                                         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Uris)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Uris) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/uris)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/uris) | Single uri and uri groups                                              |\n\n\u003e We support netcoreapp 2.2, 3.0 and 3.1. Please use package versions 2.2.X, 3.0.X and 3.1.X to target different versions.\n\n```PowerShell\nInstall-Package AspNetCore.HealthChecks.ApplicationStatus\nInstall-Package AspNetCore.HealthChecks.ArangoDb\nInstall-Package AspNetCore.HealthChecks.Aws.S3\nInstall-Package AspNetCore.HealthChecks.Aws.SecretsManager\nInstall-Package AspNetCore.HealthChecks.Aws.Sns\nInstall-Package AspNetCore.HealthChecks.Aws.Sqs\nInstall-Package AspNetCore.HealthChecks.Aws.SystemsManager\nInstall-Package AspNetCore.HealthChecks.Azure.Data.Tables\nInstall-Package AspNetCore.HealthChecks.Azure.IoTHub\nInstall-Package AspNetCore.HealthChecks.Azure.KeyVault.Secrets\nInstall-Package AspNetCore.HealthChecks.Azure.Messaging.EventHubs\nInstall-Package AspNetCore.HealthChecks.Azure.Storage.Blobs\nInstall-Package AspNetCore.HealthChecks.Azure.Storage.Files.Shares\nInstall-Package AspNetCore.HealthChecks.Azure.Storage.Queues\nInstall-Package AspNetCore.HealthChecks.AzureApplicationInsights\nInstall-Package AspNetCore.HealthChecks.AzureDigitalTwin\nInstall-Package AspNetCore.HealthChecks.AzureKeyVault\nInstall-Package AspNetCore.HealthChecks.AzureSearch\nInstall-Package AspNetCore.HealthChecks.AzureServiceBus\nInstall-Package AspNetCore.HealthChecks.AzureStorage\nInstall-Package AspNetCore.HealthChecks.Consul\nInstall-Package AspNetCore.HealthChecks.CosmosDb\nInstall-Package AspNetCore.HealthChecks.Dapr\nInstall-Package AspNetCore.HealthChecks.DocumentDb\nInstall-Package AspNetCore.HealthChecks.DynamoDB\nInstall-Package AspNetCore.HealthChecks.Elasticsearch\nInstall-Package AspNetCore.HealthChecks.EventStore\nInstall-Package AspNetCore.HealthChecks.EventStore.gRPC\nInstall-Package AspNetCore.HealthChecks.Gcp.CloudFirestore\nInstall-Package AspNetCore.HealthChecks.Gremlin\nInstall-Package AspNetCore.HealthChecks.Hangfire\nInstall-Package AspNetCore.HealthChecks.IbmMQ\nInstall-Package AspNetCore.HealthChecks.InfluxDB\nInstall-Package AspNetCore.HealthChecks.Kafka\nInstall-Package AspNetCore.HealthChecks.Kubernetes\nInstall-Package AspNetCore.HealthChecks.MongoDb\nInstall-Package AspNetCore.HealthChecks.MySql\nInstall-Package AspNetCore.HealthChecks.Nats\nInstall-Package AspNetCore.HealthChecks.Network\nInstall-Package AspNetCore.HealthChecks.Npgsql\nInstall-Package AspNetCore.HealthChecks.OpenIdConnectServer\nInstall-Package AspNetCore.HealthChecks.Oracle\nInstall-Package AspNetCore.HealthChecks.RabbitMQ\nInstall-Package AspNetCore.HealthChecks.RavenDB\nInstall-Package AspNetCore.HealthChecks.Redis\nInstall-Package AspNetCore.HealthChecks.SendGrid\nInstall-Package AspNetCore.HealthChecks.SignalR\nInstall-Package AspNetCore.HealthChecks.Solr\nInstall-Package AspNetCore.HealthChecks.SqLite\nInstall-Package AspNetCore.HealthChecks.SqlServer\nInstall-Package AspNetCore.HealthChecks.System\nInstall-Package AspNetCore.HealthChecks.Uris\n```\n\nOnce the package is installed you can add the HealthCheck using the **AddXXX** `IServiceCollection` extension methods.\n\n\u003e We use [MyGet](https://www.myget.org/F/xabaril/api/v3/index.json) feed for preview versions of HealthChecks packages.\n\n```csharp\npublic void ConfigureServices(IServiceCollection services)\n{\n    services.AddHealthChecks()\n        .AddSqlServer(Configuration[\"Data:ConnectionStrings:Sql\"])\n        .AddRedis(Configuration[\"Data:ConnectionStrings:Redis\"]);\n}\n```\n\nEach HealthCheck registration supports also name, tags, failure status and other optional parameters.\n\n```csharp\npublic void ConfigureServices(IServiceCollection services)\n{\n    services\n        .AddHealthChecks()\n        .AddSqlServer(\n            connectionString: Configuration[\"Data:ConnectionStrings:Sql\"],\n            healthQuery: \"SELECT 1;\",\n            name: \"sql\",\n            failureStatus: HealthStatus.Degraded,\n            tags: new string[] { \"db\", \"sql\", \"sqlserver\" });\n}\n```\n\n## HealthCheck push results\n\nHealthChecks include a _push model_ to send HealthCheckReport results into configured consumers.\nThe project **AspNetCore.HealthChecks.Publisher.ApplicationInsights**, **AspNetCore.HealthChecks.Publisher.Datadog**,\n**AspNetCore.HealthChecks.Publisher.Prometheus**, **AspNetCore.HealthChecks.Publisher.Seq** or\n**AspNetCore.HealthChecks.Publisher.CloudWatch** define a consumers to send report results to\nApplication Insights, Datadog, Prometheus, Seq or CloudWatch.\n\n| Package              | Downloads                                                                                                                                                                               | NuGet Latest | Issues | Notes |\n| -------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------ | ----- |\n| Application Insights | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Publisher.ApplicationInsights)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.ApplicationInsights) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Publisher.ApplicationInsights)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.ApplicationInsights) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/applicationinsights)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/applicationinsights)\n| CloudWatch           | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Publisher.CloudWatch)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.CloudWatch)                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Publisher.CloudWatch)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.CloudWatch) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/cloudwatch)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/cloudwatch)\n| Datadog              | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Publisher.Datadog)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.Datadog)                         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Publisher.Datadog)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.Datadog) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/datadog)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/datadog)\n| Prometheus Gateway   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Publisher.Prometheus)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.Prometheus)                   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Publisher.Prometheus)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.Prometheus) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/prometheus)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/prometheus) | **DEPRECATED** |\n| Seq                  | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.Publisher.Seq)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.Seq)                                 | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.Publisher.Seq)](https://www.nuget.org/packages/AspNetCore.HealthChecks.Publisher.Seq) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/seq)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/seq)\n\nInclude the package in your project:\n\n```powershell\ninstall-package AspNetcore.HealthChecks.Publisher.ApplicationInsights\ninstall-package AspNetcore.HealthChecks.Publisher.CloudWatch\ninstall-package AspNetcore.HealthChecks.Publisher.Datadog\ninstall-package AspNetcore.HealthChecks.Publisher.Prometheus\ninstall-package AspNetcore.HealthChecks.Publisher.Seq\n```\n\nAdd publisher[s] into the `IHealthCheckBuilder`:\n\n```csharp\nservices\n    .AddHealthChecks()\n    .AddSqlServer(connectionString: Configuration[\"Data:ConnectionStrings:Sample\"])\n    .AddCheck\u003cRandomHealthCheck\u003e(\"random\")\n    .AddApplicationInsightsPublisher()\n    .AddCloudWatchPublisher()\n    .AddDatadogPublisher(\"myservice.healthchecks\")\n    .AddPrometheusGatewayPublisher();\n```\n\n## HealthChecks Prometheus Exporter\n\nIf you need an endpoint to consume from prometheus instead of using Prometheus Gateway you could install **AspNetCore.HealthChecks.Prometheus.Metrics**.\n\n```powershell\ninstall-package AspNetCore.HealthChecks.Prometheus.Metrics\n```\n\nUse the `ApplicationBuilder` extension method to add the endpoint with the metrics:\n\n```csharp\n// default endpoint: /healthmetrics\napp.UseHealthChecksPrometheusExporter();\n\n// You could customize the endpoint\napp.UseHealthChecksPrometheusExporter(\"/my-health-metrics\");\n\n// Customize HTTP status code returned(prometheus will not read health metrics when a default HTTP 503 is returned)\napp.UseHealthChecksPrometheusExporter(\"/my-health-metrics\", options =\u003e options.ResultStatusCodes[HealthStatus.Unhealthy] = (int)HttpStatusCode.OK);\n```\n\n## HealthCheckUI\n\n![HealthChecksUI](./doc/images/ui-home.png)\n\n[UI Changelog](./doc/ui-changelog.md)\n\nThe project HealthChecks.UI is a minimal UI interface that stores and shows the health checks results from the configured HealthChecks URIs.\n\nFor UI, we provide the following packages:\n\n| Package   | Downloads                                                                                                                                       | NuGet Latest | Issues | Notes |\n| --------- | ----------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------ | ------|\n| UI        | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI)               | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ui)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ui) | ASP.NET Core UI viewer of ASP.NET Core HealthChecks |\n| UI.Client | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.Client)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.Client) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.Client)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.Client) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ui)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ui) | Mandatory abstractions to work with HealthChecks.UI |\n| UI.Core   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.Core)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.Core)     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.Core)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.Core) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ui)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ui) | |\n| UI.Data   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.Data)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.Data)     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.Data)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.Data) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/ui)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/ui) | Data models and database context definition |\n\nTo integrate HealthChecks.UI in your project you just need to add the HealthChecks.UI services and middlewares available in the package: **AspNetCore.HealthChecks.UI**\n\n```csharp\nusing HealthChecks.UI.Core;\nusing HealthChecks.UI.InMemory.Storage;\n\npublic class Startup\n{\n    public void ConfigureServices(IServiceCollection services)\n    {\n        services\n            .AddHealthChecksUI()\n            .AddInMemoryStorage();\n    }\n\n    public void Configure(IApplicationBuilder app, IHostingEnvironment env)\n    {\n        app\n            .UseRouting()\n            .UseEndpoints(config =\u003e config.MapHealthChecksUI());\n    }\n}\n```\n\nThis automatically registers a new interface on **/healthchecks-ui** where the SPA will be served.\n\n\u003e Optionally, `MapHealthChecksUI` can be configured to serve its health API, webhooks API and the front-end resources in\n\u003e different endpoints using the `MapHealthChecksUI(setup =\u003e { })` method overload. The default configured URLs for these endpoints\n\u003e can be found [here](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/master/src/HealthChecks.UI/Configuration/Options.cs)\n\n**Important note:** It is important to understand that the API endpoint that the UI serves is used by the frontend SPA to receive the result\nof all processed checks. The health reports are collected by a background hosted service and the API endpoint served at /healthchecks-api by\ndefault is the URL that the SPA queries.\n\nDo not confuse this UI API endpoint with the endpoints we have to configure to declare the target APIs to be checked on the UI project in\nthe [appsettings HealthChecks configuration section](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/master/samples/HealthChecks.UI.Sample/appsettings.json)\n\nWhen we target applications to be tested and shown on the UI interface, those endpoints have to register the `UIResponseWriter` that is present\non the **AspNetCore.HealthChecks.UI.Client** as their [ResponseWriter in the HealthChecksOptions](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/blob/master/samples/HealthChecks.Sample/Startup.cs#L48) when configuring MapHealthChecks method.\n\n### UI Polling interval\n\nYou can configure the polling interval in seconds for the UI inside the setup method. Default value is 10 seconds:\n\n```csharp\n.AddHealthChecksUI(setupSettings: setup =\u003e\n{\n    setup.SetEvaluationTimeInSeconds(5); // Configures the UI to poll for healthchecks updates every 5 seconds\n});\n```\n\n### UI API max active requests\n\nYou can configure max active requests to the HealthChecks UI backend api using the setup method. Default value is 3 active requests:\n\n```csharp\n.AddHealthChecksUI(setupSettings: setup =\u003e\n{\n    setup.SetApiMaxActiveRequests(1);\n    //Only one active request will be executed at a time.\n    //All the excedent requests will result in 429 (Too many requests)\n});\n```\n\n### UI Storage Providers\n\nHealthChecks UI offers several storage providers, available as different nuget packages.\n\nThe current supported databases are:\n\n| Package    | Downloads                                                                                                                                                               | NuGet Latest | Issues | Notes |\n| ---------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------ | ----- |\n| InMemory   | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.InMemory.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.InMemory.Storage)     | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.InMemory.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.InMemory.Storage) |\n| SqlServer  | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.SqlServer.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.SqlServer.Storage)   | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.SqlServer.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.SqlServer.Storage) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/sqlserver)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/sqlserver)\n| SQLite     | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.SQLite.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.SQLite.Storage)         | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.SQLite.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.SQLite.Storage) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/sqlite)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/sqlite)\n| PostgreSQL | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.PostgreSQL.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.PostgreSQL.Storage) | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.PostgreSQL.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.PostgreSQL.Storage) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/npgsql)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/npgsql)\n| MySql      | [![Nuget](https://img.shields.io/nuget/dt/AspNetCore.HealthChecks.UI.MySql.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.MySql.Storage)           | [![Nuget](https://img.shields.io/nuget/v/AspNetCore.HealthChecks.UI.MySql.Storage)](https://www.nuget.org/packages/AspNetCore.HealthChecks.UI.MySql.Storage) | [![view](https://img.shields.io/github/issues/Xabaril/AspNetCore.Diagnostics.HealthChecks/mysql)](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/mysql)\n\nAll the storage providers are extensions of `HealthChecksUIBuilder`:\n\n**InMemory**\n\n```csharp\nservices\n    .AddHealthChecksUI()\n    .AddInMemoryStorage();\n```\n\n**Sql Server**\n\n```csharp\nservices\n    .AddHealthChecksUI()\n    .AddSqlServerStorage(\"connectionString\");\n```\n\n**Postgre SQL**\n\n```csharp\nservices\n    .AddHealthChecksUI()\n    .AddPostgreSqlStorage(\"connectionString\");\n```\n\n**MySql**\n\n```csharp\nservices\n    .AddHealthChecksUI()\n    .AddMySqlStorage(\"connectionString\");\n```\n\n**Sqlite**\n\n```csharp\nservices\n    .AddHealthChecksUI()\n    .AddSqliteStorage($\"Data Source=sqlite.db\");\n```\n\n### UI Database Migrations\n\n**Database Migrations** are enabled by default, if you need to disable migrations you can use the `AddHealthChecksUI` setup:\n\n```csharp\nservices\n    .AddHealthChecksUI(setup =\u003e setup.DisableDatabaseMigrations())\n    .AddInMemoryStorage();\n```\n\nOr you can use `IConfiguration` providers, like json file or environment variables:\n\n```json\n\"HealthChecksUI\": {\n  \"DisableMigrations\": true\n}\n```\n\n### Health status history timeline\n\nBy clicking details button in the healthcheck row, you can preview the health status history timeline:\n\n![Timeline](./doc/images/timeline.png)\n\n**Note**: HealthChecks UI saves an execution history entry in the database whenever a HealthCheck status changes from Healthy to Unhealthy and viceversa.\n\nThis information is displayed in the status history timeline, but we do not perform purge or cleanup tasks in users' databases.\nIn order to limit the maximum history entries that are sent by the UI API middleware to the frontend, you can do a database cleanup or set the maximum history entries served by endpoint using:\n\n```csharp\nservices.AddHealthChecksUI(setup =\u003e\n{\n    // Set the maximum history entries by endpoint that will be served by the UI api middleware\n    setup.MaximumHistoryEntriesPerEndpoint(50);\n});\n```\n\n**HealthChecksUI** is also available as a _docker image_ You can read more about [HealthChecks UI Docker image](./doc/ui-docker.md).\n\n### Configuration\n\nBy default, HealthChecks return a simple Status Code (200 or 503) without the HealthReport data. If you want the\nHealthCheck-UI to show the HealthReport data from your HealthCheck, you can enable it by adding a specific `ResponseWriter`.\n\n```csharp\napp\n    .UseRouting()\n    .UseEndpoints(config =\u003e\n    {\n        config.MapHealthChecks(\"/healthz\", new HealthCheckOptions\n        {\n            Predicate = _ =\u003e true,\n            ResponseWriter = UIResponseWriter.WriteHealthCheckUIResponse\n        });\n    });\n```\n\n\u003e _WriteHealthCheckUIResponse_ is defined on HealthChecks.UI.Client nuget package.\n\nTo show these HealthChecks in HealthCheck-UI, they have to be configured through the **HealthCheck-UI** settings.\n\nYou can configure these Healthchecks and webhooks by using `IConfiguration` providers (appsettings, user secrets, env variables) or the `AddHealthChecksUI(setupSettings: setup =\u003e { })` method can be used too.\n\n#### Sample 2: Configuration using appsettings.json\n\n```json\n{\n  \"HealthChecksUI\": {\n    \"HealthChecks\": [\n      {\n        \"Name\": \"HTTP-Api-Basic\",\n        \"Uri\": \"http://localhost:6457/healthz\"\n      }\n    ],\n    \"Webhooks\": [\n      {\n        \"Name\": \"\",\n        \"Uri\": \"\",\n        \"Payload\": \"\",\n        \"RestoredPayload\": \"\"\n      }\n    ],\n    \"EvaluationTimeInSeconds\": 10,\n    \"MinimumSecondsBetweenFailureNotifications\": 60\n  }\n}\n```\n\n#### Sample 2: Configuration using setupSettings method:\n\n```csharp\nservices\n    .AddHealthChecksUI(setupSettings: setup =\u003e\n    {\n       setup.AddHealthCheckEndpoint(\"endpoint1\", \"http://localhost:8001/healthz\");\n       setup.AddHealthCheckEndpoint(\"endpoint2\", \"http://remoteendpoint:9000/healthz\");\n       setup.AddWebhookNotification(\"webhook1\", uri: \"http://httpbin.org/status/200?code=ax3rt56s\", payload: \"{...}\");\n    })\n    .AddSqlServer(\"connectionString\");\n```\n\n**Note**: The previous configuration section was HealthChecks-UI, but due to incompatibilies with Azure Web App environment variables, the section has been moved to HealthChecksUI. The UI is retro compatible and it will check the new section first, and fallback to the old section if the new section has not been declared.\n\n    1.- HealthChecks: The collection of health checks uris to evaluate.\n    2.- EvaluationTimeInSeconds: Number of elapsed seconds between health checks.\n    3.- Webhooks: If any health check returns a *Failure* result, this collections will be used to notify the error status. (Payload is the json payload and must be escaped. For more information see the notifications documentation section)\n    4.- MinimumSecondsBetweenFailureNotifications: The minimum seconds between failure notifications to avoid receiver flooding.\n\n```json\n{\n  \"HealthChecksUI\": {\n    \"HealthChecks\": [\n      {\n        \"Name\": \"HTTP-Api-Basic\",\n        \"Uri\": \"http://localhost:6457/healthz\"\n      }\n    ],\n    \"Webhooks\": [\n      {\n        \"Name\": \"\",\n        \"Uri\": \"\",\n        \"Payload\": \"\",\n        \"RestoredPayload\": \"\"\n      }\n    ],\n    \"EvaluationTimeInSeconds\": 10,\n    \"MinimumSecondsBetweenFailureNotifications\": 60\n  }\n}\n```\n\n### Using relative URLs in Health Checks and Webhooks configurations (UI 3.0.5 onwards)\n\nIf you are configuring the UI in the same process where the HealthChecks and Webhooks are listening, from version 3.0.5 onwards the UI can use relative URLs,\nand it will automatically discover the listening endpoints by using server `IServerAddressesFeature`.\n\nSample:\n\n```csharp\n//Configuration sample with relative URL health checks and webhooks\nservices\n    .AddHealthChecksUI(setupSettings: setup =\u003e\n    {\n       setup.AddHealthCheckEndpoint(\"endpoint1\", \"/health-databases\");\n       setup.AddHealthCheckEndpoint(\"endpoint2\", \"health-messagebrokers\");\n       setup.AddWebhookNotification(\"webhook1\", uri: \"/notify\", payload: \"{...}\");\n    })\n    .AddSqlServer(\"connectionString\");\n```\n\nYou can also use relative URLs when using `IConfiguration` providers like appsettings.json.\n\n### Webhooks and Failure Notifications\n\nIf the **WebHooks** section is configured, HealthCheck-UI automatically posts a new notification into the webhook collection. HealthCheckUI uses a simple replace method for values in the webhook's **Payload** and **RestorePayload** properties. At this moment we support two bookmarks:\n\n[[LIVENESS]] The name of the liveness that returns _Down_.\n\n[[FAILURE]] A detail message with the failure.\n\n[[DESCRIPTIONS]] Failure descriptions\n\nWebhooks can be configured with configuration providers and also by code. Using code allows greater customization as you can setup you own user functions to customize output messages or configuring if a payload should be sent to a given webhook endpoint.\n\nThe [web hooks section](./doc/webhooks.md) contains more information and webhooks samples for Microsoft Teams, Azure Functions, Slack and more.\n\n**Avoid Fail notification spam**\n\nTo prevent you from receiving several failure notifications from your application, a configuration was created to meet this scenario.\n\n```csharp\nservices.AddHealthChecksUI(setup =\u003e\n{\n    setup.SetNotifyUnHealthyOneTimeUntilChange(); // You will only receive one failure notification until the status changes.\n});\n```\n\n## UI Style and branding customization\n\n### Sample of dotnet styled UI\n\n![HealthChecksUIBranding](./doc/images/ui-branding.png)\n\nSince version 2.2.34, UI supports custom styles and branding by using a **custom style sheet** and **css variables**.\nTo add your custom styles sheet, use the UI setup method:\n\n```csharp\napp\n    .UseRouting()\n    .UseEndpoints(config =\u003e\n    {\n        config.MapHealthChecksUI(setup =\u003e\n        {\n            setup.AddCustomStylesheet(\"dotnet.css\");\n        });\n    });\n```\n\nYou can visit the section [custom styles and branding](./doc/styles-branding.md) to find source samples and get further information about custom css properties.\n\n## UI Configure HttpClient and HttpMessageHandler for Api and Webhooks endpoints\n\nIf you need to configure a proxy, or set an authentication header, the UI allows you to configure the `HttpMessageHandler` and the `HttpClient` for the webhooks and healtheck api endpoints. You can also register custom delegating handlers for the API and WebHooks HTTP clients.\n\n```csharp\nservices.AddHealthChecksUI(setupSettings: setup =\u003e\n{\n    setup.ConfigureApiEndpointHttpclient((sp, client) =\u003e\n    {\n        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(\"Bearer\", \"supertoken\");\n    })\n    .UseApiEndpointHttpMessageHandler(sp =\u003e\n    {\n        return new HttpClientHandler\n        {\n            Proxy = new WebProxy(\"http://proxy:8080\")\n        };\n    })\n    .UseApiEndpointDelegatingHandler\u003cCustomDelegatingHandler\u003e()\n    .ConfigureWebhooksEndpointHttpclient((sp, client) =\u003e\n    {\n        client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(\"Bearer\", \"sampletoken\");\n    })\n    .UseWebhookEndpointHttpMessageHandler(sp =\u003e\n    {\n        return new HttpClientHandler()\n        {\n            Properties =\n            {\n                [\"prop\"] = \"value\"\n            }\n        };\n    })\n    .UseWebHooksEndpointDelegatingHandler\u003cCustomDelegatingHandler2\u003e();\n})\n.AddInMemoryStorage();\n```\n\n## UI Kubernetes Operator\n\nIf you are running your workloads in kubernetes, you can benefit from it and have your healthchecks environment ready and monitoring in seconds.\n\nYou can get for information in our [HealthChecks Operator docs](./doc/k8s-operator.md)\n\n## UI Kubernetes automatic services discovery\n\n\u003c!-- ![k8s-discovery](./doc/images/k8s-discovery-service.png) --\u003e\n\nHealthChecks UI supports automatic discovery of k8s services exposing pods that have health checks endpoints. This means, you can benefit from it and avoid registering all the endpoints you want to check and let the UI discover them using the k8s api.\n\nYou can get more information [here](./doc/k8s-ui-discovery.md)\n\n## HealthChecks as Release Gates for Azure DevOps Pipelines\n\nHealthChecks can be used as [Release Gates for Azure DevOps](https://docs.microsoft.com/en-us/azure/devops/pipelines/release/approvals/gates?view=azure-devops) using this [Visual Studio Market place Extension](https://marketplace.visualstudio.com/items?itemName=luisfraile.vss-services-aspnetcorehealthcheck-extensions).\n\nCheck this [README](./extensions/README.md) on how to configure it.\n\n## Protected HealthChecks.UI with OpendId Connect\n\nThere are some scenarios where you can find useful to restrict access for users on HealthChecks UI, maybe for users who belong to some role, based on some claim value etc.\n\nWe can leverage the ASP.NET Core Authentication/Authorization features to easily implement it. You can see a fully functional example using IdentityServer4 [here](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/tree/master/samples/HealthChecks.UI.Oidc) but you can use Azure AD, Auth0, Okta, etc.\n\nCheck this [README](./extensions/README.md) on how to configure it.\n\n## Tutorials, demos and walkthroughs on ASP.NET Core HealthChecks\n\n- [ASP.NET Core HealthChecks and Kubernetes Liveness / Readiness by Carlos Landeras](./doc/kubernetes-liveness.md)\n- [ASP.NET Core HealthChecks, BeatPulse UI, Webhooks and Kubernetes Liveness / Readiness probes demos at SDN.nl live WebCast by Carlos Landeras](https://www.youtube.com/watch?v=kzRKGCmGbqo)\n- [ASP.NET Core HealthChecks features video by @condrong](https://t.co/YriQ6cLWVm)\n- [How to set up ASP.NET Core 2.2 Health Checks with BeatPulse's AspNetCore.Diagnostics.HealthChecks by Scott Hanselman](https://www.hanselman.com/blog/HowToSetUpASPNETCore22HealthChecksWithBeatPulsesAspNetCoreDiagnosticsHealthChecks.aspx)\n- [ASP.NET Core HealthChecks announcement](https://t.co/47M9FBfpWF)\n- [ASP.NET Core 2.2 HealthChecks Explained by Thomas Ardal](https://blog.elmah.io/asp-net-core-2-2-health-checks-explained/)\n- [Health Monitoring on ASP.NET Core 2.2 / eShopOnContainers](https://docs.microsoft.com/en-us/dotnet/standard/microservices-architecture/implement-resilient-applications/monitor-app-health)\n\n## Contributing\n\nAspNetCore.Diagnostics.HealthChecks wouldn't be possible without the time and effort of its contributors.\nThe team is made up of Unai Zorrilla Castro [@unaizorrilla](https://github.com/unaizorrilla),\nLuis Ruiz Pavón [@lurumad](https://github.com/lurumad), Carlos Landeras [@carloslanderas](https://github.com/carloslanderas),\nEduard Tomás [@eiximenis](https://github.com/eiximenis), Eva Crespo [@evacrespob](https://github.com/evacrespob) and\nIvan Maximov [@sungam3r](https://github.com/sungam3r).\n\nThanks to all the people who already contributed!\n\n\u003ca href=\"https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/graphs/contributors\"\u003e\n  \u003cimg src=\"https://contributors-img.web.app/image?repo=Xabaril/AspNetCore.Diagnostics.HealthChecks\" /\u003e\n\u003c/a\u003e\n\nIf you want to contribute to the project and make it better, your help is very welcome.\nYou can contribute with helpful bug reports, features requests, submitting new features with pull requests and also\nanswering [questions](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/question).\n\n1. Read and follow the [Don't push your pull requests](https://www.igvita.com/2011/12/19/dont-push-your-pull-requests/)\n2. Follow the code guidelines and conventions.\n3. New features are not only code, tests and documentation are also mandatory.\n4. PRs with [`Ups for grabs`](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/Ups%20for%20grabs)\nand [help wanted](https://github.com/Xabaril/AspNetCore.Diagnostics.HealthChecks/labels/help%20wanted) tags are good candidates to contribute. \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxabaril%2FAspNetCore.Diagnostics.HealthChecks","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fxabaril%2FAspNetCore.Diagnostics.HealthChecks","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fxabaril%2FAspNetCore.Diagnostics.HealthChecks/lists"}