list - 我想通过 lambda python 找出 AWS RDS 的总 RAM 大小。我尝试了代码并得到了空集。还有其他方法可以找到它吗?
问题描述
import json
import boto3,datetime
def lambda_handler(event, context):
cloudwatch = boto3.client('cloudwatch',region_name=AWS_REGION)
response = cloudwatch.get_metric_data(
MetricDataQueries=[
{
'Id': 'memory',
'MetricStat': {
'Metric': {
'Namespace': 'AWS/RDS',
'MetricName': 'TotalMemory',
'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':'memory','Label':'TotalMemory','Timestamps':[],'Values':[],'StatusCode':'Complete'}]
解决方案
如果您正在寻找配置的 vCPU/内存,那么我们似乎需要调用DescribeDBInstances
API 来获取DBInstanceClass
,其中包含来自此处的硬件信息
您需要使用https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/MonitoringOverview.html#rds-metrics中的 CloudWatch 指标名称之一,似乎我们可以使用检索当前可用的内存指标FreeableMemory
. _ 在您的示例代码中使用此指标名称时,我能够从 RDS 的监控控制台中获取数据(以字节为单位)。
推荐阅读
- ios - 如何获取数组中的所有标题?
- jquery - 如何使用 jquery 将图像上传到控制器 - Laravel
- bash - 在 bash 脚本的正则表达式上提取 json 值
- ajax - 有没有办法将 CloudFlare 配置为忽略特定路由/URL 上的 DDOS 防护?
- ubuntu-20.04 - 当我想更新 ubuntu 20.04 时,为什么会在终端中出现存储库错误?
- arcore - Scene Viewer 不会从链接启动 AR,但会使用指向该链接的 QR 码启动
- git - Git推送到heroku失败但退出代码为0
- arrays - 将变量存储到C中的数组的问题
- android - 使用ContraintLayout根据屏幕高度调整两个等宽ImageView的高度
- c# - c# Newtonsoft : 获取名称包含特殊字符的 json 令牌