实例名称

时间:2015-11-08 07:11:38

标签: aws-sdk amazon-cloudwatch cloudwatch

我正在尝试对实例的cpu使用情况发出警报,有些实例是常规ec2,有些实例是自动调节。 我正在寻找某种可以按标签过滤实例的度量标准/维度:名称。 是否有可能,如果是,如何?如果不是,我怎么能用不同的方式制作呢? 谢谢,

2 个答案:

答案 0 :(得分:0)

据我所知,tag不是EC2维度的一部分。 EC2的尺寸为:
AWS EC2 Dimensions and Metrics

我能想到的一个解决方案是:
1)使用awscli命令 Describe-Instances 使用标记过滤器获取相关实例。如果您不想查看所有字段,也可以过滤输出。但是,至少保留基本信息,如instance-id,tag,instancetype等。您还可以使用任何语言AWS SDK API来实现相同的功能。
2)然后使用list-metrics获取实例指标。这将返回所有实例。
3)现在只使用你在1)中获得的实例的指标。您可以使用instance-id进行比较。这是列表上的循环1)并使用instance-id将项目与2)中的项目进行比较。如果匹配则显示信息。你可以将2)的结果放在一个字典中以使事情变得快,即O(n)而不是O(n ^ 2)。

如果有人可以提供更好的解决方案,那就很好。

答案 1 :(得分:0)

您可以按名称进行过滤,即使实例ID由于自动缩放而发生更改,它们仍然可以使用。我看不到您使用的是哪种语言,但是在Java中会是这样。

// Create custom filter e.g name

Filter filterByName = new Filter();
filterByName.withName("tag:Name").withValues("Instance_1");

// Create Describe Instances Request
DescribeInstancesRequest instanceRequest = new DescribeInstancesRequest()
        .withFilters(
          filterByName);

请注意,当您使用自定义过滤器(例如名称)时,必须使用如上所示的tag关键字。 AWS确实内置了称为资源属性的过滤器,可以在this链接上看到。但是,如果实例由于自动缩放而动态变化,我建议按名称进行。 blog post可能对您有用。