Tin*_*lon 9 java amazon-ec2 amazon-web-services amazon-cloudwatch
我正在尝试使用Java SDK设置一些自定义AWS CloudWatch指标.
我似乎无法在描述如何获取某些数据的文档中找到任何内容,也不需要包含哪些数据.
MetricDatum datum = new MetricDatum()
.withDimensions(
new Dimension()
.withName("InstanceType").withValue(/* 1 */),
new Dimension()
.withName("InstanceId").withValue(/* 2 */)
/* 3 */
.withMetricName("My metric").withTimestamp(new Date())
.withUnit("Percent").withValue(new Double(55.0));
Run Code Online (Sandbox Code Playgroud)
所以,问题(对于上面代码中的每个注释数字):
对于#1,我已经看到我可以对http://169.254.169.254/latest/meta-data/instance-id进行常规HTTP调用以获取实例ID,但我希望这样做所有通过AWS SDK,如果有可用的方法.
我将问题发布到亚马逊支持团队.
的EC2文档给出了可以被调用以抓取一束元数据,包括InstanceType(问题1)的URL的列表,所述INSTANCEID(2问题),和安全组(问题3).
可以使用AWS SDK for Java获取自动扩展组,方法是获取所有自动扩展组的列表,然后遍历该列表,直到找到具有您自己的instanceId的实例(使用列出的URL检索)以上):
String instanceId = "Your-InstanceId";
AmazonAutoScalingClient amazonAutoScalingClient = new AmazonAutoScalingClient(new BasicAWSCredentials(accessKey, secretKey));
DescribeAutoScalingGroupsResult describeAutoScalingGroupsResult = amazonAutoScalingClient.describeAutoScalingGroups();
for(AutoScalingGroup autoScalingGroup : describeAutoScalingGroupsResult.getAutoScalingGroups()) {
for(Instance instance : autoScalingGroup.getInstances()) {
if(instance.getInstanceId().equals(instanceId)) {
return autoScalingGroup.getAutoScalingGroupName();
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3573 次 |
| 最近记录: |