List of usage examples for com.amazonaws.services.cloudwatch.model MetricAlarm getInsufficientDataActions
public java.util.List<String> getInsufficientDataActions()
The actions to execute when this alarm transitions to the INSUFFICIENT_DATA
state from any other state.
From source file:com.netflix.spinnaker.clouddriver.ecs.provider.agent.EcsCloudMetricAlarmCachingAgent.java
License:Apache License
public static Map<String, Object> convertMetricAlarmToAttributes(MetricAlarm metricAlarm, String accountName, String region) {/*from w w w. j a va2 s .c om*/ Map<String, Object> attributes = new HashMap<>(); attributes.put("alarmArn", metricAlarm.getAlarmArn()); attributes.put("alarmName", metricAlarm.getAlarmName()); attributes.put("alarmActions", metricAlarm.getAlarmActions()); attributes.put("okActions", metricAlarm.getOKActions()); attributes.put("insufficientDataActions", metricAlarm.getInsufficientDataActions()); attributes.put("accountName", accountName); attributes.put("region", region); return attributes; }
From source file:com.netflix.spinnaker.clouddriver.ecs.services.EcsCloudMetricService.java
License:Apache License
public void deleteMetrics(String serviceName, String account, String region) { List<EcsMetricAlarm> metricAlarms = metricAlarmCacheClient.getMetricAlarms(serviceName, account, region); if (metricAlarms.isEmpty()) { return;//from ww w .ja va 2 s . c o m } AmazonCredentials credentials = (AmazonCredentials) accountCredentialsProvider.getCredentials(account); AmazonCloudWatch amazonCloudWatch = amazonClientProvider.getAmazonCloudWatch(account, credentials.getCredentialsProvider(), region); amazonCloudWatch.deleteAlarms(new DeleteAlarmsRequest() .withAlarmNames(metricAlarms.stream().map(MetricAlarm::getAlarmName).collect(Collectors.toSet()))); Set<String> resources = new HashSet<>(); // Stream and flatMap it? Couldn't figure out how. for (MetricAlarm metricAlarm : metricAlarms) { resources.addAll(buildResourceList(metricAlarm.getOKActions(), serviceName)); resources.addAll(buildResourceList(metricAlarm.getAlarmActions(), serviceName)); resources.addAll(buildResourceList(metricAlarm.getInsufficientDataActions(), serviceName)); } deregisterScalableTargets(resources, account, region); }
From source file:com.netflix.spinnaker.clouddriver.ecs.services.EcsCloudMetricService.java
License:Apache License
public void associateAsgWithMetrics(String account, String region, List<String> alarmNames, String serviceName, String resourceId) {// w ww .ja v a2s .c o m AmazonCredentials credentials = (AmazonCredentials) accountCredentialsProvider.getCredentials(account); AmazonCloudWatch cloudWatch = amazonClientProvider.getAmazonCloudWatch(account, credentials.getCredentialsProvider(), region); AWSApplicationAutoScaling autoScalingClient = amazonClientProvider.getAmazonApplicationAutoScaling(account, credentials.getCredentialsProvider(), region); DescribeAlarmsResult describeAlarmsResult = cloudWatch .describeAlarms(new DescribeAlarmsRequest().withAlarmNames(alarmNames)); for (MetricAlarm metricAlarm : describeAlarmsResult.getMetricAlarms()) { Set<String> okScalingPolicyArns = putScalingPolicies(autoScalingClient, metricAlarm.getOKActions(), serviceName, resourceId, "ok", "scaling-policy-" + metricAlarm.getAlarmName()); Set<String> alarmScalingPolicyArns = putScalingPolicies(autoScalingClient, metricAlarm.getAlarmActions(), serviceName, resourceId, "alarm", "scaling-policy-" + metricAlarm.getAlarmName()); Set<String> insufficientActionPolicyArns = putScalingPolicies(autoScalingClient, metricAlarm.getInsufficientDataActions(), serviceName, resourceId, "insuffiicient", "scaling-policy-" + metricAlarm.getAlarmName()); cloudWatch.putMetricAlarm(buildPutMetricAlarmRequest(metricAlarm, serviceName, insufficientActionPolicyArns, okScalingPolicyArns, alarmScalingPolicyArns)); } }