in cloudwatch-lambda/src/main/java/com/amazonwebservices/blogs/containers/CloudWatchAlarmHandler.java [221:245]
private boolean isResourceCoolingDown (V1ObjectMeta metadata,
ComparisonOperator operator,
ScalingBehavior scaleUpBehavior,
ScalingBehavior scaleDownBehavior) {
Map<String, String> annotations = metadata.getAnnotations();
if (annotations.containsKey(ANNOTATION_ALARM_TRIGGER_TIME)) {
ScalingBehavior behavior = null;
if (Objects.equals(operator, ComparisonOperator.GreaterThanOrEqualToThreshold) ||
Objects.equals(operator, ComparisonOperator.GreaterThanThreshold)) {
behavior = scaleUpBehavior;
} else if (Objects.equals(operator, ComparisonOperator.LessThanOrEqualToThreshold) ||
Objects.equals(operator, ComparisonOperator.LessThanThreshold)) {
behavior = scaleDownBehavior;
}
DateTime currentTime = new DateTime();
String dateString = annotations.get(ANNOTATION_ALARM_TRIGGER_TIME);
DateTime lastScalingTime = dateTimeFormatter.parseDateTime(dateString);
long duration = new Duration (lastScalingTime, currentTime).getStandardSeconds();
long coolDownDuration = behavior.getCoolDown();
if (duration < coolDownDuration) return true;
}
return false;
}