amazon-web-services - 如何获取具有特定标签的所有 AWS EC2 实例及其 CPU 和 RAM 利用率的列表
问题描述
我正在努力制作命令来检索具有特定标签的所有 AWS EC2 实例及其 CPU 和 RAM 利用率的列表。有人可以帮我吗?
aws ec2 describe-instances --query 'Reservations[].Instances[].{Name: Tags[?Key==`Name`].Value | [0], Role: Tags[?Key==`Billing by Role`].Value | [0]}' --output text
aws ec2 describe-instances --query 'Reservations[].Instances[].{Name: Tags[?Key==`Name`].Value | [0], Role: Tags[?Key==`Billing by Role`].Value | [0]}' --output text
它给了我所有实例的列表,但不确定利用率。
解决方案
您可以从 cloudwatch 获取这些指标,因此首先获取所有带有标签的实例,然后运行循环以获取每个实例的统计信息。
#!/bin/bash
filter="prod"
AWS_INSTANCE_WITH_ID=$(aws ec2 describe-instances --filter Name=tag:Name,Values="${filter}" --query "Reservations[*].Instances[*].[InstanceId]" --output text)
for instance_id in $AWS_INSTANCE_WITH_ID
do
# Now get CPU against instance ID from cloud metrics one by one against that tag
aws cloudwatch get-metric-statistics --metric-name CPUUtilization --start-time 2019-09-12T23:18:00Z --end-time 2019-09-13T23:18:00Z --period 3600 --namespace AWS/EC2 --statistics Maximum --dimensions Name=InstanceId,Value=$instance_id
done
Amazon CloudWatch 保留如下指标数据:
周期小于 60 秒的数据点可使用 3 小时。这些数据点是高分辨率指标,仅适用于使用 StorageResolution 定义为 1 的自定义指标。周期为 60 秒(1 分钟)的数据点可使用 15 天。周期为 300 秒(5 分钟)的数据点可使用 63 天。周期为 3600 秒(1 小时)的数据点可使用 455 天(15 个月)。
推荐阅读
- angular - ViewEncapsulation 中的 None 选项不起作用
- arrays - 子进程无法访问 MPI 中的数组
- kustomize - Kustomize - 4.1 版本忽略了一项部署
- mongodb - 根据条件查询某个字段
- elixir - 在凤凰城得到 Absinthe.Blueprint.TypeReference.unwrap 错误?
- c# - 在同一解决方案中的控制台应用程序项目中引用 Web API appsettings.json 文件 - dotnet run 问题
- typescript - 某些数据字段未推送到列表
- rest - Azure devops rest api,更新测试计划的结果
- regex - 与章节名称匹配的正则表达式
- javascript - 从站点本身提供与 Firefox 的阅读器视图等效的视图