You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/12/15 05:12:32 UTC
[3/3] stratos git commit: Adding scaling notification when max is hit
while scaling up
Adding scaling notification when max is hit while scaling up
Project: http://git-wip-us.apache.org/repos/asf/stratos/repo
Commit: http://git-wip-us.apache.org/repos/asf/stratos/commit/7698f29d
Tree: http://git-wip-us.apache.org/repos/asf/stratos/tree/7698f29d
Diff: http://git-wip-us.apache.org/repos/asf/stratos/diff/7698f29d
Branch: refs/heads/4.1.0-test
Commit: 7698f29dec98b52457c16e51e17a32aecca2e8ab
Parents: a33869f
Author: Lahiru Sandaruwan <la...@apache.org>
Authored: Mon Dec 15 09:44:35 2014 +0530
Committer: Lahiru Sandaruwan <la...@apache.org>
Committed: Mon Dec 15 09:44:35 2014 +0530
----------------------------------------------------------------------
.../autoscaler/monitor/cluster/VMClusterMonitor.java | 5 +++--
.../autoscaler/monitor/events/ScalingOverMaxEvent.java | 12 +-----------
.../events/builder/MonitorStatusEventBuilder.java | 4 ++--
.../stratos/autoscaler/rule/RuleTasksDelegator.java | 6 ++----
.../distribution/src/main/conf/drools/scaling.drl | 6 +++++-
5 files changed, 13 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/stratos/blob/7698f29d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
index 7401a3b..66a4837 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/cluster/VMClusterMonitor.java
@@ -453,9 +453,10 @@ public class VMClusterMonitor extends AbstractClusterMonitor {
MonitorStatusEventBuilder.handleClusterScalingEvent(this.parent, networkPartitionId, instanceId, factor, this.id, serviceType);
}
- public void sendScalingOverMaxEvent(String networkPartitionId, String instanceId, float factor) {
+ public void sendScalingOverMaxEvent(String networkPartitionId, String instanceId) {
- MonitorStatusEventBuilder.handleScalingOverMaxEvent(this.parent, networkPartitionId, instanceId, factor, this.id, serviceType);
+ MonitorStatusEventBuilder.handleScalingOverMaxEvent(this.parent, networkPartitionId, instanceId,
+ this.id, serviceType);
}
@Override
http://git-wip-us.apache.org/repos/asf/stratos/blob/7698f29d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ScalingOverMaxEvent.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ScalingOverMaxEvent.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ScalingOverMaxEvent.java
index d54cbb5..dc5409d 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ScalingOverMaxEvent.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/ScalingOverMaxEvent.java
@@ -23,25 +23,15 @@ package org.apache.stratos.autoscaler.monitor.events;
*/
public class ScalingOverMaxEvent extends MonitorEvent {
- private float factor;
private String networkPartitionId;
private String serviceName;
- public ScalingOverMaxEvent(String id, String networkPartitionId, String instanceId, float factor, String serviceName) {
+ public ScalingOverMaxEvent(String id, String networkPartitionId, String instanceId, String serviceName) {
super(id, instanceId);
- this.factor = factor;
this.networkPartitionId = networkPartitionId;
this.serviceName = serviceName;
}
- public float getFactor() {
- return factor;
- }
-
- public void setFactor(float factor) {
- this.factor = factor;
- }
-
public String getNetworkPartitionId() {
return networkPartitionId;
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7698f29d/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
----------------------------------------------------------------------
diff --git a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
index 913f71e..9915ae4 100644
--- a/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
+++ b/components/org.apache.stratos.autoscaler/src/main/java/org/apache/stratos/autoscaler/monitor/events/builder/MonitorStatusEventBuilder.java
@@ -63,11 +63,11 @@ public class MonitorStatusEventBuilder {
}
public static void handleScalingOverMaxEvent(ParentComponentMonitor parent,
- String networkPartitionId, String instanceId, float factor,
+ String networkPartitionId, String instanceId,
String appId, String serviceName) {
//Send notifications to parent of the cluster monitor
- ScalingOverMaxEvent scalingOverMaxEvent = new ScalingOverMaxEvent(appId, networkPartitionId, instanceId, factor,
+ ScalingOverMaxEvent scalingOverMaxEvent = new ScalingOverMaxEvent(appId, networkPartitionId, instanceId,
serviceName) ;
notifyParent(parent, scalingOverMaxEvent);
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7698f29d/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 02ab5f3..4a8ec87 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
@@ -324,19 +324,17 @@ public class RuleTasksDelegator {
}
- public void delegateScalingOverMaxNotification(String clusterId, String networkPartitionId, String instanceId,
- int requiredInstanceCount, int minimumInstanceCount) {
+ public void delegateScalingOverMaxNotification(String clusterId, String networkPartitionId, String instanceId) {
if(log.isDebugEnabled()) {
log.debug("Scaling dependent notification..");
}
//Notify parent for checking scaling dependencies
AbstractClusterMonitor clusterMonitor = AutoscalerContext.getInstance().getClusterMonitor(clusterId);
- float factor = requiredInstanceCount / minimumInstanceCount;
if (clusterMonitor instanceof VMClusterMonitor) {
VMClusterMonitor vmClusterMonitor = (VMClusterMonitor) clusterMonitor;
- vmClusterMonitor.sendClusterScalingEvent(networkPartitionId, instanceId, factor);
+ vmClusterMonitor.sendScalingOverMaxEvent(networkPartitionId, instanceId);
}
}
http://git-wip-us.apache.org/repos/asf/stratos/blob/7698f29d/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
----------------------------------------------------------------------
diff --git a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
index 96783dc..f03e830 100644
--- a/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
+++ b/products/stratos/modules/distribution/src/main/conf/drools/scaling.drl
@@ -150,7 +150,11 @@ dialect "mvel"
}
}
} else{
- log.info("[scale-up] Max is reached, hence not scaling up [cluster] " + clusterId + " [instance id]" + clusterInstanceContext.getId() + " [max] " + clusterInstanceContext.getMaxInstanceCount());
+ log.info("[scale-up] Max is reached, hence not scaling up cluster monitor itself. [cluster] " + clusterId + " [instance id]" + clusterInstanceContext.getId() + " [max] " + clusterInstanceContext.getMaxInstanceCount());
+ if(clusterInstanceContext.isInGroupScalingEnabledSubtree()){
+
+ delegator.delegateScalingOverMaxNotification(clusterId, clusterInstanceContext.getNetworkPartitionId(), clusterInstanceContext.getId());
+ }
}
} else if(scaleDown){