我想编写一个Python脚本来获取我的EC2 CPU利用率。使用get_metric_statistics()方法时,输出响应显示为。
据我所知'Datapoints:[]'数组不应为空。它应该返回一些信息以获取CPU负载%。我的代码是
import boto3
import sys
import datetime
client = boto3.client('cloudwatch')
response = client.get_metric_statistics(
Namespace='AWS/EC2',
MetricName='CPUUtilization',
Dimensions=[
{
'Name': 'InstanceId',
'Value': 'i-***********'
},
],
StartTime=datetime.datetime.utcnow() - datetime.timedelta(seconds=600),
EndTime=datetime.datetime.utcnow(),
Period=120,
Statistics=[
'Average',
],
Unit='Percent'
)
print(response)
有什么问题的帮助吗?谢谢!
答案 0 :(得分:0)
要使用百分位数统计信息,必须首先启用详细监视。
答案 1 :(得分:0)
默认情况下,它采用默认区域,即“ ap-southeast-1”(位于.aws / config中)。在.aws / credentials文件中,它会自动获取在配置api时使用的密钥和访问密钥。 如果发生冲突,数据点将返回空。
解决方案: 1.为每个区域创建一个新的配置文件。在.aws / config中配置区域。我的看起来像这样
`[default]
region = ap-southeast-1
[profile nv]
region = us-east-1
[profile prod]
region = us-east-1
~ `
nv和prod是用户自定义的配置文件名称。
输入名称而不是默认名称
session = boto3.Session(profile_name='default')
以相同的方式在.aws / credentials中输入密钥和访问密钥。
您可以使用aws configure --your_profile_name
在配置和凭据文件中创建配置文件