@Override public boolean isUnhealthy() { if (instance != null) { if (instance.getHealthState() == null) { return false; } boolean unhealthyState = instance.getHealthState().equalsIgnoreCase( HealthcheckConstants.HEALTH_STATE_UNHEALTHY) || instance.getHealthState().equalsIgnoreCase( HealthcheckConstants.HEALTH_STATE_UPDATING_UNHEALTHY); return unhealthyState; } return false; }
@Override public boolean isHealthCheckInitializing() { return instance != null && instance.getHealthState() != null && HealthcheckConstants.isInit(instance.getHealthState()); }
protected String getHealthState(HealthcheckInstance hcInstance) { Instance instance = objectManager.loadResource(Instance.class, hcInstance.getInstanceId()); return instance == null ? null : instance.getHealthState(); }
@Override public HandlerResult handle(ProcessState state, ProcessInstance process) { Instance instance = (Instance) state.getResource(); InstanceHealthCheck healthCheck = DataAccessor.field(instance, InstanceConstants.FIELD_HEALTH_CHECK, jsonMapper, InstanceHealthCheck.class); // set healthcheck if (healthCheck != null) { if (instance.getHealthState() == null) { objectManager.setFields(instance, INSTANCE.HEALTH_STATE, HealthcheckConstants.HEALTH_STATE_INITIALIZING, INSTANCE.HEALTH_UPDATED, new Date()); } else if (instance.getHealthState().equalsIgnoreCase(HealthcheckConstants.HEALTH_STATE_HEALTHY)) { healtcheckService.updateInstanceHealthState(instance, HealthcheckConstants.HEALTH_STATE_REINITIALIZING); } healtcheckService.registerForHealtcheck(HealthcheckInstanceType.INSTANCE, instance.getId()); } return null; }
protected boolean needToRemove(Instance instance) { boolean remove = false; InstanceHealthCheck healthCheck = DataAccessor.field(instance, InstanceConstants.FIELD_HEALTH_CHECK, jsonMapper, InstanceHealthCheck.class); if(healthCheck.getStrategy() == Strategy.none) { return remove; } Integer timeout; if (instance.getHealthState().equalsIgnoreCase(HealthcheckConstants.HEALTH_STATE_INITIALIZING)) { timeout = healthCheck.getInitializingTimeout(); } else { timeout = healthCheck.getReinitializingTimeout(); } if (timeout != null && instance.getHealthUpdated() != null) { long createdTimeAgo = System.currentTimeMillis() - instance.getHealthUpdated().getTime(); if (createdTimeAgo >= timeout) { remove = true; } } return remove; }
List<String> runningStates = Arrays.asList(InstanceConstants.STATE_RUNNING); for (Instance instance : serviceInstances) { String iHS = instance.getHealthState() == null ? HealthcheckConstants.HEALTH_STATE_HEALTHY : instance .getHealthState().toLowerCase(); if (runningStates.contains(instance.getState().toLowerCase())) { if (healthyStates.contains(iHS)) {
this.health_state = instance.getHealthState(); this.start_count = instance.getStartCount(); this.state = instance.getState();
setNativeContainer(from.getNativeContainer()); setNetworkContainerId(from.getNetworkContainerId()); setHealthState(from.getHealthState()); setStartCount(from.getStartCount()); setCreateIndex(from.getCreateIndex());