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 EndpointMonitor(IEndpointRegistry registry, IHealthSampler sampler, IMonitorSettings settings) { _registry = registry; _sampler = sampler; _settings = settings; _registry.NewEndpointAdded += HandleNewEndpoint; _cancellation = new CancellationTokenSource(); foreach (var endpoint in _registry.Endpoints) _tasks.AddOrUpdate(endpoint, CreateTaskFor, (e, currentTask) => currentTask); _monitor = new Thread(Start) { Name = "Monitor" }; _monitor.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 EndpointMonitor(IEndpointRegistry registry, IHealthSampler sampler, IMonitorSettings settings) { _registry = registry; _sampler = sampler; _settings = settings; _registry.NewEndpointAdded += HandleNewEndpoint; _cancellation = new CancellationTokenSource(); foreach (var endpoint in _registry.Endpoints) { _tasks.AddOrUpdate(endpoint, CreateTaskFor, (e, currentTask) => currentTask); } _monitor = new Thread(Start) { Name = "Monitor" }; _monitor.Start(); }
public async Task CheckHealth(IHealthSampler sampler, CancellationToken cancellationToken) { Health = await sampler.CheckHealthAsync(this, cancellationToken); }
public ThrottlingSampler(IHealthSampler sampler, IThrottlingSettings settings) { _sampler = sampler; _throttles = settings.Throttling.ToDictionary(kv => kv.Key, kv => new SemaphoreSlim(kv.Value)); }
public async Task CheckHealth(IHealthSampler sampler, CancellationToken cancellationToken) { Health = await sampler.CheckHealth(this, cancellationToken); }