Beispiel #1
0
 public Endpoint(ITimeCoordinator timeCoordinator, EndpointIdentity identity, EndpointMetadata metadata, string password = null)
 {
     _timeCoordinator = timeCoordinator;
     Identity         = identity;
     Metadata         = metadata;
     Password         = password;
     UpdateLastModifiedTime();
 }
Beispiel #2
0
 public Endpoint(ITimeCoordinator timeCoordinator, EndpointIdentity identity, EndpointMetadata metadata, string password = null)
 {
     _timeCoordinator = timeCoordinator;
     Identity = identity;
     Metadata = metadata;
     Password = password;
     UpdateLastModifiedTime();
 }
 private ContinuousTaskExecutor(ITimeCoordinator timeCoordinator)
 {
     _timeCoordinator = timeCoordinator;
     _executionThread = new Thread(Execute)
     {
         Name = typeof(T).Name + " TaskExecutor"
     };
     _executionThread.Start();
 }
        public HealthMonitorExchangeClient(string healthMonBaseUrl, ITimeCoordinator timeCoordinator, ICredentialsProvider credentialsProvider)
        {
            if (string.IsNullOrWhiteSpace(healthMonBaseUrl))
            {
                throw new ArgumentNullException(nameof(healthMonBaseUrl));
            }

            _healthMonBaseUrl    = healthMonBaseUrl;
            _timeCoordinator     = timeCoordinator;
            _credentialsProvider = credentialsProvider;
        }
 public EndpointHealthNotifier(IHealthMonitorClient client, ITimeCoordinator timeCoordinator, EndpointDefinition definition, IHealthChecker healthChecker)
 {
     _client = client;
     _timeCoordinator = timeCoordinator;
     _definition = definition;
     _healthChecker = healthChecker;
     _cancelationTokenSource = new CancellationTokenSource();
     _healthCheckInterval = new CachedValue<TimeSpan>(HealthCheckIntervalCacheDuration, GetHealthCheckIntervalAsync);
     _thread = new Thread(HealthLoop) { IsBackground = true, Name = "Health Check loop" };
     _thread.Start();
 }
        public EndpointStatsManager(IEndpointStatsRepository repository, IMonitorSettings settings, ITimeCoordinator timeCoordinator, IEndpointMetricsForwarderCoordinator metricsForwarderCoordinator)
        {
            _repository = repository;
            _settings = settings;
            _timeCoordinator = timeCoordinator;
            _metricsForwarderCoordinator = metricsForwarderCoordinator;

            _cleanerThread = new Thread(Clean) { Name = "StatsCleaner" };
            _cleanerThread.Start();
            _writerThread = new Thread(WriteStats) { Name = "StatsWriter" };
            _writerThread.Start();
        }
        public EndpointMonitor(IMonitorableEndpointRegistry monitorableEndpointRegistry, IHealthSampler sampler, IMonitorSettings settings, ITimeCoordinator timeCoordinator, IContinuousTaskExecutor<MonitorableEndpoint> executor)
        {
            _monitorableEndpointRegistry = monitorableEndpointRegistry;
            _sampler = sampler;
            _settings = settings;
            _timeCoordinator = timeCoordinator;
            _executor = executor;

            _monitorableEndpointRegistry.NewEndpointAdded += HandleNewEndpoint;

            foreach (var endpoint in _monitorableEndpointRegistry.Endpoints)
                _executor.TryRegisterTaskFor(endpoint, MonitorEndpointAsync);
        }
        public EndpointUpdateFrequencyGuard(IEndpointRegistry endpointRegistry, IContinuousTaskExecutor<Endpoint> taskExecutor, IMonitorSettings monitorSettings, ITimeCoordinator timeCoordinator)
        {
            _endpointRegistry = endpointRegistry;
            _taskExecutor = taskExecutor;
            _monitorSettings = monitorSettings;
            _timeCoordinator = timeCoordinator;

            _maxEndpointDelay = GetEndpointMaxUpdateDelay();

            _endpointRegistry.EndpointAdded += AddEndpoint;
            foreach (var endpoint in _endpointRegistry.Endpoints)
                AddEndpoint(endpoint);
        }
