/** * Build the {@link StatusInfo}. General information are automatically * built here too. */ public StatusInfo build() { if (result.instanceInfo == null) { throw new IllegalStateException("instanceInfo can not be null"); } result.generalStats.put("server-uptime", getUpTime()); result.generalStats.put("environment", ConfigurationManager .getDeploymentContext().getDeploymentEnvironment()); Runtime runtime = Runtime.getRuntime(); int totalMem = (int) (runtime.totalMemory() / 1048576); int freeMem = (int) (runtime.freeMemory() / 1048576); int usedPercent = (int) (((float) totalMem - freeMem) / (totalMem) * 100.0); result.generalStats.put("num-of-cpus", String.valueOf(runtime.availableProcessors())); result.generalStats.put("total-avail-memory", String.valueOf(totalMem) + "mb"); result.generalStats.put("current-memory-usage", String.valueOf(totalMem - freeMem) + "mb" + " (" + usedPercent + "%)"); return result; } }
private Builder() { result = new StatusInfo(); }
protected void filterReplicas(Map<String, Object> model, StatusInfo statusInfo) { Map<String, String> applicationStats = statusInfo.getApplicationStats(); if(applicationStats.get("registered-replicas").contains("@")){ applicationStats.put("registered-replicas", scrubBasicAuth(applicationStats.get("registered-replicas"))); } if(applicationStats.get("unavailable-replicas").contains("@")){ applicationStats.put("unavailable-replicas",scrubBasicAuth(applicationStats.get("unavailable-replicas"))); } if(applicationStats.get("available-replicas").contains("@")){ applicationStats.put("available-replicas",scrubBasicAuth(applicationStats.get("available-replicas"))); } model.put("applicationStats", applicationStats); }
private void populateInstanceInfo(Map<String, Object> model, StatusInfo statusInfo) { InstanceInfo instanceInfo = statusInfo.getInstanceInfo(); Map<String, String> instanceMap = new HashMap<>(); instanceMap.put("ipAddr", instanceInfo.getIPAddr()); instanceMap.put("status", instanceInfo.getStatus().toString()); if (instanceInfo.getDataCenterInfo().getName() == DataCenterInfo.Name.Amazon) { AmazonInfo info = (AmazonInfo) instanceInfo.getDataCenterInfo(); instanceMap.put("availability-zone", info.get(AmazonInfo.MetaDataKey.availabilityZone)); instanceMap.put("public-ipv4", info.get(AmazonInfo.MetaDataKey.publicIpv4)); instanceMap.put("instance-id", info.get(AmazonInfo.MetaDataKey.instanceId)); instanceMap.put("public-hostname", info.get(AmazonInfo.MetaDataKey.publicHostname)); instanceMap.put("ami-id", info.get(AmazonInfo.MetaDataKey.amiId)); instanceMap.put("instance-type", info.get(AmazonInfo.MetaDataKey.instanceType)); } model.put("instanceInfo", instanceMap); }
@Test public void testGetStatusInfoHealthy() { StatusUtil statusUtil = getStatusUtil(3, 3, 2); assertTrue(statusUtil.getStatusInfo().isHealthy()); }
protected void filterReplicas(Map<String, Object> model, StatusInfo statusInfo) { Map<String, String> applicationStats = statusInfo.getApplicationStats(); if(applicationStats.get("registered-replicas").contains("@")){ applicationStats.put("registered-replicas", scrubBasicAuth(applicationStats.get("registered-replicas"))); } if(applicationStats.get("unavailable-replicas").contains("@")){ applicationStats.put("unavailable-replicas",scrubBasicAuth(applicationStats.get("unavailable-replicas"))); } if(applicationStats.get("available-replicas").contains("@")){ applicationStats.put("available-replicas",scrubBasicAuth(applicationStats.get("available-replicas"))); } model.put("applicationStats", applicationStats); }
private void populateInstanceInfo(NutMap result, StatusInfo statusInfo) { InstanceInfo instanceInfo = statusInfo.getInstanceInfo(); Map<String, String> instanceMap = new HashMap<>(); instanceMap.put("ipAddr", instanceInfo.getIPAddr()); instanceMap.put("status", instanceInfo.getStatus().toString()); if (instanceInfo.getDataCenterInfo().getName() == DataCenterInfo.Name.Amazon) { AmazonInfo info = (AmazonInfo) instanceInfo.getDataCenterInfo(); instanceMap.put("availability-zone", info.get(AmazonInfo.MetaDataKey.availabilityZone)); instanceMap.put("public-ipv4", info.get(AmazonInfo.MetaDataKey.publicIpv4)); instanceMap.put("instance-id", info.get(AmazonInfo.MetaDataKey.instanceId)); instanceMap.put("public-hostname", info.get(AmazonInfo.MetaDataKey.publicHostname)); instanceMap.put("ami-id", info.get(AmazonInfo.MetaDataKey.amiId)); instanceMap.put("instance-type", info.get(AmazonInfo.MetaDataKey.instanceType)); } result.put("instanceInfo", instanceMap); }
@Test public void testGetStatusInfoUnhealthy() { StatusUtil statusUtil = getStatusUtil(5, 3, 4); assertFalse(statusUtil.getStatusInfo().isHealthy()); }
/** * Build the {@link StatusInfo}. General information are automatically * built here too. */ public StatusInfo build() { if (result.instanceInfo == null) { throw new IllegalStateException("instanceInfo can not be null"); } result.generalStats.put("server-uptime", getUpTime()); result.generalStats.put("environment", ConfigurationManager .getDeploymentContext().getDeploymentEnvironment()); Runtime runtime = Runtime.getRuntime(); int totalMem = (int) (runtime.totalMemory() / 1048576); int freeMem = (int) (runtime.freeMemory() / 1048576); int usedPercent = (int) (((float) totalMem - freeMem) / (totalMem) * 100.0); result.generalStats.put("num-of-cpus", String.valueOf(runtime.availableProcessors())); result.generalStats.put("total-avail-memory", String.valueOf(totalMem) + "mb"); result.generalStats.put("current-memory-usage", String.valueOf(totalMem - freeMem) + "mb" + " (" + usedPercent + "%)"); return result; } }
private void filterReplicas(NutMap result, StatusInfo statusInfo) { Map<String, String> applicationStats = statusInfo.getApplicationStats(); if (applicationStats.get("registered-replicas").contains("@")) { applicationStats.put("registered-replicas", scrubBasicAuth(applicationStats.get("registered-replicas"))); } if (applicationStats.get("unavailable-replicas").contains("@")) { applicationStats.put("unavailable-replicas", scrubBasicAuth(applicationStats.get("unavailable-replicas"))); } if (applicationStats.get("available-replicas").contains("@")) { applicationStats.put("available-replicas", scrubBasicAuth(applicationStats.get("available-replicas"))); } result.put("applicationStats", applicationStats); }
private void populateInstanceInfo(Map<String, Object> model, StatusInfo statusInfo) { InstanceInfo instanceInfo = statusInfo.getInstanceInfo(); Map<String, String> instanceMap = new HashMap<>(); instanceMap.put("ipAddr", instanceInfo.getIPAddr()); instanceMap.put("status", instanceInfo.getStatus().toString()); if (instanceInfo.getDataCenterInfo().getName() == DataCenterInfo.Name.Amazon) { AmazonInfo info = (AmazonInfo) instanceInfo.getDataCenterInfo(); instanceMap.put("availability-zone", info.get(AmazonInfo.MetaDataKey.availabilityZone)); instanceMap.put("public-ipv4", info.get(AmazonInfo.MetaDataKey.publicIpv4)); instanceMap.put("instance-id", info.get(AmazonInfo.MetaDataKey.instanceId)); instanceMap.put("public-hostname", info.get(AmazonInfo.MetaDataKey.publicHostname)); instanceMap.put("ami-id", info.get(AmazonInfo.MetaDataKey.amiId)); instanceMap.put("instance-type", info.get(AmazonInfo.MetaDataKey.instanceType)); } model.put("instanceInfo", instanceMap); }
private Builder() { result = new StatusInfo(); }
@Test public void testGetStatusInfoUnsetHealth() { StatusUtil statusUtil = getStatusUtil(5, 3, -1); StatusInfo statusInfo = statusUtil.getStatusInfo(); try { statusInfo.isHealthy(); } catch (NullPointerException e) { // Expected that the healthy flag is not set when the minimum value is -1 return; } fail("Excpected NPE to be thrown when healthy threshold is not set"); }
private void populateHeader(Map<String, Object> model) { model.put("currentTime", StatusResource.getCurrentTimeAsString()); model.put("upTime", StatusInfo.getUpTime()); model.put("environment", ConfigurationManager.getDeploymentContext() .getDeploymentEnvironment()); model.put("datacenter", ConfigurationManager.getDeploymentContext() .getDeploymentDatacenter()); PeerAwareInstanceRegistry registry = getRegistry(); model.put("registry", registry); model.put("isBelowRenewThresold", registry.isBelowRenewThresold() == 1); DataCenterInfo info = applicationInfoManager.getInfo().getDataCenterInfo(); if (info.getName() == DataCenterInfo.Name.Amazon) { AmazonInfo amazonInfo = (AmazonInfo) info; model.put("amazonInfo", amazonInfo); model.put("amiId", amazonInfo.get(AmazonInfo.MetaDataKey.amiId)); model.put("availabilityZone", amazonInfo.get(AmazonInfo.MetaDataKey.availabilityZone)); model.put("instanceId", amazonInfo.get(AmazonInfo.MetaDataKey.instanceId)); } }
private void populateHeader(Map<String, Object> model) { model.put("currentTime", StatusResource.getCurrentTimeAsString()); model.put("upTime", StatusInfo.getUpTime()); model.put("environment", ConfigurationManager.getDeploymentContext() .getDeploymentEnvironment()); model.put("datacenter", ConfigurationManager.getDeploymentContext() .getDeploymentDatacenter()); PeerAwareInstanceRegistry registry = getRegistry(); model.put("registry", registry); model.put("isBelowRenewThresold", registry.isBelowRenewThresold() == 1); DataCenterInfo info = applicationInfoManager.getInfo().getDataCenterInfo(); if (info.getName() == DataCenterInfo.Name.Amazon) { AmazonInfo amazonInfo = (AmazonInfo) info; model.put("amazonInfo", amazonInfo); model.put("amiId", amazonInfo.get(AmazonInfo.MetaDataKey.amiId)); model.put("availabilityZone", amazonInfo.get(AmazonInfo.MetaDataKey.availabilityZone)); model.put("instanceId", amazonInfo.get(AmazonInfo.MetaDataKey.instanceId)); } }
private void populateHeader(NutMap result) { result.put("currentTime", StatusResource.getCurrentTimeAsString()); result.put("upTime", StatusInfo.getUpTime()); result.put("environment", ConfigurationManager.getDeploymentContext().getDeploymentEnvironment()); result.put("datacenter", ConfigurationManager.getDeploymentContext().getDeploymentDatacenter()); PeerAwareInstanceRegistry registry = getRegistry(); NutMap registryMap = NutMap.NEW() .setv("leaseExpirationEnabled", registry.isLeaseExpirationEnabled()) .setv("numOfRenewsPerMinThreshold", registry.getNumOfRenewsPerMinThreshold()) .setv("numOfRenewsInLastMin", registry.getNumOfRenewsInLastMin()) .setv("selfPreservationModeEnabled", registry.isSelfPreservationModeEnabled()); result.put("registry", registryMap); result.put("isBelowRenewThresold", registry.isBelowRenewThresold() == 1); DataCenterInfo info = getServerContext().getApplicationInfoManager() .getInfo() .getDataCenterInfo(); result.put("amazonInfo", false); if (info.getName() == DataCenterInfo.Name.Amazon) { AmazonInfo amazonInfo = (AmazonInfo) info; result.put("amazonInfo", true); result.put("amiId", amazonInfo.get(AmazonInfo.MetaDataKey.amiId)); result.put("availabilityZone", amazonInfo.get(AmazonInfo.MetaDataKey.availabilityZone)); result.put("instanceId", amazonInfo.get(AmazonInfo.MetaDataKey.instanceId)); } }