List of usage examples for com.amazonaws.services.autoscaling.model AutoScalingInstanceDetails getAutoScalingGroupName
public String getAutoScalingGroupName()
The name of the Auto Scaling group for the instance.
From source file:com.netflix.simianarmy.aws.janitor.crawler.InstanceJanitorCrawler.java
License:Apache License
private String getAsgName(Resource instanceResource, Map<String, AutoScalingInstanceDetails> idToASGInstance) { String asgName = instanceResource.getTag("aws:autoscaling:groupName"); if (asgName == null) { // At most times the aws:autoscaling:groupName tag has the ASG name, but there are cases // that the instance is not correctly tagged and we can find the ASG name from AutoScaling // service. AutoScalingInstanceDetails instanceDetails = idToASGInstance.get(instanceResource.getId()); if (instanceDetails != null) { asgName = instanceDetails.getAutoScalingGroupName(); }/*from w w w.java 2 s.co m*/ } return asgName; }
From source file:com.pinterest.arcee.autoscaling.AwsAutoScalingManager.java
License:Apache License
@Override public Collection<String> getAutoScalingInstances(String groupName, Collection<String> hostIds) throws Exception { Collection<String> asgHostIds = new ArrayList<>(); DescribeAutoScalingInstancesRequest asgInstancesRequest = new DescribeAutoScalingInstancesRequest(); asgInstancesRequest.setInstanceIds(hostIds); DescribeAutoScalingInstancesResult asgInstancesResult = aasClient .describeAutoScalingInstances(asgInstancesRequest); List<AutoScalingInstanceDetails> instanceDetails = asgInstancesResult.getAutoScalingInstances(); for (AutoScalingInstanceDetails instanceDetail : instanceDetails) { if (instanceDetail.getAutoScalingGroupName().equals(groupName)) { asgHostIds.add(instanceDetail.getInstanceId()); }//from w ww . ja va 2 s . c o m } return asgHostIds; }
From source file:com.pinterest.clusterservice.cm.AwsVmManager.java
License:Apache License
@Override public Collection<String> getHosts(String clusterName, Collection<String> hostIds) throws Exception { Collection<String> asgHostIds = new ArrayList<>(); if (hostIds == null || hostIds.isEmpty()) { AutoScalingGroup group = getAutoScalingGroup(clusterName); List<Instance> asgInstances = group.getInstances(); for (Instance asgInstance : asgInstances) { asgHostIds.add(asgInstance.getInstanceId()); }/*w w w . j a v a2 s . c om*/ } else { DescribeAutoScalingInstancesRequest asgInstancesRequest = new DescribeAutoScalingInstancesRequest(); asgInstancesRequest.setInstanceIds(hostIds); DescribeAutoScalingInstancesResult asgInstancesResult = aasClient .describeAutoScalingInstances(asgInstancesRequest); List<AutoScalingInstanceDetails> instanceDetails = asgInstancesResult.getAutoScalingInstances(); for (AutoScalingInstanceDetails instanceDetail : instanceDetails) { if (instanceDetail.getAutoScalingGroupName().equals(clusterName)) { asgHostIds.add(instanceDetail.getInstanceId()); } } } return asgHostIds; }
From source file:de.tuhrig.deployman.launch.Launcher.java
/** * Starts a auto scaling launch configuration. This method is a little but complicated, since the * process to start a auto scaling configuration involves some steps: - create a launch * configuration which defines the machines to start - create an auto scaling definition which * defines how many machines should be started if something happens. - create an auto scaling * policy to which we add a metric - create the metric which is checked by the auto scaling - * print the starting instances/*from ww w.j a v a 2s .c o m*/ */ private List<Instance> runAutoScalingLaunch(Formation formation) { this.console.write("Run auto scaling..."); Machine machine = formation.getMachine(); Scaling scaling = machine.getScaling(); AmazonAutoScalingClient autoScaling = new AutoScaling().getClient(); try { CreateLaunchConfigurationRequest request = createLaunchConfigurationRequest(formation); autoScaling.createLaunchConfiguration(request); this.console.write("Created launch configuration " + scaling.getName()); } catch (AlreadyExistsException e) { this.console.write("Launch configuration " + scaling.getName() + " already exists"); //$NON-NLS-2$ } // // // try { CreateAutoScalingGroupRequest request = createAutoScalingRequest(scaling); autoScaling.createAutoScalingGroup(request); this.console.write("Created auto scaling group " + scaling.getGroup()); } catch (AlreadyExistsException e) { this.console.write("Auto scaling group " + scaling.getGroup() + " already exists"); //$NON-NLS-2$ } // // // PutScalingPolicyRequest request = new PutScalingPolicyRequest().withAutoScalingGroupName(scaling.getGroup()) .withPolicyName(scaling.getPolicy()).withScalingAdjustment(1) .withAdjustmentType("ChangeInCapacity"); PutScalingPolicyResult result = autoScaling.putScalingPolicy(request); this.console.write("Put scaling policy " + scaling.getPolicy()); // // // // Scale Up Dimension dimension = new Dimension().withName("AutoScalingGroupName").withValue(scaling.getGroup()); List<String> actions = new ArrayList<>(); actions.add(result.getPolicyARN()); PutMetricAlarmRequest upRequest = new PutMetricAlarmRequest().withAlarmName(scaling.getAlarm()) .withMetricName("CPUUtilization").withDimensions(dimension).withNamespace("AWS/EC2") .withComparisonOperator(ComparisonOperator.GreaterThanThreshold).withStatistic(Statistic.Average) .withUnit(StandardUnit.Percent).withThreshold(60d).withPeriod(300).withEvaluationPeriods(2) .withAlarmActions(actions); AmazonCloudWatchClient cloudWatch = new CloudWatch().getClient(); cloudWatch.putMetricAlarm(upRequest); this.console.write("Put alarm " + scaling.getAlarm()); this.console.newLine(); List<Instance> instances = new ArrayList<>(); for (AutoScalingInstanceDetails instance : autoScaling.describeAutoScalingInstances() .getAutoScalingInstances()) { if (instance.getAutoScalingGroupName().equals(scaling.getGroup())) { instances.add(new Ec2().getEC2InstanceById(instance.getInstanceId())); } } return instances; }
From source file:dsmwatcher.DSMWatcher.java
License:Open Source License
public void handleAutoScaledInstance(Instance instance) throws Exception { AmazonAutoScalingClient as = new AmazonAutoScalingClient().withRegion(region); DescribeAutoScalingInstancesResult describeResult = as.describeAutoScalingInstances( new DescribeAutoScalingInstancesRequest().withInstanceIds(instance.getInstanceId())); if (describeResult.getAutoScalingInstances().size() == 0) { return;//from w w w.ja v a 2 s .co m } AutoScalingInstanceDetails instanceDetails = describeResult.getAutoScalingInstances().get(0); DetachInstancesRequest detachRequest = new DetachInstancesRequest() .withInstanceIds(instanceDetails.getInstanceId()) .withAutoScalingGroupName(instanceDetails.getAutoScalingGroupName()) .withShouldDecrementDesiredCapacity(false); as.detachInstances(detachRequest); }