Search in sources :

Example 1 with ScheduledOriginHealthStatusMonitor

use of com.hotels.styx.client.healthcheck.monitors.ScheduledOriginHealthStatusMonitor in project styx by ExpediaGroup.

the class OriginHealthStatusMonitorFactory method create.

public OriginHealthStatusMonitor create(Id id, HealthCheckConfig healthCheckConfig, Supplier<OriginHealthCheckFunction> healthCheckFunction, HttpClient client) {
    if (healthCheckConfig == null || !healthCheckConfig.isEnabled()) {
        return new NoOriginHealthStatusMonitor();
    }
    ScheduledExecutorService executorService = newScheduledThreadPool(1, threadFactory(format("STYX-ORIGINS-MONITOR-%s", requireNonNull(id))));
    ScheduledOriginHealthStatusMonitor healthStatusMonitor = new ScheduledOriginHealthStatusMonitor(executorService, healthCheckFunction.get(), new Schedule(healthCheckConfig.intervalMillis(), MILLISECONDS), client);
    return new AnomalyExcludingOriginHealthStatusMonitor(healthStatusMonitor, healthCheckConfig.healthyThreshold(), healthCheckConfig.unhealthyThreshold());
}
Also used : ScheduledExecutorService(java.util.concurrent.ScheduledExecutorService) AnomalyExcludingOriginHealthStatusMonitor(com.hotels.styx.client.healthcheck.monitors.AnomalyExcludingOriginHealthStatusMonitor) ScheduledOriginHealthStatusMonitor(com.hotels.styx.client.healthcheck.monitors.ScheduledOriginHealthStatusMonitor) NoOriginHealthStatusMonitor(com.hotels.styx.client.healthcheck.monitors.NoOriginHealthStatusMonitor)

Aggregations

AnomalyExcludingOriginHealthStatusMonitor (com.hotels.styx.client.healthcheck.monitors.AnomalyExcludingOriginHealthStatusMonitor)1 NoOriginHealthStatusMonitor (com.hotels.styx.client.healthcheck.monitors.NoOriginHealthStatusMonitor)1 ScheduledOriginHealthStatusMonitor (com.hotels.styx.client.healthcheck.monitors.ScheduledOriginHealthStatusMonitor)1 ScheduledExecutorService (java.util.concurrent.ScheduledExecutorService)1