public DiscoveryRegistryService(ILogger <DiscoveryRegistryService> logger, HealthChecksDb db, IHttpClientFactory httpClientFactory)
        {
            _logger = logger ?? throw new ArgumentNullException(nameof(logger));
            _db     = db ?? throw new ArgumentNullException(nameof(db));

            _httpClient = httpClientFactory.CreateClient(Keys.DISCOVERY_SERVICE_HTTP_CLIENT_NAME);
        }
 public HealthCheckReportCollector(
     HealthChecksDb db,
     IHealthCheckFailureNotifier healthCheckFailureNotifier,
     IOptions <Settings> settings,
     ILogger <HealthCheckReportCollector> logger)
 {
     _db = db ?? throw new ArgumentNullException(nameof(db));
     _healthCheckFailureNotifier = healthCheckFailureNotifier ?? throw new ArgumentNullException(nameof(healthCheckFailureNotifier));
     _settings = settings.Value ?? throw new ArgumentNullException(nameof(settings));
     _logger   = logger ?? throw new ArgumentNullException(nameof(logger));
 }
예제 #3
0
 public WebHookFailureNotifier(
     HealthChecksDb db,
     IOptions <Settings> settings,
     ILogger <WebHookFailureNotifier> logger,
     IHttpClientFactory httpClientFactory)
 {
     _db         = db ?? throw new ArgumentNullException(nameof(db));
     _settings   = settings.Value ?? new Settings();
     _logger     = logger ?? throw new ArgumentNullException(nameof(logger));
     _httpClient = httpClientFactory.CreateClient(Keys.HEALTH_CHECK_WEBHOOK_HTTP_CLIENT_NAME);
 }
예제 #4
0
        Task <int> RegisterDiscoveredLiveness(HealthChecksDb livenessDb, string host, string name)
        {
            livenessDb.Configurations.Add(new HealthCheckConfiguration()
            {
                Name             = name,
                Uri              = host,
                DiscoveryService = "kubernetes"
            });

            return(livenessDb.SaveChangesAsync());
        }
 public HealthCheckReportCollector(
     HealthChecksDb db,
     IHealthCheckFailureNotifier healthCheckFailureNotifier,
     IOptions <Settings> settings,
     IHttpClientFactory httpClientFactory,
     ILogger <HealthCheckReportCollector> logger)
 {
     _db = db ?? throw new ArgumentNullException(nameof(db));
     _healthCheckFailureNotifier = healthCheckFailureNotifier ?? throw new ArgumentNullException(nameof(healthCheckFailureNotifier));
     _settings   = settings.Value ?? throw new ArgumentNullException(nameof(settings));
     _logger     = logger ?? throw new ArgumentNullException(nameof(logger));
     _httpClient = httpClientFactory.CreateClient(Keys.HEALTH_CHECK_HTTP_CLIENT_NAME);
 }
        private static HealthChecksDb StubDbContext(IEnumerable <HealthCheckExecution> executions)
        {
            var options = new DbContextOptionsBuilder <HealthChecksDb>()
                          .UseInMemoryDatabase(databaseName: "HealthChecksDatabase")
                          .Options;

            var context = new HealthChecksDb(options);

            context.Executions.RemoveRange(context.Executions);
            context.Executions.AddRange(executions);
            context.SaveChanges();

            return(context);
        }
예제 #7
0
 public HealthCheckReportCollector(
     HealthChecksDb db,
     IHealthCheckFailureNotifier healthCheckFailureNotifier,
     IOptions <Settings> settings,
     IHttpClientFactory httpClientFactory,
     ILogger <HealthCheckReportCollector> logger,
     ServerAddressesService serverAddressService,
     IEnumerable <IHealthCheckCollectorInterceptor> interceptors)
 {
     _db = db ?? throw new ArgumentNullException(nameof(db));
     _healthCheckFailureNotifier = healthCheckFailureNotifier ?? throw new ArgumentNullException(nameof(healthCheckFailureNotifier));
     _settings             = settings.Value ?? throw new ArgumentNullException(nameof(settings));
     _logger               = logger ?? throw new ArgumentNullException(nameof(logger));
     _serverAddressService = serverAddressService ?? throw new ArgumentNullException(nameof(serverAddressService));
     _interceptors         = interceptors ?? Enumerable.Empty <IHealthCheckCollectorInterceptor>();
     _httpClient           = httpClientFactory.CreateClient(Keys.HEALTH_CHECK_HTTP_CLIENT_NAME);
 }
 public HealthChecksPushService(HealthChecksDb db, ILogger <HealthChecksPushService> logger)
 {
     _db     = db ?? throw new ArgumentNullException(nameof(db));
     _logger = logger ?? throw new ArgumentException(nameof(logger));
 }
 public WebHookFailureNotifier(HealthChecksDb db, IOptions <Settings> settings, ILogger <WebHookFailureNotifier> logger)
 {
     _db       = db ?? throw new ArgumentNullException(nameof(db));
     _settings = settings.Value ?? new Settings();
     _logger   = logger ?? throw new ArgumentNullException(nameof(logger));
 }
예제 #10
0
 bool IsLivenessRegistered(HealthChecksDb livenessDb, string host)
 {
     return(livenessDb.Configurations
            .Any(lc => lc.Uri == host));
 }
 bool IsLivenessRegistered(HealthChecksDb livenessDb, string host)
 {
     return(livenessDb.Configurations
            .Any(lc => lc.Uri.Equals(host, StringComparison.InvariantCultureIgnoreCase)));
 }
 private async Task <bool> ShouldMigrateDatabase(HealthChecksDb context)
 {
     return(!_settings.DisableMigrations &&
            !context.Database.IsInMemory() &&
            (await context.Database.GetPendingMigrationsAsync()).Any());
 }
 public OverallHealthCheck(HealthChecksDb healthChecksDb)
 {
     this.healthChecksDb = healthChecksDb ?? throw new ArgumentNullException(nameof(healthChecksDb));
 }