【发布时间】:2016-05-13 20:04:33
【问题描述】:
我正在尝试创建一份关于一段时间内我们的 EC2 实例使用情况和利用率的报告。我想检查过去 X 天内在我的环境中运行或已经运行的所有实例。作为报告的一部分,我想包括在扩展组扩展期间创建但后来随着组扩展而终止的实例。
使用带有boto3 的简单python 脚本,我可以获得一个区域的实例列表:
session = Session(aws_access_key_id=AWS_ACCESS_KEY_ID, aws_secret_access_key=AWS_SECRET_ACCESS_KEY, region_name=self.name)
ec2 = session.resource('ec2')
cloudwatch = session.resource('cloudwatch')
通过使用以下命令列出实例,几个小时后我看不到终止的实例(可能与您在仪表板中停止看到它们的时间相同):
ec2.instances.all()
使用 cloudwatch,当我使用以下命令时,我确实看到了终止实例的指标:
metric = cloudwatch.Metric('AWS/EC2', 'CPUUtilization')
result = metric.get_statistics(
Dimensions=[{'Name': 'InstanceId', 'Value': instanceId}],
StartTime=timeRange.start,
EndTime=timeRange.end,
Period=300,
Statistics=['Average'],
) # This returns a complete list of data points for the instance was live
这意味着终止实例的指标确实存在,但您必须拥有这些实例的 ID 才能检索它们。 有没有办法检索已终止的实例 ID?
【问题讨论】:
标签: python amazon-web-services amazon-ec2 amazon-cloudwatch