Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Advanced HealthChecks for ASP.NET Core Applications

License

NotificationsYou must be signed in to change notification settings

a-patel/LiteXHealthChecks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

71 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LiteXHealthChecks is very small yet powerful and high-performance library used to check the status of a component in the application, such as a backend service, database or some internal state.

Health checks for 📚

Features 📟

  • Easy to use
  • Very light weight
  • Latest SDKs
  • .NETStandard 2.0

Basic Usage 📄

Step 1 : Install the package 📦

Choose one kinds of sms provider type that you needs and install it viaNuget.To install LiteXHealthChecks, run the following command in thePackage Manager Console

PM>Install-Package LiteX.HealthChecks.AmazonS3PM>Install-Package LiteX.HealthChecks.AzureKeyVaultPM>Install-Package LiteX.HealthChecks.AzureServiceBusPM>Install-Package LiteX.HealthChecks.AzureStorage.BlobPM>Install-Package LiteX.HealthChecks.AzureStorage.FilePM>Install-Package LiteX.HealthChecks.AzureStorage.QueuePM>Install-Package LiteX.HealthChecks.CosmosDBPM>Install-Package LiteX.HealthChecks.MongoDBPM>Install-Package LiteX.HealthChecks.MySqlPM>Install-Package LiteX.HealthChecks.MariaDBPM>Install-Package LiteX.HealthChecks.PostgreSqlPM>Install-Package LiteX.HealthChecks.DynamoDBPM>Install-Package LiteX.HealthChecks.RedisPM>Install-Package LiteX.HealthChecks.SqlServer

Step 2 : Configuration 🔨

Different types of services have their own way to config.Here are samples that show you how to config.

