Example usage for com.amazonaws.services.cloudwatch.model MetricAlarm getInsufficientDataActions

List of usage examples for com.amazonaws.services.cloudwatch.model MetricAlarm getInsufficientDataActions

Introduction

In this page you can find the example usage for com.amazonaws.services.cloudwatch.model MetricAlarm getInsufficientDataActions.

Prototype


public java.util.List<String> getInsufficientDataActions() 

Source Link

Document

The actions to execute when this alarm transitions to the INSUFFICIENT_DATA state from any other state.

Usage

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));
    }
}