Nirmal Fernando created STRATOS-645: ---------------------------------------
Summary: Allowing users to configure an upper and a lower limit of threshold values Key: STRATOS-645 URL: https://issues.apache.org/jira/browse/STRATOS-645 Project: Stratos Issue Type: Improvement Components: Autoscaler Affects Versions: 4.0.0 Reporter: Nirmal Fernando Assignee: Nirmal Fernando Fix For: 4.1.0 Current auto-scaler takes only the 'average' threshold value from a user's auto-scaling policy. Then inside the scaling related drools rules it calculates an upper bound and a lower bound by multiplying the average threshold value by two non-configurable constants. scaleUp : Boolean() from ((rifReset && (rifPredictedValue > rifAverageLimit * 0.8)) || (mcReset && (mcPredictedValue > mcAverageLimit * 0.8)) || (laReset && (laPredictedValue > laAverageLimit * 0.8))) scaleDown : Boolean() from ((rifReset && (rifPredictedValue < rifAverageLimit * 0.1)) && (mcReset && (mcPredictedValue < mcAverageLimit * 0.1)) && (laReset && (laPredictedValue < laAverageLimit * 0.1))) IMO this is a limitation and we could make these constants configurable via auto-scaling policy. So, I propose following format to the auto-scaling policy: { "id": "autoscale-policy-1", "loadThresholds": { "requestsInFlight": { "upperLimit": 30, "lowerLimit": 5 }, "memoryConsumption": { "upperLimit": 80, "lowerLimit": 50 }, "loadAverage": { "upperLimit": 100, "lowerLimit": 20 } } } Then, we can modify the rule to consider user-defined threshold values when taking the scaling decision. -- This message was sent by Atlassian JIRA (v6.2#6252)