public HealthService getImplementation() { if (implementation == null) { implementation = new HealthServiceImpl(getStatKeyPrefix(), getReactor(), getTimer(), getStatsCollector(), getRecheckInterval(), getTimeUnit(), getHealthCheckJobs(), getOnFail(), getOnWarn(), getOnCheckIn()); } return implementation; }
public HealthServiceBuilder getHealthServiceBuilder() { if (healthServiceBuilder == null) { healthServiceBuilder = HealthServiceBuilder.healthServiceBuilder(); } return healthServiceBuilder; }
public void setStatus(HealthStatus status) { this.status = status; if (status == HealthStatus.PASS) { clearError(); } }
private void check() { now = timer.now(); long duration = now - lastCheckTime; if (duration > checkInIntervalMS) { lastCheckTime = now; final boolean failing = healthManager.isFailing(); if (!failing) { healthServiceAsync.checkInOk(serviceName); } else { healthServiceAsync.checkIn(serviceName, HealthStatus.FAIL); } healthServiceAsync.clientProxyFlush(); } }
private void runHealthCheck(final HealthCheckJob healthCheckJob) { final NodeHealthStat currentHealth = healthCheckJob.getHealthCheck().check(); reportStatus(healthCheckJob.getName(), currentHealth); serviceHealthStatMap.put(healthCheckJob.getName(), currentHealth); }
public HealthServiceBuilder addJob(final String name, final Duration duration, final HealthCheck healthCheck) { this.getHealthCheckJobs().add(new HealthCheckJob(healthCheck, duration, name)); return this; }
@Override public void queueInit() { healthServiceAsync.register(serviceName, ttlMS, TimeUnit.MILLISECONDS); }
@Override public void queueShutdown() { healthServiceAsync.unregister(serviceName); }
@Override public void queueIdle() { check(); }
@Override protected Object clone() throws CloneNotSupportedException { NodeHealthStat node = new NodeHealthStat(name, ttlInMS); node.reason = this.reason; node.error = this.error; node.status = this.status; return node; }
@Override public boolean isFailing() { return healthManager.isFailing(); }
public static HealthServiceBuilder healthServiceBuilder() { return new HealthServiceBuilder(); }
public HealthServiceAsync build() { return getProxy(); }
@Override public void setFailingWithReason(HealthFailReason reason) { increment("fail." + reason.name().toLowerCase()); healthManager.setFailing(); healthServiceClient.ifPresent(healthServiceClient1 -> healthServiceClient1.failWithReason(serviceName, reason)); }
@Override public boolean isOk() { return healthManager.isOk(); }
public void fail() { healthService.checkIn("no exist", HealthStatus.PASS); }
/** * @return HealthServiceBuilder */ public HealthServiceBuilder getHealthServiceBuilder() { if (healthServiceBuilder == null) { healthServiceBuilder = HealthServiceBuilder.healthServiceBuilder(); } return healthServiceBuilder; }
@Override public void queueLimit() { check(); }
public HealthServiceBuilder getHealthServiceBuilder() { if (healthServiceBuilder == null) { healthServiceBuilder = HealthServiceBuilder.healthServiceBuilder(); } return healthServiceBuilder; }
@Override public void queueEmpty() { check(); }