Beispiel #9
0
 public EndpointHealthNotifier(IHealthMonitorClient client, ITimeCoordinator timeCoordinator, EndpointDefinition definition, IHealthChecker healthChecker)
 {
     _client                 = client;
     _timeCoordinator        = timeCoordinator;
     _definition             = definition;
     _healthChecker          = healthChecker;
     _cancelationTokenSource = new CancellationTokenSource();
     _healthCheckInterval    = new CachedValue <TimeSpan>(HealthCheckIntervalCacheDuration, GetHealthCheckIntervalAsync);
     _thread                 = new Thread(HealthLoop)
     {
         IsBackground = true, Name = "Health Check loop"
     };
     _thread.Start();
 }
        public EndpointMonitor(IMonitorableEndpointRegistry monitorableEndpointRegistry, IHealthSampler sampler, IMonitorSettings settings, ITimeCoordinator timeCoordinator, IContinuousTaskExecutor <MonitorableEndpoint> executor)
        {
            _monitorableEndpointRegistry = monitorableEndpointRegistry;
            _sampler         = sampler;
            _settings        = settings;
            _timeCoordinator = timeCoordinator;
            _executor        = executor;

            _monitorableEndpointRegistry.NewEndpointAdded += HandleNewEndpoint;

            foreach (var endpoint in _monitorableEndpointRegistry.Endpoints)
            {
                _executor.TryRegisterTaskFor(endpoint, MonitorEndpointAsync);
            }
        }
Beispiel #11
0
        public EndpointUpdateFrequencyGuard(IEndpointRegistry endpointRegistry, IContinuousTaskExecutor <Endpoint> taskExecutor, IMonitorSettings monitorSettings, ITimeCoordinator timeCoordinator)
        {
            _endpointRegistry = endpointRegistry;
            _taskExecutor     = taskExecutor;
            _monitorSettings  = monitorSettings;
            _timeCoordinator  = timeCoordinator;

            _maxEndpointDelay = GetEndpointMaxUpdateDelay();

            _endpointRegistry.EndpointAdded += AddEndpoint;
            foreach (var endpoint in _endpointRegistry.Endpoints)
            {
                AddEndpoint(endpoint);
            }
        }
        public EndpointStatsManager(IEndpointStatsRepository repository, IMonitorSettings settings, ITimeCoordinator timeCoordinator, IEndpointMetricsForwarderCoordinator metricsForwarderCoordinator)
        {
            _repository                  = repository;
            _settings                    = settings;
            _timeCoordinator             = timeCoordinator;
            _metricsForwarderCoordinator = metricsForwarderCoordinator;

            _cleanerThread = new Thread(Clean)
            {
                Name = "StatsCleaner"
            };
            _cleanerThread.Start();
            _writerThread = new Thread(WriteStats)
            {
                Name = "StatsWriter"
            };
            _writerThread.Start();
        }
Beispiel #13
0
        public EndpointRegistry(
            IHealthMonitorTypeRegistry healthMonitorTypeRegistry,
            IEndpointConfigurationRepository endpointConfigurationRepository,
            IEndpointStatsManager statsManager,
            ITimeCoordinator timeCoordinator)
        {
            _healthMonitorTypeRegistry       = healthMonitorTypeRegistry;
            _endpointConfigurationRepository = endpointConfigurationRepository;
            _endpointStatsManager            = statsManager;
            _timeCoordinator = timeCoordinator;

            foreach (var endpoint in _endpointConfigurationRepository.LoadEndpoints())
            {
                if (_endpoints.TryAdd(endpoint.Identity.GetNaturalKey(), endpoint))
                {
                    _endpointsByGuid.TryAdd(endpoint.Identity.Id, endpoint);
                }
            }
        }
