Конечно, вы можете использовать AWS REST API (доступно через SDK или CLI ).Чтобы получить показатели экземпляра, вам нужно использовать API-интерфейсы EC2 и CloudWatch .Вот примеры с CLI AWS для метрик из «Метрики QOS, связанных с AWS» предоставленного вами документа:
Состояние экземпляра :
aws ec2 describe-instances --instance-ids i-999f9f99f999f99f9 --query "Reservations[*].Instances[*].[State]"
[
[
[
{
"Code": 16,
"Name": "running"
}
]
]
]
Загрузка ЦП (%) :
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name CPUUtilization --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "CPUUtilization",
"Datapoints": [
{
"Timestamp": "2018-12-07T02:40:00Z",
"Average": 0.0,
"Unit": "Percent"
},
{
"Timestamp": "2018-12-07T13:35:00Z",
"Average": 1.0,
"Unit": "Percent"
},
…
]
}
Операции чтения с диска :
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSReadOps --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskReadOps --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "EBSReadOps",
"Datapoints": [
{
"Timestamp": "2018-12-07T00:25:00Z",
"Average": 10.0,
"Unit": "Count"
},
{
"Timestamp": "2018-12-07T20:10:00Z",
"Average": 11.5,
"Unit": "Count"
},
…
]
}
Запись на дискOps
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSWriteOps --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteOps --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "EBSWriteOps",
"Datapoints": [
{
"Timestamp": "2018-12-07T00:25:00Z",
"Average": 1229.3,
"Unit": "Count"
},
{
"Timestamp": "2018-12-07T20:10:00Z",
"Average": 496.6,
"Unit": "Count"
},
…
]
}
Байт для чтения с диска
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSReadBytes --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskReadBytes --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "EBSReadBytes",
"Datapoints": [
{
"Timestamp": "2018-12-07T00:25:00Z",
"Average": 665.6,
"Unit": "Count"
},
{
"Timestamp": "2018-12-07T20:10:00Z",
"Average": 200.3,
"Unit": "Count"
},
…
]
}
Байт для записи на диск
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name EBSWriteBytes --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name DiskWriteBytes --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "EBSWriteBytes",
"Datapoints": [
{
"Timestamp": "2018-12-07T00:25:00Z",
"Average": 7026688.0,
"Unit": "Count"
},
{
"Timestamp": "2018-12-07T20:10:00Z",
"Average": 7586713.6,
"Unit": "Count"
},
…
]
}
Сеть в байтах
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name NetworkIn --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "NetworkIn",
"Datapoints": [
{
"Timestamp": "2018-12-07T16:10:00Z",
"Average": 24489418.6,
"Unit": "Bytes"
},
{
"Timestamp": "2018-12-07T13:50:00Z",
"Average": 21305249.0,
"Unit": "Bytes"
},
…
]
}
Сеть в байтах
aws cloudwatch get-metric-statistics --namespace AWS/EC2 --metric-name NetworkOut --period 60 --statistics Average --dimensions Name=InstanceId,Value=i-999f9f99f999f99f9 --start-time 2018-12-07T00:00:00 --end-time 2018-12-08T00:00:00
{
"Label": "NetworkOut",
"Datapoints": [
{
"Timestamp": "2018-12-07T16:10:00Z",
"Average": 25363795.4,
"Unit": "Bytes"
},
{
"Timestamp": "2018-12-07T13:50:00Z",
"Average": 22128487.0,
"Unit": "Bytes"
},
…
]
}
Полный список доступных метрик можно найти здесь .Подстраницы содержат доступные метрики для определенных услуг. Здесь - страница для EC2.
Вы получите практически те же данные при использовании SDK вашего языка.Как видите, CloudWatch просто возвращает список меток времени, которые вы запросили.