_executor.scheduleWithFixedDelay(new AutoScaleMonitor(), 15000L, autoScaleStatsInterval, TimeUnit.MILLISECONDS);
List<ConditionVO> lstConditions = getConditionsbyPolicyId(policyVO.getId()); if ((lstConditions != null) && (lstConditions.size() > 0)) {
for (AutoScaleVmGroupVO asGroup : asGroups) { if ((asGroup.getState().equals("enabled")) && (is_native(asGroup.getId()))) { List<Pair<String, Integer>> lstPair = getPairofCounternameAndDuration(asGroup.getId()); int total_counter = 0; String[] lstCounter = new String[lstPair.size()]; String counterName = getCounternamebyCondition(conditionId.longValue()); if (Counter.Source.memory.toString().equals(counterName)) { String scaleAction = getAutoscaleAction(avgCounter, asGroup.getId(), currentVM, params); if (scaleAction != null) { s_logger.debug("[AutoScale] Doing scale action: " + scaleAction + " for group " + asGroup.getId());
public List<Pair<String, Integer>> getPairofCounternameAndDuration(long groupId) { AutoScaleVmGroupVO groupVo = _asGroupDao.findById(groupId); if (groupVo == null) return null; List<Pair<String, Integer>> result = new ArrayList<Pair<String, Integer>>(); //list policy map List<AutoScaleVmGroupPolicyMapVO> groupPolicymap = _asGroupPolicyDao.listByVmGroupId(groupVo.getId()); if (groupPolicymap == null) return null; for (AutoScaleVmGroupPolicyMapVO gpMap : groupPolicymap) { //get duration AutoScalePolicyVO policyVo = _asPolicyDao.findById(gpMap.getPolicyId()); Integer duration = policyVo.getDuration(); //get collection of counter name StringBuffer buff = new StringBuffer(); List<AutoScalePolicyConditionMapVO> lstPCmap = _asConditionMapDao.findByPolicyId(policyVo.getId()); for (AutoScalePolicyConditionMapVO pcMap : lstPCmap) { String counterName = getCounternamebyCondition(pcMap.getConditionId()); buff.append(counterName); buff.append(","); buff.append(pcMap.getConditionId()); } // add to result Pair<String, Integer> pair = new Pair<String, Integer>(buff.toString(), duration); result.add(pair); } return result; }