Beispiel #14
0
        public EndpointMonitor(MonitorableEndpointRegistry monitorableEndpointRegistry, IHealthSampler sampler, IMonitorSettings settings, ITimeCoordinator timeCoordinator)
        {
            _monitorableEndpointRegistry = monitorableEndpointRegistry;
            _sampler         = sampler;
            _settings        = settings;
            _timeCoordinator = timeCoordinator;
            _monitorableEndpointRegistry.NewEndpointAdded += HandleNewEndpoint;
            _cancellation = new CancellationTokenSource();

            foreach (var endpoint in _monitorableEndpointRegistry.Endpoints)
            {
                _tasks.AddOrUpdate(endpoint, CreateTaskFor, (e, currentTask) => currentTask);
            }

            _monitor = new Thread(Start)
            {
                Name = "Monitor"
            };
            _monitor.Start();
        }
 public EndpointsController(IEndpointRegistry endpointRegistry, IEndpointStatsRepository endpointStatsRepository, ITimeCoordinator timeCoordinator)
 {
     _endpointRegistry        = endpointRegistry;
     _endpointStatsRepository = endpointStatsRepository;
     _timeCoordinator         = timeCoordinator;
 }
Beispiel #16
0
 protected HealthMonitorPushClient(IHealthMonitorClient client, ITimeCoordinator timeCoordinator)
 {
     _client          = client;
     _timeCoordinator = timeCoordinator;
 }
 public SqlEndpointConfigurationRepository(MySqlDatabase db, ITimeCoordinator timeCoordinator)
 {
     _db = db;
     _timeCoordinator = timeCoordinator;
 }
 public TestableHealthMonitorExchangeClient(HttpMessageHandler handler, ITimeCoordinator timeCoordinator, ICredentialsProvider credentialsProvider) 
     : base("http://mock", timeCoordinator, credentialsProvider)
 {
     _handler = handler;
 }
 public TestablePushClient(IHealthMonitorClient client, ITimeCoordinator timeCoordinator) : base(client, timeCoordinator)
 {
 }
 public HealthSampler(IMonitorSettings settings, IEndpointHealthUpdateListener healthUpdateListener, ITimeCoordinator timeCoordinator)
 {
     _settings             = settings;
     _healthUpdateListener = healthUpdateListener;
     _timeCoordinator      = timeCoordinator;
 }
 public EndpointsController(IEndpointRegistry endpointRegistry, IEndpointStatsRepository endpointStatsRepository, ITimeCoordinator timeCoordinator)
 {
     _endpointRegistry = endpointRegistry;
     _endpointStatsRepository = endpointStatsRepository;
     _timeCoordinator = timeCoordinator;
 }
 public SqlEndpointConfigurationRepository(MySqlDatabase db, ITimeCoordinator timeCoordinator)
 {
     _db = db;
     _timeCoordinator = timeCoordinator;
 }
 public static ContinuousTaskExecutor <T> StartExecutor(ITimeCoordinator timeCoordinator)
 {
     return(new ContinuousTaskExecutor <T>(timeCoordinator));
 }
 protected HealthMonitorPushClient(IHealthMonitorClient client, ITimeCoordinator timeCoordinator)
 {
     _client = client;
     _timeCoordinator = timeCoordinator;
 }
 public TestableHealthMonitorExchangeClient(HttpMessageHandler handler, ITimeCoordinator timeCoordinator, ICredentialsProvider credentialsProvider)
     : base("http://mock", timeCoordinator, credentialsProvider)
 {
     _handler = handler;
 }
 public TestablePushClient(IHealthMonitorClient client, ITimeCoordinator timeCoordinator) : base(client, timeCoordinator)
 {
 }
 public HealthSampler(IMonitorSettings settings, IEndpointHealthUpdateListener healthUpdateListener, ITimeCoordinator timeCoordinator)
 {
     _settings = settings;
     _healthUpdateListener = healthUpdateListener;
     _timeCoordinator = timeCoordinator;
 }