Amazon web services 如何使用命令行(aws cli)获取EC2内存利用率

Amazon web services 如何使用命令行(aws cli)获取EC2内存利用率,amazon-web-services,amazon-ec2,aws-cli,Amazon Web Services,Amazon Ec2,Aws Cli,我正在尝试使用aws cli获取EC2内存利用率,我发现EC2MemoryUtilization不能作为度量标准。我在ec2实例中安装了cloudwatch代理,并为mem\u used\u percent创建了一个仪表板 现在我想以编程方式使用数据点使用的内存。我可以找到CPUUtilization,但找不到任何内存利用率 这方面的任何帮助都是有益的。谢谢 此python脚本将系统内存度量推送到自定义命名空间中的cloudwatch。在crontab中安排脚本每1分钟或5分钟执行一次,以绘制与

我正在尝试使用aws cli获取EC2内存利用率,我发现
EC2MemoryUtilization
不能作为度量标准。我在ec2实例中安装了cloudwatch代理,并为
mem\u used\u percent
创建了一个仪表板

现在我想以编程方式使用数据点使用的内存。我可以找到
CPUUtilization
,但找不到任何内存利用率


这方面的任何帮助都是有益的。谢谢

此python脚本将系统内存度量推送到自定义命名空间中的cloudwatch。在crontab中安排脚本每1分钟或5分钟执行一次,以绘制与时间相关的系统内存度量。确保分配给vm的IAM角色有足够的权限将度量数据放入cloudwatch

#/usr/bin/env python
导入psutil
导入请求
导入json
导入操作系统
进口boto3
get\u memory=psutil.virtual\u memory()
空闲内存=获取内存。空闲/(1024*1024*1024)
打印“可用内存:”,可用内存,“GB”
headers={'content-type':'application/json'}
req=requests.get(url=)http://169.254.169.254/latest/meta-data/iam/security-credentials/cloudwatch_access,headers=headers)
res=json.loads(req.text)
AccessKeyId=res['AccessKeyId']
SecretAccessKey=res['SecretAccessKey']
Token=res['Token']
Region=“ap-south-1”
os.environ[“AWS\u访问\u密钥\u ID”]=访问密钥ID
os.environ[“AWS\u SECRET\u ACCESS\u KEY”]=SecretAccessKey
os.environ[“AWS_会话_令牌”]=令牌
os.Enviro[“AWS\U默认\U区域”]=区域
名称空间='mynamespace'
维度名称='我的维度名称'
维度值='我的维度值'
cloudwatch=boto3.client('cloudwatch')
cloudwatch.put\u度量\u数据(
计量数据=[
{
“MetricName”:“可用内存”,
“维度”:[
{
“名称”:维度名称,
“值”:维度值
},
],
'单位':'千兆字节',
“值”:可用内存
},
],
名称空间=名称空间

)
Cloudwatch代理在此不需要。它是在生产环境中实现的,并且由于这个cron作业对系统没有负载影响。cloudwatch不会收集内存利用率,因为它必须从实例中推送。默认情况下,cloudwatch收集在虚拟机监控程序级别可用的数据,而在虚拟机监控程序级别内存利用率不可用。您必须推送内存的自定义度量,然后使用CLI查询它。