You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by im...@apache.org on 2013/12/27 06:05:40 UTC
git commit: Added more logs to scaling.drl file
Updated Branches:
refs/heads/master b3359961c -> 56878f061
Added more logs to scaling.drl file
Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/56878f06
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/56878f06
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/56878f06
Branch: refs/heads/master
Commit: 56878f061c3cc432b3a5bfc98ed86fd30cab3961
Parents: b335996
Author: Imesh Gunaratne <im...@apache.org>
Authored: Fri Dec 27 10:35:30 2013 +0530
Committer: Imesh Gunaratne <im...@apache.org>
Committed: Fri Dec 27 10:35:30 2013 +0530
----------------------------------------------------------------------
.../distribution/src/main/conf/scaling.drl | 64 ++++++++++++++------
1 file changed, 47 insertions(+), 17 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/56878f06/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 3782d66..eaf225a 100644
--- a/products/autoscaler/modules/distribution/src/main/conf/scaling.drl
+++ b/products/autoscaler/modules/distribution/src/main/conf/scaling.drl
@@ -56,7 +56,7 @@ rule "Scaler-up Rule"
dialect "mvel"
when
$networkPartitionContext : NetworkPartitionContext ()
- eval(log.debug("Running scale up rule: [network-partition] " + $networkPartitionContext.getId()))
+ eval(log.debug("Running scale up rule: [network-partition] " + $networkPartitionContext.getId() + " [cluster] " + clusterId))
$loadThresholds : LoadThresholds() from autoscalePolicy.getLoadThresholds()
algorithmName : String() from $networkPartitionContext.getPartitionAlgorithm();
eval(log.debug("algorithm name " + algorithmName))
@@ -68,14 +68,19 @@ dialect "mvel"
averageLimit : Float() from $loadThresholds.getRequestsInFlight().getAverage()
partition : Partition() from autoscaleAlgorithm.getNextScaleUpPartition($networkPartitionContext, clusterId)
+ eval(log.debug("[scale-up] [network-partition] " + $networkPartitionContext.getId() + " Partition is null: " + (partition == null)))
eval(partition != null)
predictedValue : Double() from $delegator.getPredictedValueForNextMinute(lbStatAverage, lbStatGradient, lbStatSecondDerivative, 1)
- eval(log.debug("predicted value: " + predictedValue))
- eval(log.debug("average limit: " + averageLimit))
- eval(log.debug("scale-up factor: " + $delegator.SCALE_UP_FACTOR))
- eval(predictedValue > averageLimit * $delegator.SCALE_UP_FACTOR)
+ scaleUpAction : Boolean() from (predictedValue > averageLimit * $delegator.SCALE_UP_FACTOR)
+
+ eval(log.debug("[scale-up] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Predicted value: " + predictedValue))
+ eval(log.debug("[scale-up] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Average limit: " + averageLimit))
+ eval(log.debug("[scale-up] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Scale-up factor: " + $delegator.SCALE_UP_FACTOR))
+ eval(log.debug("[scale-up] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Scale-up action: " + scaleUpAction))
+
+ eval(scaleUpAction)
then
- log.debug("scaling up");
+ log.debug(log.debug("[scale-up] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + cluster + " Scaling up cluster");
$delegator.delegateSpawn($networkPartitionContext.getPartitionCtxt(partition.getId()), clusterId, lbRef);
end
@@ -84,7 +89,7 @@ rule "Scaler-down Rule"
dialect "mvel"
when
$networkPartitionContext : NetworkPartitionContext ()
- eval(log.debug("Running scale down rule: [network-partition] " + $networkPartitionContext.getId()))
+ eval(log.debug("Running scale down rule: [network-partition] " + $networkPartitionContext.getId() + " [cluster] " + clusterId))
$loadThresholds : LoadThresholds() from autoscalePolicy.getLoadThresholds()
autoscaleAlgorithm : AutoscaleAlgorithm() from $delegator.getAutoscaleAlgorithm($networkPartitionContext.getPartitionAlgorithm())
lbStatAverage : Float() from $networkPartitionContext.getAverageRequestsInFlight()
@@ -93,12 +98,18 @@ dialect "mvel"
averageLimit : Float() from $loadThresholds.getRequestsInFlight().getAverage()
partition : Partition() from autoscaleAlgorithm.getNextScaleDownPartition($networkPartitionContext, clusterId)
+ eval(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " Partition is null: " + (partition == null)))
eval(partition != null)
predictedValue : Float() from $delegator.getPredictedValueForNextMinute(lbStatAverage, lbStatGradient, lbStatSecondDerivative, 1)
- eval(log.debug("predicted value: " + predictedValue))
- eval(log.debug("average limit: " + averageLimit))
- eval(log.debug("scale-down factor: " + $delegator.SCALE_DOWN_FACTOR))
- eval(predictedValue < averageLimit * $delegator.SCALE_DOWN_FACTOR)
+ scaleDown : Boolean() from (predictedValue < averageLimit * $delegator.SCALE_DOWN_FACTOR)
+
+ eval(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Predicted value: " + predictedValue))
+ eval(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Predicted value: " + predictedValue))
+ eval(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Average limit: " + averageLimit))
+ eval(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Scale-down factor: " + $delegator.SCALE_DOWN_FACTOR))
+ eval(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId + " Scale-down action: " + scaleDown))
+
+ eval(scaleDown)
then
MemberStatsContext selectedMemberStatsContext = null;
@@ -108,12 +119,25 @@ dialect "mvel"
for(MemberStatsContext memberStatsContext: partitionContext.getMemberStatsContexts().values()){
LoadAverage loadAverage = memberStatsContext.getLoadAverage();
+ log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId
+ + " [member] " + memberStatsContext.getMemberId() + " Load average: " + loadAverage.toString());
+
MemoryConsumption memoryConsumption = memberStatsContext.getMemoryConsumption();
- double predictedCpu
- = $delegator.getPredictedValueForNextMinute(loadAverage.getAverage(),loadAverage.getGradient(),loadAverage.getSecondDerivative(), 1);
- double predictedMemoryConsumption
- = $delegator.getPredictedValueForNextMinute(memoryConsumption.getAverage(),memoryConsumption.getGradient(),memoryConsumption.getSecondDerivative(), 1);
+ log.debug(log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId
+ + " [member] " + memberStatsContext.getMemberId() + " Memory consumption: " + memoryConsumption.toString()));
+
+ double predictedCpu = $delegator.getPredictedValueForNextMinute(loadAverage.getAverage(),loadAverage.getGradient(),loadAverage.getSecondDerivative(), 1);
+ log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId
+ + " [member] " + memberStatsContext.getMemberId() + " Predicted CPU: " + predictedCpu);
+
+ double predictedMemoryConsumption = $delegator.getPredictedValueForNextMinute(memoryConsumption.getAverage(),memoryConsumption.getGradient(),memoryConsumption.getSecondDerivative(), 1);
+ log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId
+ + " [member] " + memberStatsContext.getMemberId() + " Predicted memory consumption: " + predictedMemoryConsumption);
+
double overallLoad = (predictedCpu + predictedMemoryConsumption) / 2;
+ log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId
+ + " [member] " + memberStatsContext.getMemberId() + " Overall load: " + overallLoad);
+
if(!foundAValue){
foundAValue = true;
selectedMemberStatsContext = memberStatsContext;
@@ -123,11 +147,17 @@ dialect "mvel"
lowestOverallLoad = overallLoad;
}
-
+ if(selectedMemberStatsContext != null) {
+ log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId +
+ + " Member with lowest overall load: " + memberStatsContext.getMemberId());
+ }
}
}
- if(selectedMemberStatsContext != null)
+ if(selectedMemberStatsContext != null) {
+ log.debug("[scale-down] [network-partition] " + $networkPartitionContext.getId() + " [partition]" + partition.getId() + " [cluster] " + clusterId +
+ + " Terminating member: " + memberStatsContext.getMemberId());
$delegator.delegateTerminate(selectedMemberStatsContext.getMemberId());
+ }
end