Updated Branches: refs/heads/master b8d7d0c59 -> 1aded3057
Adjusting logs and cleaning comments Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/1aded305 Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/1aded305 Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/1aded305 Branch: refs/heads/master Commit: 1aded3057e8499dbc37bc000437cb50d47007617 Parents: b8d7d0c Author: Lahiru Sandaruwan <[email protected]> Authored: Mon Jan 13 12:20:59 2014 +0530 Committer: Lahiru Sandaruwan <[email protected]> Committed: Mon Jan 13 12:20:59 2014 +0530 ---------------------------------------------------------------------- .../autoscaler/algorithm/OneAfterAnother.java | 23 +- .../autoscaler/algorithm/RoundRobin.java | 16 +- .../health/AutoscalerHealthStatReceiver.java | 496 +++---------------- .../autoscaler/rule/RuleTasksDelegator.java | 3 - .../distribution/src/main/conf/scaling.drl | 7 +- 5 files changed, 78 insertions(+), 467 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1aded305/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java index 1d69cbd..985814e 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/OneAfterAnother.java @@ -60,16 +60,12 @@ public class OneAfterAnother implements AutoscaleAlgorithm { Partition currentPartition = (Partition) partitions.get(currentPartitionIndex); String currentPartitionId = currentPartition.getId(); -// if (networkPartitionContext.partitionCountExists(currentPartitionId)) { -// networkPartitionContext.addPartitionCount(currentPartitionId, 0); -// } - if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) < currentPartition.getPartitionMax()) { // current partition is free -// networkPartitionContext.increaseMemberCountOfPartition(currentPartitionId, 1); if (log.isDebugEnabled()) - log.debug("Free space found in partition " + currentPartition.getId()); - + log.debug(String.format("A free space found for scale down in partition %s [current] %s [max] %s", + currentPartitionId, networkPartitionContext.getMemberCountOfPartition(currentPartitionId), + currentPartition.getPartitionMax())) ; return currentPartition; } else { // last partition is reached which is not free @@ -85,7 +81,7 @@ public class OneAfterAnother implements AutoscaleAlgorithm { } if (log.isDebugEnabled()) - log.debug("No free partition found at network partition " + networkPartitionContext); + log.debug(String.format("No free partition found at network partition %s" , networkPartitionContext)); } catch (Exception e) { log.error("Could not find next scale up partition", e); } @@ -106,15 +102,18 @@ public class OneAfterAnother implements AutoscaleAlgorithm { // has more than minimum instances. if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) > currentPartition.getPartitionMin()) { // current partition is free -// networkPartitionContext.decreaseMemberCountOfPartition(currentPartitionId, 1); if (log.isDebugEnabled()) - log.debug("A free space found for scale down in partition" + - currentPartition.getId()); + log.debug(String.format("A free space found for scale down in partition %s [current] %s [min] %s", + currentPartitionId, networkPartitionContext.getMemberCountOfPartition(currentPartitionId), + currentPartition.getPartitionMin())) ; return currentPartition; } else { if (currentPartitionIndex == 0) { if (log.isDebugEnabled()) - log.debug("First partition reached with no space to scale down"); + log.debug(String.format("Partition %s reached with no space to scale down," + + "[current] %s [mib] %s", currentPartitionId, + networkPartitionContext.getMemberCountOfPartition(currentPartitionId), + currentPartition.getPartitionMin())); return null; } // Set next partition as current partition in Autoscaler Context http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1aded305/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java index 8bf14d6..48912c8 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/algorithm/RoundRobin.java @@ -54,16 +54,9 @@ public class RoundRobin implements AutoscaleAlgorithm{ // point to next partition int nextPartitionIndex = currentPartitionIndex == noOfPartitions - 1 ? 0 : currentPartitionIndex+1; networkPartitionContext.setCurrentPartitionIndex(nextPartitionIndex); - - // current partition has no partitionid-instanceid info in cluster context -// if(!networkPartitionContext.partitionCountExists(currentPartitionId)) -// AutoscalerContext.getInstance().getMonitor(clusterId) -// .getNetworkPartitionCtxt(networkPartitionContext.getId()) -// .addPartitionCount(currentPartitionId, 0); - + if(networkPartitionContext.getMemberCountOfPartition(currentPartitionId) < currentPartition.getPartitionMax()){ - // current partition is free -// networkPartitionContext.increaseMemberCountOfPartition(currentPartitionId, 1); + // current partition is free if(log.isDebugEnabled()) log.debug("Free space found in partition " + currentPartition.getId()); return currentPartition; @@ -108,14 +101,9 @@ public class RoundRobin implements AutoscaleAlgorithm{ Partition currentPartition = (Partition) partitions.get(currentPartitionIndex); String currentPartitionId = currentPartition.getId(); -// if (!networkPartitionContext.partitionCountExists(currentPartitionId)) -// AutoscalerContext.getInstance().getMonitor(clusterId) -// .getNetworkPartitionCtxt(networkPartitionContext.getId()) -// .addPartitionCount(currentPartitionId, 0); // has more than minimum instances. if (networkPartitionContext.getMemberCountOfPartition(currentPartitionId) > currentPartition.getPartitionMin()) { // current partition is free -// networkPartitionContext.decreaseMemberCountOfPartition(currentPartitionId, 1); if (log.isDebugEnabled()) { log.debug("Returning partition for scaling down " + currentPartition.getId()); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1aded305/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java index 25cbcef..db71f57 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/message/receiver/health/AutoscalerHealthStatReceiver.java @@ -56,370 +56,6 @@ public class AutoscalerHealthStatReceiver implements Runnable { public AutoscalerHealthStatReceiver() { this.healthStatReceiver = new HealthStatReceiver(createMessageDelegator()); } -// @Override -// public void run() { -// if(log.isInfoEnabled()) { -// log.info("Health event message delegator started"); -// } -// -// if(log.isDebugEnabled()) { -// log.debug("Waiting for topology to be initialized"); -// } -// while(!TopologyManager.getTopology().isInitialized()); -// -// while (!terminate) { -// try { -// TextMessage message = HealthStatEventMessageQueue.getInstance().take(); -// -// String messageText = message.getText(); -// if (log.isDebugEnabled()) { -// log.debug("Health event message received: [message] " + messageText); -// } -// Event event = jsonToEvent(messageText); -// String eventName = event.getEventName(); -// -// if (log.isInfoEnabled()) { -// log.info(String.format("Received event: [event-name] %s", eventName)); -// } -// -// if (Constants.AVERAGE_REQUESTS_IN_FLIGHT.equals(eventName)) { -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setAverageRequestsInFlight(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// -// } else if (Constants.GRADIENT_OF_REQUESTS_IN_FLIGHT.equals(eventName)) { -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setRequestsInFlightGradient(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// -// } else if (Constants.SECOND_DERIVATIVE_OF_REQUESTS_IN_FLIGHT.equals(eventName)) { -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setRequestsInFlightSecondDerivative(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } else if (Constants.MEMBER_FAULT_EVENT_NAME.equals(eventName)) { -// String clusterId = event.getProperties().get("cluster_id"); -// String memberId = event.getProperties().get("member_id"); -// -// if (memberId == null || memberId.isEmpty()) { -// if(log.isErrorEnabled()) { -// log.error("Member id not found in received message"); -// } -// } else { -// handleMemberFaultEvent(clusterId, memberId); -// } -// } else if(Constants.MEMBER_AVERAGE_LOAD_AVERAGE.equals(eventName)) { -// LoadAverage loadAverage = findLoadAverage(event); -// if(loadAverage != null) { -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// loadAverage.setAverage(floatValue); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [member] %s [value] %s", event, event.getProperties().get("member_id"), value)); -// } -// } -// } else if(Constants.MEMBER_SECOND_DERIVATIVE_OF_LOAD_AVERAGE.equals(eventName)) { -// LoadAverage loadAverage = findLoadAverage(event); -// if(loadAverage != null) { -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// loadAverage.setSecondDerivative(floatValue); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [member] %s [value] %s", event, event.getProperties().get("member_id"), value)); -// } -// } -// } else if(Constants.MEMBER_GRADIENT_LOAD_AVERAGE.equals(eventName)) { -// LoadAverage loadAverage = findLoadAverage(event); -// if(loadAverage != null) { -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// loadAverage.setGradient(floatValue); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [member] %s [value] %s", event, event.getProperties().get("member_id"), value)); -// } -// } -// } else if(Constants.MEMBER_AVERAGE_MEMORY_CONSUMPTION.equals(eventName)) { -// MemoryConsumption memoryConsumption = findMemoryConsumption(event); -// if(memoryConsumption != null) { -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// memoryConsumption.setAverage(floatValue); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [member] %s [value] %s", event, event.getProperties().get("member_id"), value)); -// } -// } -// } else if(Constants.MEMBER_SECOND_DERIVATIVE_OF_MEMORY_CONSUMPTION.equals(eventName)) { -// MemoryConsumption memoryConsumption = findMemoryConsumption(event); -// if(memoryConsumption != null) { -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// memoryConsumption.setSecondDerivative(floatValue); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [member] %s [value] %s", event, event.getProperties().get("member_id"), value)); -// } -// } -// } else if(Constants.MEMBER_GRADIENT_MEMORY_CONSUMPTION.equals(eventName)) { -// MemoryConsumption memoryConsumption = findMemoryConsumption(event); -// if(memoryConsumption != null) { -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// memoryConsumption.setGradient(floatValue); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [member] %s [value] %s",event, event.getProperties().get("member_id"), value)); -// } -// } -// -// } else if(Constants.AVERAGE_LOAD_AVERAGE.equals(eventName)) { -// -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setAverageLoadAverage(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } else if(Constants.SECOND_DERIVATIVE_OF_LOAD_AVERAGE.equals(eventName)) { -// -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setLoadAverageSecondDerivative(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } else if(Constants.GRADIENT_LOAD_AVERAGE.equals(eventName)) { -// -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setLoadAverageGradient(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } else if(Constants.AVERAGE_MEMORY_CONSUMPTION.equals(eventName)) { -// -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setAverageMemoryConsumption(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } else if(Constants.SECOND_DERIVATIVE_OF_MEMORY_CONSUMPTION.equals(eventName)) { -// -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setMemoryConsumptionSecondDerivative(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } else if(Constants.GRADIENT_MEMORY_CONSUMPTION.equals(eventName)) { -// -// String clusterId = event.getProperties().get("cluster_id"); -// String networkPartitionId = event.getProperties().get("network_partition_id"); -// String value = event.getProperties().get("value"); -// Float floatValue = Float.parseFloat(value); -// -// if (log.isDebugEnabled()) { -// log.debug(String.format("%s event: [cluster] %s [network-partition] %s [value] %s", eventName, -// clusterId, networkPartitionId, value)); -// } -// AbstractMonitor monitor = AutoscalerContext.getInstance().getMonitor(clusterId); -// if(null != monitor){ -// NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); -// if(null != networkPartitionContext){ -// networkPartitionContext.setMemoryConsumptionGradient(floatValue); -// } else { -// if(log.isErrorEnabled()) { -// log.error(String.format("Network partition context is not available for :" + -// " [network partition] %s", networkPartitionId)); -// } -// } -// } else { -// -// if(log.isErrorEnabled()) { -// log.error(String.format("Cluster monitor is not available for : [cluster] %s", clusterId)); -// } -// } -// } -// } catch (Exception e) { -// log.error("Failed to retrieve the health stat event message.", e); -// } -// } -// log.warn("Health event Message delegater is terminated"); -// } -// @Override public void run() { @@ -470,19 +106,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setAverageLoadAverage(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -513,11 +148,10 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ @@ -525,8 +159,8 @@ public class AutoscalerHealthStatReceiver implements Runnable { if(null != networkPartitionContext){ networkPartitionContext.setAverageMemoryConsumption(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -556,19 +190,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setAverageRequestsInFlight(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -597,19 +230,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setLoadAverageGradient(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -639,19 +271,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; }; if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setMemoryConsumptionGradient(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -680,19 +311,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setRequestsInFlightGradient(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -839,19 +469,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setLoadAverageSecondDerivative(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -881,19 +510,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setMemoryConsumptionSecondDerivative(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -922,19 +550,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } if(null != monitor){ NetworkPartitionContext networkPartitionContext = monitor.getNetworkPartitionCtxt(networkPartitionId); if(null != networkPartitionContext){ networkPartitionContext.setRequestsInFlightSecondDerivative(floatValue); } else { - if(log.isErrorEnabled()) { - log.error(String.format("Network partition context is not available for :" + + if(log.isDebugEnabled()) { + log.debug(String.format("Network partition context is not available for :" + " [network partition] %s", networkPartitionId)); } } @@ -967,19 +594,18 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return null; } String networkPartitionId = findNetworkPartitionId(memberId); MemberStatsContext memberStatsContext = monitor.getNetworkPartitionCtxt(networkPartitionId) .getPartitionCtxt(member.getPartitionId()) .getMemberStatsContext(memberId); if(null == memberStatsContext){ - if(log.isErrorEnabled()) { - log.error(String.format("Member context is not available for : [member] %s", memberId)); + if(log.isDebugEnabled()) { + log.debug(String.format("Member context is not available for : [member] %s", memberId)); } return null; } @@ -1000,8 +626,8 @@ public class AutoscalerHealthStatReceiver implements Runnable { Member member = findMember(memberId); if(null == member){ - if(log.isErrorEnabled()) { - log.error(String.format("Member not found in the Topology : [member] %s", memberId)); + if(log.isDebugEnabled()) { + log.debug(String.format("Member not found in the Topology : [member] %s", memberId)); } return null; } @@ -1011,8 +637,8 @@ public class AutoscalerHealthStatReceiver implements Runnable { monitor = AutoscalerContext.getInstance().getLBMonitor(member.getClusterId()); if(null == monitor){ - if(log.isErrorEnabled()) { - log.error(String.format("Cluster monitor is not available for : [member] %s", memberId)); + if(log.isDebugEnabled()) { + log.debug(String.format("Cluster monitor is not available for : [member] %s", memberId)); } } return null; @@ -1023,8 +649,8 @@ public class AutoscalerHealthStatReceiver implements Runnable { .getPartitionCtxt(member.getPartitionId()) .getMemberStatsContext(memberId); if(null == memberStatsContext){ - if(log.isErrorEnabled()) { - log.error(String.format("Member context is not available for : [member] %s", memberId)); + if(log.isDebugEnabled()) { + log.debug(String.format("Member context is not available for : [member] %s", memberId)); } return null; }else if(!member.isActive()){ @@ -1077,11 +703,10 @@ public class AutoscalerHealthStatReceiver implements Runnable { }else if(asCtx.lbMoniterExist(clusterId)){ monitor = asCtx.getLBMonitor(clusterId); }else{ - String errMsg = "A monitor is not found for this cluster"; - if(log.isErrorEnabled()){ - log.error(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); + if(log.isDebugEnabled()){ + log.debug(String.format("A cluster monitor is not found in autoscaler context [cluster] %s", clusterId)); } - throw new RuntimeException(errMsg); + return; } NetworkPartitionContext nwPartitionCtxt; @@ -1119,7 +744,8 @@ public class AutoscalerHealthStatReceiver implements Runnable { if (log.isInfoEnabled()) { log.info(String.format("Instance spawned for fault member: [partition] %s [cluster] %s [lb cluster] %s ", partitionId, clusterId, lbClusterId)); - } + } + } catch (TerminationException e) { log.error(e); http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1aded305/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java ---------------------------------------------------------------------- diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java index fe83a4e..c92955c 100644 --- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java +++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleTasksDelegator.java @@ -33,9 +33,6 @@ public class RuleTasksDelegator { } predictedValue = average + gradient * timeInterval + 0.5 * secondDerivative * timeInterval * timeInterval; - if(log.isDebugEnabled()){ - log.debug(String.format("Predicted value: %s ", predictedValue)); - } return predictedValue; } http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/1aded305/products/autoscaler/modules/distribution/src/main/conf/scaling.drl ---------------------------------------------------------------------- diff --git a/products/autoscaler/modules/distribution/src/main/conf/scaling.drl b/products/autoscaler/modules/distribution/src/main/conf/scaling.drl index 3e4aded..62136c4 100644 --- a/products/autoscaler/modules/distribution/src/main/conf/scaling.drl +++ b/products/autoscaler/modules/distribution/src/main/conf/scaling.drl @@ -109,7 +109,7 @@ dialect "mvel" Partition partition = autoscaleAlgorithm.getNextScaleUpPartition($networkPartitionContext, clusterId); if(partition != null){ - log.debug("[scaling up] Partition available to scale up "); + log.info("[scale-up] Partition available, hence trying to spawn an instance to scale up!" ); log.debug("[scaling up] " + " [partition] " + partition.getId() + " [cluster] " + clusterId); $delegator.delegateSpawn($networkPartitionContext.getPartitionCtxt(partition.getId()), clusterId, lbRef); } @@ -120,7 +120,7 @@ dialect "mvel" boolean foundAValue = false; Partition partition = autoscaleAlgorithm.getNextScaleDownPartition($networkPartitionContext, clusterId); if(partition != null){ - log.debug("[scaling down] Partition available to scale up "); + log.info("[scaling down] Partition available to scale down "); log.debug("[scaling down] " + " [partition] " + partition.getId() + " [cluster] " + clusterId); partitionContext = $networkPartitionContext.getPartitionCtxt(partition.getId()); @@ -156,6 +156,7 @@ dialect "mvel" } } if(selectedMemberStatsContext != null) { + log.info("[scale-down] Trying to terminating an instace to scale down!" ); log.debug("[scale-down] " + " [partition] " + partition.getId() + " [cluster] " + clusterId + " Member with lowest overall load: " + selectedMemberStatsContext.getMemberId()); @@ -163,7 +164,7 @@ dialect "mvel" } } } else{ - log.debug("[scaling] No decision made to scale up or down ... "); + log.debug("[scaling] No decision made to either scale up or scale down ... "); }
