【问题标题】:Get current CPU utilization of AWS RDS through lambda python function通过 lambda python 函数获取 AWS RDS 的当前 CPU 利用率
【发布时间】:2020-08-30 20:03:31
【问题描述】:

我尝试使用以下代码通过 lambda python 获取 AWS RDS 的当前 cpu 利用率。但我得到的是空值:

代码:

import json
import boto3,datetime

def lambda_handler(event, context):
    cloudwatch = boto3.client('cloudwatch')
    response = cloudwatch.get_metric_data(
    MetricDataQueries=[
    {
        'Id': 'cpu',
        'MetricStat': {
        'Metric': {
            'Namespace': 'AWS/RDS',
            'MetricName': 'CPUUtilization',
            'Dimensions': [
                    {
                        "Name": "DBInstanceIdentifier",
                        "Value": "mydb"  
                    }]
        },
        'Period': 30,
        'Stat': 'Average',
        }
    }
],
StartTime=(datetime.datetime.now() - datetime.timedelta(seconds=300)).timestamp(),
EndTime=datetime.datetime.now().timestamp()
)

print(response)

输出如下:

{'MetricDataResults': [{'Id': 'cpu', 'Label': 'CPUUtilization', 'Timestamps': [], 'Values': [], 'StatusCode': 'Complete'}]

获取时间戳和值的空值。感谢任何帮助。

【问题讨论】:

    标签: python amazon-web-services aws-lambda amazon-rds amazon-cloudwatch


    【解决方案1】:

    尝试删除 Period:30 或按照文档中的建议将其更改为 60 的倍数:

    返回数据点的粒度,以秒为单位。对于指标 使用常规分辨率,时间可以短至一分钟(60 秒)并且必须是 60 的倍数。对于高分辨率指标 以少于一分钟的时间间隔收集的,期间 可以是 1、5、10、30、60 或 60 的任何倍数。高分辨率 指标是由 PutMetricData 操作存储的那些指标, 包括 1 秒的 StorageResolution。

    字典中的值也区分大小写,因此请检查您传递的值是否正确。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 2017-10-12
      • 2019-11-22
      • 2011-09-05
      相关资源
      最近更新 更多