public static IHealthBuilder AddAzureQueueStorageMessageCountCheck( this IHealthCheckBuilder builder, string name, string connectionString, string queueName, TimeSpan cacheDuration, long degradedThreshold = 1, long?unhealthyThreshold = null) { if (unhealthyThreshold.HasValue && unhealthyThreshold < degradedThreshold) { throw new ArgumentException("Unhealthy threshold must not be less than degraded threshold.", nameof(unhealthyThreshold)); } if (degradedThreshold < 0) { throw new ArgumentException("must be greater than 0", nameof(degradedThreshold)); } if (unhealthyThreshold < 0) { throw new ArgumentException("must be greater than 0", nameof(unhealthyThreshold)); } builder.AddCachedCheck(name, CheckMessageCount(name, CloudStorageAccount.Parse(connectionString), queueName, degradedThreshold, unhealthyThreshold), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureServiceBusTopicSubscriptionDeadLetterQueueCheck( this IHealthCheckBuilder builder, string name, string connectionString, string topicName, string subscriptionName, TimeSpan cacheDuration, long deadLetterWarningThreshold = 1, long?deadLetterErrorThreshold = null) { if (deadLetterErrorThreshold.HasValue && (deadLetterWarningThreshold > deadLetterErrorThreshold)) { throw new ArgumentException("Error threshold must exceed warning threshold", nameof(deadLetterErrorThreshold)); } var managementClient = new ManagementClient(connectionString); builder.AddCachedCheck( name, ServiceBusHealthChecks.CheckDeadLetterQueueCount(Logger, EntityNameHelper.FormatSubscriptionPath(topicName, subscriptionName), name, GetQueueMessageCount, deadLetterWarningThreshold, deadLetterErrorThreshold), cacheDuration); return(builder.Builder); async Task <MessageCountDetails> GetQueueMessageCount() { var info = await managementClient.GetSubscriptionRuntimeInfoAsync(topicName, subscriptionName); return(info.MessageCountDetails); } }
public static IHealthBuilder AddHttpGetCheck( this IHealthCheckBuilder healthCheckBuilder, string name, Uri uri, int retries, TimeSpan delayBetweenRetries, TimeSpan timeoutPerRequest, TimeSpan cacheDuration, bool degradedOnError = false) { EnsureValidRetries(retries); EnsureValidDelayBetweenRequests(delayBetweenRetries); EnsureValidTimeoutPerRequest(timeoutPerRequest); healthCheckBuilder.AddCachedCheck( name, async cancellationToken => await ExecuteHealthCheckWithRetriesAsync( uri, retries, delayBetweenRetries, timeoutPerRequest, degradedOnError, cancellationToken), cacheDuration); return(healthCheckBuilder.Builder); }
public static IHealthBuilder AddAzureServiceBusTopicConnectivityCheck( this IHealthCheckBuilder builder, string name, TopicClient topicClient, TimeSpan cacheDuration) { builder.AddCachedCheck(name, CheckServiceBusTopicConnectivity(name, topicClient), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureQueueStorageCheck( this IHealthCheckBuilder builder, string name, string connectionString, string queueName, TimeSpan cacheDuration) { builder.AddCachedCheck(name, CheckQueueExists(name, CloudStorageAccount.Parse(connectionString), queueName), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureTableStorageConnectivityCheck( this IHealthCheckBuilder builder, string name, CloudStorageAccount storageAccount, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckTableStorageConnectivity(name, storageAccount), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureQueueStorageConnectivityCheck( this IHealthCheckBuilder builder, string name, string connectionString, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckStorageAccountConnectivity(name, CloudStorageAccount.Parse(connectionString)), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureEventHubConnectivityCheck( this IHealthCheckBuilder builder, string name, EventHubClient eventHubClient, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckEventHubConnectivity(name, eventHubClient), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureTableStorageTableCheck( this IHealthCheckBuilder builder, string name, CloudStorageAccount storageAccount, string tableName, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckAzureTableStorageTableExists(name, storageAccount, tableName), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureDocumentDBCollectionCheck( this IHealthCheckBuilder builder, string name, Uri collectionUri, DocumentClient documentClient, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckDocumentDbCollectionExists(collectionUri, documentClient), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureDocumentDBDatabaseCheck( this IHealthCheckBuilder builder, string name, Uri databaseUri, DocumentClient documentClient, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckDocumentDBDatabaseConnectivity(databaseUri, documentClient), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureBlobStorageContainerCheck( this IHealthCheckBuilder builder, string name, CloudStorageAccount storageAccount, string containerName, TimeSpan cacheDuration) { builder.AddCachedCheck( name, CheckAzureBlobStorageContainerExists(name, storageAccount, containerName), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddPingCheck( this IHealthCheckBuilder healthCheckBuilder, string name, string host, TimeSpan timeout, TimeSpan cacheDuration, bool degradedOnError = false) { healthCheckBuilder.AddCachedCheck( name, async() => await ExecutePingCheckAsync(host, timeout, degradedOnError), cacheDuration); return(healthCheckBuilder.Builder); }
public static IHealthBuilder AddAzureServiceBusTopicConnectivityCheck( this IHealthCheckBuilder builder, string name, string connectionString, string topicName, TimeSpan cacheDuration) { var topicClient = new TopicClient(connectionString, topicName) { OperationTimeout = DefaultTimeout }; builder.AddCachedCheck(name, CheckServiceBusTopicConnectivity(name, topicClient), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddAzureServiceBusQueueConnectivityCheck( this IHealthCheckBuilder builder, string name, string connectionString, string queueName, TimeSpan cacheDuration) { var queueClient = new QueueClient(connectionString, queueName, receiveMode: ReceiveMode.PeekLock) { OperationTimeout = DefaultTimeout }; builder.AddCachedCheck(name, CheckServiceBusQueueConnectivity(name, queueClient), cacheDuration); return(builder.Builder); }
public static IHealthBuilder AddSqlCachedCheck( this IHealthCheckBuilder healthCheckBuilder, string name, Func <IDbConnection> newDbConnection, TimeSpan timeout, TimeSpan cacheDuration, bool degradedOnError = false) { EnsureValidTimeout(timeout); healthCheckBuilder.AddCachedCheck( name, cancellationToken => ExecuteSqlCheckAsync(name, newDbConnection, timeout, degradedOnError, cancellationToken), cacheDuration); return(healthCheckBuilder.Builder); }
public static IHealthBuilder AddHttpGetCheck( this IHealthCheckBuilder healthCheckBuilder, string name, Uri uri, TimeSpan timeout, TimeSpan cacheDuration, bool degradedOnError = false) { EnsureValidTimeout(timeout); healthCheckBuilder.AddCachedCheck( name, async cancellationToken => await ExecuteHttpCheckNoRetriesAsync(uri, timeout, degradedOnError, cancellationToken), cacheDuration); return(healthCheckBuilder.Builder); }
public static IHealthBuilder AddHttpPostCheck( this IHealthCheckBuilder healthCheckBuilder, string name, Uri uri, HttpContent content, TimeSpan timeout, TimeSpan cacheDuration, bool degradedOnError = false, Dictionary <string, string> requestHeaders = null) { EnsureValidTimeout(timeout); healthCheckBuilder.AddCachedCheck( name, async cancellationToken => await ExecuteHttpCheckNoRetriesAsync(uri, content, timeout, degradedOnError, cancellationToken, requestHeaders), cacheDuration); return(healthCheckBuilder.Builder); }