Updated Branches:
  refs/heads/master 90236a71a -> d98f31e86

Implemented a new functionality to log inside drools files


Project: http://git-wip-us.apache.org/repos/asf/incubator-stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-stratos/commit/9113bc19
Tree: http://git-wip-us.apache.org/repos/asf/incubator-stratos/tree/9113bc19
Diff: http://git-wip-us.apache.org/repos/asf/incubator-stratos/diff/9113bc19

Branch: refs/heads/master
Commit: 9113bc190e106a9df5ad7fb18532772892d1127a
Parents: 22882d6
Author: Imesh Gunaratne <[email protected]>
Authored: Thu Dec 26 00:14:56 2013 +0530
Committer: Imesh Gunaratne <[email protected]>
Committed: Thu Dec 26 00:14:56 2013 +0530

----------------------------------------------------------------------
 .../rule/AutoscalerRuleEvaluator.java           |  2 +
 .../apache/stratos/autoscaler/rule/RuleLog.java | 55 ++++++++++++++++++++
 .../distribution/src/main/conf/mincheck.drl     |  8 ++-
 .../distribution/src/main/conf/scaling.drl      |  9 ++++
 4 files changed, 73 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9113bc19/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
index 789606f..21eedd5 100644
--- 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/AutoscalerRuleEvaluator.java
@@ -104,11 +104,13 @@ public class AutoscalerRuleEvaluator {
     public StatefulKnowledgeSession getMinCheckStatefulSession() {
         StatefulKnowledgeSession ksession;
         ksession = minCheckKbase.newStatefulKnowledgeSession();
+        ksession.setGlobal("log", RuleLog.getInstance());
         return ksession;
     }
     public StatefulKnowledgeSession getScaleCheckStatefulSession() {
         StatefulKnowledgeSession ksession;
         ksession = scaleCheckKbase.newStatefulKnowledgeSession();
+        ksession.setGlobal("log", RuleLog.getInstance());
         return ksession;
     }
 

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9113bc19/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleLog.java
----------------------------------------------------------------------
diff --git 
a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleLog.java
 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleLog.java
new file mode 100644
index 0000000..3cf21d2
--- /dev/null
+++ 
b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/rule/RuleLog.java
@@ -0,0 +1,55 @@
+package org.apache.stratos.autoscaler.rule;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+
+/**
+ * Drools rule log for logging inside rule files.
+ */
+public class RuleLog {
+    private static final Log log = LogFactory.getLog(RuleLog.class);
+
+    private static volatile RuleLog instance;
+
+    private RuleLog() {
+    }
+
+    public static RuleLog getInstance() {
+        if (instance == null) {
+            synchronized (RuleLog.class) {
+                if (instance == null) {
+                    instance = new RuleLog();
+                }
+            }
+        }
+        return instance;
+    }
+
+    public boolean info(String value) {
+        if(log.isInfoEnabled()) {
+            log.info(value);
+        }
+        return true;
+    }
+
+    public boolean debug(String value) {
+        if(log.isDebugEnabled()) {
+            log.debug(value);
+        }
+        return true;
+    }
+
+    public boolean warn(String value) {
+        if(log.isWarnEnabled()) {
+            log.warn(value);
+        }
+        return true;
+    }
+
+    public boolean error(String value) {
+        if(log.isErrorEnabled()) {
+            log.error(value);
+        }
+        return true;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9113bc19/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl
----------------------------------------------------------------------
diff --git 
a/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl 
b/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl
index bef3370..083d6b2 100755
--- a/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl
+++ b/products/autoscaler/modules/distribution/src/main/conf/mincheck.drl
@@ -40,7 +40,7 @@ import org.apache.stratos.autoscaler.partition.PartitionGroup;
 import org.apache.stratos.cloud.controller.deployment.partition.Partition;
 import org.apache.stratos.cloud.controller.pojo.MemberContext;
 
-
+global org.apache.stratos.autoscaler.rule.RuleLog log;
 global org.apache.stratos.autoscaler.policy.PolicyManager $manager;
 global org.apache.stratos.autoscaler.AutoscalerContext $context; 
 global org.apache.commons.logging.Log log;
@@ -53,7 +53,10 @@ global java.lang.String lbRef;
 rule "Minimum Rule"
 dialect "mvel"
        when
+           eval(log.debug("Running minimum rule"))
               $ctxt : PartitionContext ()
+              eval(log.debug("total member count: " + 
$ctxt.getTotalMemberCount()))
+              eval(log.debug("minimum member count: " + 
$ctxt.getMinimumMemberCount()))
               eval($ctxt.getTotalMemberCount() < $ctxt.getMinimumMemberCount())
 
        then
@@ -64,9 +67,12 @@ end
 rule "Terminate Obsoleted Instances"
 dialect "mvel"
         when
+            eval(log.debug("Running obsolete instances rule"))
             $ctxt : PartitionContext ()
+            eval(log.debug("obsolete member count: " + 
$ctxt.getObsoletedMembers().size()))
             eval($ctxt.getObsoletedMembers().size() > 0)
             memberId : String() from $ctxt.getObsoletedMembers()
+            eval(log.debug("member id: " + memberId))
             eval($ctxt.removeObsoleteMember(memberId))
         then
            $delegator.delegateTerminate(memberId);

http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/9113bc19/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 3e1fa9f..9f6eeed 100644
--- a/products/autoscaler/modules/distribution/src/main/conf/scaling.drl
+++ b/products/autoscaler/modules/distribution/src/main/conf/scaling.drl
@@ -45,6 +45,7 @@ import org.apache.stratos.cloud.controller.pojo.MemberContext;
 import org.apache.stratos.autoscaler.policy.model.LoadAverage
 import org.apache.stratos.autoscaler.policy.model.MemoryConsumption
 
+global org.apache.stratos.autoscaler.rule.RuleLog log;
 global org.apache.stratos.autoscaler.rule.RuleTasksDelegator $delegator;
 global org.apache.stratos.autoscaler.policy.model.AutoscalePolicy 
autoscalePolicy;
 global java.lang.String clusterId;
@@ -54,6 +55,7 @@ global java.lang.String lbRef;
 rule "Scaler-up Rule"
 dialect "mvel"
        when
+           eval(log.debug("Running scale up rule"))
         $networkPartitionContext : NetworkPartitionContext ()
         $loadThresholds : LoadThresholds() from  
autoscalePolicy.getLoadThresholds()
         autoscaleAlgorithm : AutoscaleAlgorithm() from  
$delegator.getAutoscaleAlgorithm($networkPartitionContext.getPartitionAlgorithm())
@@ -64,6 +66,9 @@ dialect "mvel"
 
         partition :  Partition() from 
autoscaleAlgorithm.getNextScaleUpPartition($networkPartitionContext, clusterId)
         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-up-factor: " + $delegator.SCALE_UP_FACTOR))
         eval(predictedValue > averageLimit * $delegator.SCALE_UP_FACTOR)
        then
 //         if (predictedValue*scaleUpFactor > averageLimit){
@@ -80,6 +85,7 @@ end
 rule "Scaler-down Rule"
 dialect "mvel"
        when
+           eval(log.debug("Running scale down rule"))
         $networkPartitionContext : NetworkPartitionContext ()
         $loadThresholds : LoadThresholds() from  
autoscalePolicy.getLoadThresholds()
         autoscaleAlgorithm : AutoscaleAlgorithm() from  
$delegator.getAutoscaleAlgorithm($networkPartitionContext.getPartitionAlgorithm())
@@ -90,6 +96,9 @@ dialect "mvel"
 
         partition :  Partition() from 
autoscaleAlgorithm.getNextScaleDownPartition($networkPartitionContext, 
clusterId)
         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)
        then
 

Reply via email to