【问题标题】:Boto3: Empty Datapoint from AWS instanceBoto3:来自 AWS 实例的空数据点
【发布时间】:2019-01-09 17:59:24
【问题描述】:

我想编写一个 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)

对这里有什么问题有任何帮助吗?谢谢!

【问题讨论】:

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


    【解决方案1】:

    默认情况下,它采用默认区域,即“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 在配置和凭据文件中创建配置文件

    【讨论】:

      【解决方案2】:

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

      Amazon EC2 Metrics and Dimensions

      【讨论】:

      • 谢谢,但我没有启用它!
      猜你喜欢
      • 2020-04-11
      • 2020-01-22
      • 2017-02-27
      • 2020-05-24
      • 1970-01-01
      • 2023-03-30
      • 2020-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多