2.1 : AppSettings
{"Data":{"ConnectionStrings":{"AzureKeyVault":"--REPLACE WITH YOUR CONNECTION STRING--","AzureServiceBus":"--REPLACE WITH YOUR CONNECTION STRING--","AzureBlobStorage":"--REPLACE WITH YOUR CONNECTION STRING--","AzureFileStorage":"--REPLACE WITH YOUR CONNECTION STRING--","AzureQueueStorage":"--REPLACE WITH YOUR CONNECTION STRING--","CosmosDB":"--REPLACE WITH YOUR CONNECTION STRING--","MongoDB":"--REPLACE WITH YOUR CONNECTION STRING--","MySql":"--REPLACE WITH YOUR CONNECTION STRING--","MariaDB":"--REPLACE WITH YOUR CONNECTION STRING--","PostgreSql":"--REPLACE WITH YOUR CONNECTION STRING--","DynamoDB":"--REPLACE WITH YOUR CONNECTION STRING--","Redis":"--REPLACE WITH YOUR CONNECTION STRING--","SqlServer":"--REPLACE WITH YOUR CONNECTION STRING--"}},"AmazonS3":{"AccessKey":"--REPLACE WITH YOUR AccessKey--","SecretKey":"--REPLACE WITH YOUR SecretKey--","BucketName":"--REPLACE WITH YOUR BucketName--"},"DynamoDB":{"AccessKey":"--REPLACE WITH YOUR AccessKey--","SecretKey":"--REPLACE WITH YOUR SecretKey--",//"RegionEndpoint": "--REPLACE WITH YOUR RegionEndpoint--" // USE 'Amazon.RegionEndpoint.CNNorth1' in configuration code}}
2.2 : Configure Startup Class
publicclassStartup{publicIConfigurationConfiguration{get;}publicStartup(IConfigurationconfiguration){Configuration=configuration;}publicvoidConfigureServices(IServiceCollectionservices){        #region Amazon S3// 1: Use default configurationservices.AddHealthChecks().AddAmazonS3(options=>{options.AccessKey=Configuration["AmazonS3:AccessKey"];options.SecretKey=Configuration["AmazonS3:SecretKey"];options.BucketName=Configuration["AmazonS3:BucketName"];},name:"amazon-s3");// OR// 2: With all optional configurationservices.AddHealthChecks().AddAmazonS3(options=>{options.AccessKey=Configuration["AmazonS3:AccessKey"];options.SecretKey=Configuration["AmazonS3:SecretKey"];options.BucketName=Configuration["AmazonS3:BucketName"];},name:"amazon-s3",failureStatus:HealthStatus.Degraded,tags:newstring[]{"amazon-s3","aws-s3","s3","amazon-s3"});        #endregion        #region Azure KeyVault// 1: Use default configurationservices.AddHealthChecks().AddAzureKeyVault(options=>{options.UseKeyVaultUrl(Configuration["AzureKeyVault:KeyVaultUrl"]).AddSecret("my-secret").UseClientSecrets(Configuration["AzureKeyVault:ClientId"],Configuration["AzureKeyVault:ClientSecret"]);},name:"azure-keyvault");// OR// 2: With all optional configurationservices.AddHealthChecks().AddAzureKeyVault(options=>{options.UseKeyVaultUrl(Configuration["AzureKeyVault:KeyVaultUrl"]).UseClientSecrets("client","secret");},name:"azure-keyvault",failureStatus:HealthStatus.Degraded,tags:newstring[]{"azure","keyvault","key-vault","azure-keyvault"});        #endregion        #region Azure ServiceBus// 1: Use default configurationservices.AddHealthChecks().AddAzureServiceBusQueue(Configuration["Data:ConnectionStrings:AzureServiceBus"],"queue1");// OR// 2: With all optional configurationservices.AddHealthChecks().AddAzureServiceBusQueue(connectionString:Configuration["Data:ConnectionStrings:AzureServiceBus"],queueName:"queue1",name:"azure-servicebus-queue",failureStatus:HealthStatus.Degraded,tags:newstring[]{"azure","servicebus","queue","azure-servicebus-queue"});// 1: Use default configurationservices.AddHealthChecks().AddAzureServiceBusTopic(Configuration["Data:ConnectionStrings:AzureServiceBus"],"topic1");// OR// 2: With all optional configurationservices.AddHealthChecks().AddAzureServiceBusTopic(connectionString:Configuration["Data:ConnectionStrings:AzureServiceBus"],topicName:"topic1",name:"azure-servicebus-topic",failureStatus:HealthStatus.Degraded,tags:newstring[]{"azure","servicebus","topic","azure-servicebus-topic"});        #endregion        #region Azure Blob Storage// 1: Use default configurationservices.AddHealthChecks().AddAzureBlobStorage(Configuration["Data:ConnectionStrings:AzureBlobStorage"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddAzureBlobStorage(connectionString:Configuration["Data:ConnectionStrings:AzureBlobStorage"],name:"azure-blob-storage",failureStatus:HealthStatus.Degraded,tags:newstring[]{"azure","storage","blob","azure-blob-storage"});        #endregion        #region Azure File Storage        #endregion        #region Azure Queue Storage// 1: Use default configurationservices.AddHealthChecks().AddAzureQueueStorage(Configuration["Data:ConnectionStrings:AzureQueueStorage"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddAzureQueueStorage(connectionString:Configuration["Data:ConnectionStrings:AzureQueueStorage"],name:"azure-queue-storage",failureStatus:HealthStatus.Degraded,tags:newstring[]{"azure","storage","queue","azure-queue-storage"});        #endregion        #region CosmosDB// 1: Use default configurationservices.AddHealthChecks().AddCosmosDB(Configuration["Data:ConnectionStrings:CosmosDB"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddCosmosDB(connectionString:Configuration["Data:ConnectionStrings:CosmosDB"],name:"cosmosdb",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","nosql","cosmosdb"});        #endregion        #region MongoDB// 1: Use default configurationservices.AddHealthChecks().AddMongoDb(Configuration["Data:ConnectionStrings:MongoDb"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddMongoDb(connectionString:Configuration["Data:ConnectionStrings:MongoDb"],name:"mongodb",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","nosql","mongodb"});// OR// 2: With all optional configurationservices.AddHealthChecks().AddMongoDb(connectionString:Configuration["Data:ConnectionStrings:MongoDb"],databaseName:"config",name:"mongodb",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","nosql","mongodb"});        #endregion        #region MySql// 1: Use default configurationservices.AddHealthChecks().AddMySql(Configuration["Data:ConnectionStrings:MySql"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddMySql(connectionString:Configuration["Data:ConnectionStrings:MySql"],name:"mysql",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","sql","mysql"});        #endregion        #region MariaDB// 1: Use default configurationservices.AddHealthChecks().AddMariaDB(Configuration["Data:ConnectionStrings:MariaDB"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddMariaDB(connectionString:Configuration["Data:ConnectionStrings:MariaDB"],name:"mariadb",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","sql","mariadb"});        #endregion        #region PostgreSql// 1: Use default configurationservices.AddHealthChecks().AddPostgreSql(Configuration["Data:ConnectionStrings:PostgreSql"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddPostgreSql(connectionString:Configuration["Data:ConnectionStrings:PostgreSql"],name:"postgresql",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","sql","postgresql"});        #endregion        #region DynamoDB// 1: Use default configurationservices.AddHealthChecks().AddDynamoDB(options=>{options.AccessKey=Configuration["DynamoDB:AccessKey"];options.SecretKey=Configuration["DynamoDB:SecretKey"];options.RegionEndpoint=Amazon.RegionEndpoint.CNNorth1;},name:"dynamodb");// OR// 2: With all optional configurationservices.AddHealthChecks().AddDynamoDB(options=>{options.AccessKey=Configuration["DynamoDB:AccessKey"];options.SecretKey=Configuration["DynamoDB:SecretKey"];options.RegionEndpoint=Amazon.RegionEndpoint.CNNorth1;},name:"dynamodb",failureStatus:HealthStatus.Degraded,tags:newstring[]{"nosql","dynamodb","aws-dynamodb","amazon-dynamodb"});        #endregion        #region Redis// 1: Use default configurationservices.AddHealthChecks().AddRedis(Configuration["Data:ConnectionStrings:Redis"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddRedis(connectionString:Configuration["Data:ConnectionStrings:Redis"],name:"redis",failureStatus:HealthStatus.Degraded,tags:newstring[]{"cache","redis","redisserver"});        #endregion        #region SqlServer// 1: Use default configurationservices.AddHealthChecks().AddSqlServer(Configuration["Data:ConnectionStrings:SqlServer"]);// OR// 2: With all optional configurationservices.AddHealthChecks().AddSqlServer(connectionString:Configuration["Data:ConnectionStrings:SqlServer"],sqlQuery:"SELECT 1;",name:"sql-server",failureStatus:HealthStatus.Unhealthy,tags:newstring[]{"db","sql","sqlserver"});        #endregion        #region All in oneservices.AddHealthChecks().AddSqlServer(connectionString:Configuration["Data:ConnectionStrings:Sample"]).AddCheck<RandomHealthCheck>("random").AddAzureServiceBusQueue("Endpoint=sb://MYBUS.servicebus.windows.net/;SharedAccessKeyName=policy;","que1").AddAzureServiceBusTopic("Endpoint=sb://unaidemo.servicebus.windows.net/;SharedAccessKeyName=olicy;","to1");        #endregionservices.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);}publicvoidConfigure(IApplicationBuilderapp,IHostingEnvironmentenv){app.UseHealthChecks("/health");app.UseMvcWithDefaultRoute();}}

Coming soon

  • Many health check for other services
  • .NET Standard 2.1 support
  • .NET 5.0 support

Give a Star! ⭐

Feel free to request an issue on github if you find bugs or request a new feature. Your valuable feedback is much appreciated to better improve this project. If you find this useful, please give it a star to show your support for this project.

Support ☎️

Reach out to me at one of the following places!

Author 👦

Connect with me
LinkedinWebsiteMediumNuGetGitHubMicrosoftFacebookTwitterInstagramTumblr
linkedinwebsitemediumnugetgithubmicrosoftfacebooktwitterinstagramtumblr

Donate 💵

If you find this project useful — or just feeling generous, consider buying me a beer or a coffee. Cheers! 🍻 ☕

PayPalBMCPatreon
PayPalBuy Me A CoffeePatreon

License 🔒

This project is licensed under the MIT License - see theLICENSE file for details.


[8]ページ先頭

©2009-2025 Movatter.jp