Boto3:AWS实例中的空数据点

时间:2018-08-02 04:33:44

标签: python amazon-web-services amazon-ec2 boto3 amazon-cloudwatch

我想编写一个Python脚本来获取我的EC2 CPU利用率。使用get_metric_statistics()方法时,输出响应显示为enter image description here

据我所知'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)

有什么问题的帮助吗?谢谢!

2 个答案:

答案 0 :(得分:0)

要使用百分位数统计信息,必须首先启用详细监视。

Amazon EC2 Metrics and Dimensions

答案 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是用户自定义的配置文件名称。

  1. 输入名称而不是默认名称

    session = boto3.Session(profile_name='default')

  2. 以相同的方式在.aws / credentials中输入密钥和访问密钥。

您可以使用aws configure --your_profile_name在配置和凭据文件中创建配置文件